1

私がやっていることは、OpenCV でスキン検出のためのスキン確率マップ アルゴリズムを実装しようとしていることです。

http://www.cse.unsw.edu.au/~icml2002/workshops/MLCV02/MLCV02-Morales.pdfおよび_このチュートリアルhttp://www.morethantechnical.com/2013/03/05/skin-detection-with-probability-maps-and-elliptical-boundaries-opencv-wcode/

私の問題は、ヒスト値の座標を計算することにあります。

チュートリアルから:

calcHist(&nRGB_frame,1,channels,mask,skin_Histogram,2,histSize,ranges,uniform,accumulate);
calcHist(&nRGB_frame,1,channels,~mask,non_skin_Histogram,2,histSize,ranges,uniform,accumulate);

ヒストグラムを計算します。私はそれらを正規化するよりも。それとその後:

for (int i=0; i<nrgb.rows; i++) {
        int gbin = cvRound((nrgb(i)[1] - 0)/range_dist[0] * hist_bins[0]);
        int rbin = cvRound((nrgb(i)[2] - low_range[1])/range_dist[1] * hist_bins[1]);
        float skin_hist_val = skin_Histogram.at<float>(gbin,rbin);
}; 

nrgb は私のイメージで、そのための skin_hist_value を取得しようとしています。しかし、gbin と rbin はおそらく間違って計算され、例外がスローされます (配列の外で実行しますか?)。

skin_Histogram.at<float>(gbin,rbin);

正確に計算する方法がまったくわかりません。何か助けはありますか?

4

0 に答える 0