Python OpenCV-HOG(梯度直方图)计算不';不适用于图像的一部分

Python OpenCV-HOG(梯度直方图)计算不';不适用于图像的一部分,python,opencv,image-processing,computer-vision,histogram,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) n

我使用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

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

我也检查了,但它对我没有用处,因为它没有使用hogdescriptor

编辑:这是我正在使用的图像: .

我尝试了另外两个图像,但对这些图像也不起作用。代码一直工作到最后一行,但当它到达hog.compute时,它会停止并显示以下消息:
此应用程序已请求运行时以异常方式终止它。

上载图像,您所获得的将有帮助…请查看我的编辑和我所获得的错误,以及我一直使用的图像。有一些你正在寻找的变量我已经看过这页了,但我不确定nLevels的含义,它们是如何描述的,如果有人能向我解释,我将不胜感激。我最终不得不实现hog,因为这个函数对我没有用处。但是,我仍然好奇如何处理我得到的错误,以及为什么它在一块图像上不起作用。