gpt4 book ai didi

python - 使用 python 从图像集中提取 hog 特征时出错

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:01 25 4
gpt4 key购买 nike

我正在尝试从一组图像中提取 HOG 特征,但出现内存错误

hists = [np.bincount(b.ravel(), m.ravel(), bin_n) for b, m in zip(bin_cells, mag_cells)]

内存错误

我从 opencv example 复制了 HOG 函数我的示例代码是

def hog(img):
gx = cv2.Sobel(img, cv2.CV_32F, 1, 0)
gy = cv2.Sobel(img, cv2.CV_32F, 0, 1)
mag, ang = cv2.cartToPolar(gx, gy)
bins = np.int32(bin_n*ang/(2*np.pi)) # quantizing binvalues in (0...16)
bin_cells = bins[:10,:10], bins[10:,:10], bins[:10,10:], bins[10:,10:]
mag_cells = mag[:10,:10], mag[10:,:10], mag[:10,10:], mag[10:,10:]
hists = [np.bincount(b.ravel(), m.ravel(), bin_n) for b, m in zip(bin_cells, mag_cells)]
hist = np.hstack(hists) # hist is a 64 bit vector
return hist
path_url="d:/anto/preimages/"
listdir = os.listdir(path_url)
for file in listdir:
img = cv2.imread(path_url + file)
h=hog(img)

最佳答案

问题出在你的图像集上。因为你是从谷歌随机下载的图像。它可能有不同的尺寸,这会导致错误。在调用 hog 函数之前,你必须调整图像的大小。在 opencv 中,你可以使用调整大小

resized=cv2.resize(img,(250,250))
h=hog(resized)

在 PIL 库中,您可以使用调整大小

resolutin=(250.250)
resizes=img.resize(resolution , Image.ANTIALIAS)

但我必须建议添加一个单独的预处理步骤。在预处理步骤中,您可以调整大小并将“preimages”文件夹中的所有图像保存到另一个文件夹,您可以将其作为 hog 提取程序的输入。

关于python - 使用 python 从图像集中提取 hog 特征时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com