OpenCV - HOG(梯度直方图)计算对图像的一部分不起作用

时间:2017-01-30 17:16:03

标签: python opencv image-processing computer-vision histogram

我正在使用OpenCV hogdescriptor 来计算图像不同块的hog描述符。

import cv2
im = cv2.imread('test.jpg',0)
dim = (450,274)
im = cv2.resize(im.astype(float), dim, interpolation = cv2.INTER_LINEAR)
winSize = (68,112)
blockSize = (34,28)
blockStride = (17,14)
cellSize = (17,14)
nbins = 9
hog =cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins)
hist=hog.compute(im[1:69,1:113].astype('uint8'))

问题是,当我尝试为图像的一部分计算hog描述符时代码不起作用,但是当我切换到整个图像时,它可以正常工作。我不确定我做错了什么。

我的问题:参数选择有问题吗?是的,我需要更改其他参数的值,例如nlevels

我的第二个问题是关于derivAperture等其他参数的选择, winSigmahistogramNormTypeL2HysThresholdgammaCorrectionnlevels,我可以简单地使用this post中的值吗?对于(68,112)大小的块,上述帖子中 winSigma 的值是否较大?特别是,我不确定 nlevels 所扮演的角色,例如,如果我将其更改为1会发生什么?

我还检查了this post,但它对我没用,因为它没有使用 hogdescriptor

编辑:这是我正在使用的图片: enter image description here

我尝试了其他2张图片,但这些图片也不起作用。代码到最后一行,但当它到达 hog.compute 时,它会停止并显示以下消息: 此应用程序已请求Runtime以不寻常的方式终止它。

0 个答案:

没有答案