1

逆投影を使用して、人物のヒストグラムを知っている画像内の人物を特定します。問題は、肌や透明な服では機能しないことです. ここに私が得るものがあります:逆投影の結果

関心領域の 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)

取得したヒストグラムは人物の色と一致していますが、人物を含む画像に逆投影を適用すると、逆投影の結果に示すように、人物の暗い領域のみがゼロ以外の値になります。

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)

histSize = [8,8,8] であるため、ピクセル (b=66、g=66、r=34) はヒストグラム ビン [2,2,1] に対応する必要がありますが、逆投影は 141 ではなく 0 を返します。

私が間違っていることについて何か考えはありますか?

4

1 に答える 1