逆投影を使用して、人物のヒストグラムを知っている人物を画像内に配置します。問題は、それが肌やきれいな服の上で働いていないということです。ここでOpenCv RGBヒストグラム逆投影が期待どおりに機能しない
Back-projection resultは、私が関心領域のBGRヒストグラムを計算するために使用するコードです::ここに は私が得るものです
channels=[0,1,2]
histSize = [8,8,8]
ranges=[0,256, 0,256, 0,256]
#image is in BGR color
bgr_split = cv2.split(roi_img)
#Compute image bgr histogram
hist = cv2.calcHist(bgr_split, channels, mask, histSize, ranges)
cv2.normalize(hist, hist, 0, 255, cv2.NORM_MINMAX)
I私が手にヒストグラムが人の色と一貫性ですが、その人物を含む画像に逆投影を適用すると、人の暗い領域のみがBack-projection resultに示すように非ゼロ値を得る。
ヒストグラムの逆投影を1つのピクセルでテストしましたが、私はその結果を理解していません。私はこれを取得:
>> hist[2,2,1]
83.539368
>> pix_img = np.uint8(np.array([[[66,66,34]]]))
>> cv2.calcBackProject([pix_img],channels,hist,ranges,1)
array([[0]], dtype=uint8)
ピクセル(B = 66、G = 66、R = 34)HISTSIZE = [8,8,8]以来[2,2,1]ヒストグラムビンに対応している必要があり、それでも、逆投影は141の代わりに0を返します。
私が間違っていることは何ですか?