在openCV中,如何从python中openCV_createsamples生成的矢量文件加载图像?
脚本opencv_createsamples创建.vec文件,该文件保存训练级联所需的所有图像 我想知道是否有一种方法可以将图像直接从该文件加载到python脚本在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键将打破循环。它演
谢谢。这个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文件中提取图像。好的,谢谢您的解释。我不是落选者,但我想会有更多的落选者,因为仅仅发布代码是不好的风格。也许你可以在答案中加入你的评论!?