在openCV中,如何从python中openCV_createsamples生成的矢量文件加载图像?

在openCV中,如何从python中openCV_createsamples生成的矢量文件加载图像?,python,opencv,image-processing,haar-classifier,Python,Opencv,Image Processing,Haar Classifier,脚本opencv_createsamples创建.vec文件,该文件保存训练级联所需的所有图像 我想知道是否有一种方法可以将图像直接从该文件加载到python脚本 谢谢。这个python代码片段显示了从.vec文件中提取图像的过程。可以使用showvec('xxx.vec')调用该函数。仅当vec文件中的图像具有其他标准尺寸时,才必须设置宽度和高度参数。(24 x 24)resize参数可调整图像大小,以便更好地查看。调用此函数时,当按下键时,窗口将一个接一个地显示图像。esc键将打破循环。它演

脚本opencv_createsamples创建.vec文件,该文件保存训练级联所需的所有图像

我想知道是否有一种方法可以将图像直接从该文件加载到python脚本


谢谢。

这个python代码片段显示了从.vec文件中提取图像的过程。可以使用showvec('xxx.vec')调用该函数。仅当vec文件中的图像具有其他标准尺寸时,才必须设置宽度和高度参数。(24 x 24)resize参数可调整图像大小,以便更好地查看。调用此函数时,当按下键时,窗口将一个接一个地显示图像。esc键将打破循环。它演示了用python从.vec文件中提取图像是多么容易

import struct,array

import cv2
import numpy as np

def showvec(fn, width=24, height=24, resize=4.0):
  f = open(fn,'rb')
  HEADERTYP = '<iihh' # img count, img size, min, max

  # read header
  imgcount,imgsize,_,_ = struct.unpack(HEADERTYP, f.read(12))

  for i in range(imgcount):
    img  = np.zeros((height,width),np.uint8)

    f.read(1) # read gap byte

    data = array.array('h')

    ###  buf = f.read(imgsize*2)
    ###  data.fromstring(buf)

    data.fromfile(f,imgsize)

    for r in range(height):
      for c in range(width):
        img[r,c] = data[r * width + c]

    img = cv2.resize(img, (0,0), fx=resize, fy=resize, interpolation=cv2.INTER_LINEAR)
    cv2.imshow('vec_img',img)
    k = 0xFF & cv2.waitKey(0)
    if k == 27:         # esc to exit
      break
导入结构、数组
进口cv2
将numpy作为np导入
def showvec(fn,宽度=24,高度=24,大小=4.0):
f=打开(fn,'rb')

HEADERTYP='你为什么要这样做?这是opencv_使用的一种特殊格式,它是一个python代码段,显示从.vec文件中提取图像。它是一个python代码段,显示从.vec文件中提取图像。可以使用showvec('xxx.vec')调用该函数。仅当vec文件中的图像具有其他标准尺寸时,才必须设置宽度和高度参数。(24 x 24)resize参数可调整图像大小,以便更好地查看。调用此函数时,当按下键时,窗口将一个接一个地显示图像。esc键将打破循环。这是一个演示,演示如何从.vec文件中提取图像。好的,谢谢您的解释。我不是落选者,但我想会有更多的落选者,因为仅仅发布代码是不好的风格。也许你可以在答案中加入你的评论!?