簡體   English   中英

OpenCV和Python:豬計算錯誤215

[英]OpenCV and Python : Hog Compute error 215

我正在嘗試將OpenCV SVM與Hog描述符一起使用。 使用Python 2.7可以很好地處理第一個示例。 在python 3.6.1上嘗試其他示例時,出現以下錯誤:

 error: /usr/local/src/opencv/modules/objdetect/src/hog.cpp:241: error: (-215) img.type() == CV_8U || img.type() == CV_8UC3 in function computeGradient 

這是一堆代碼:

print('Defining HoG parameters ...')
print (np.array(digits_deskewed).shape)
print(digits_deskewed[0])
# HoG feature descriptor
hog = get_hog();
hog.compute(np.array(digits_deskewed[0]))

給出以下輸出:

(42000、28、28)[[0. 0. 0. 0. 0. 0. 0. 0.0.0.0.0.0.0.0.0.0.0.0.0.0 。0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 。0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0 。0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.0 ..] [0. 0. 0. 0. 0. 0. 0. 0. 0 。0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0 。0. 0. 0. 0. 0. 188. 255. 94. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.0.0。]

使用get_hog()為:

def get_hog() :
    winSize = (28,28)
    blockSize = (4,4)
    blockStride = (4,4)
    cellSize = (8,8)
    nbins = 9
    derivAperture = 1
    winSigma = -1.
    histogramNormType = 0
    L2HysThreshold = 0.2
    gammaCorrection = 1
    nlevels = 64
    signedGradient = True

    hog = cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins,derivAperture,winSigma,histogramNormType,L2HysThreshold,gammaCorrection,nlevels, signedGradient)

    return hog

我不知道這個錯誤的原因,有人可以給我一個線索嗎?

謝謝 !

您在numpy數組中有浮點類型。 您需要uint8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM