2016-12-21 19 views
-1

The original code is here誰もこのopencvコードの一部を私に説明できますか?

それは私がこのコードの作成者はそれを投稿するあまりにも多くのコードだc_lowerとc_upper配列

を必要とする理由、私は主によを把握しようとしている手のジェスチャーを追跡するために使用OpenCVのプログラムですこのコードを使って誰かが私よりよく理解する前に誰かがいるのだろうかと思っています。代わりに、彼は色相、彩度、および値のc_lowerとc_upperの別々の値が必要になるのはなぜこの

void produceBinaries(MyImage *m) { 
    Scalar lowerBound; 
    Scalar upperBound; 
    for (int i = 0; i<NSAMPLES; i++) { 
     normalizeColors(m); 
     lowerBound = Scalar(avgColor[i][0] - 20, avgColor[i][1] - 20, avgColor[i][2] - 20); 
     upperBound = Scalar(avgColor[i][0] + 20, avgColor[i][1] + 20, avgColor[i][2] + 20); 
     m->bwList.push_back(Mat(m->srcLR.rows, m->srcLR.cols, CV_8U)); 
     inRange(m->srcLR, lowerBound, upperBound, m->bwList[i]); 
    } 
    m->bwList[0].copyTo(m->bw); 
    for (int i = 1; i<NSAMPLES; i++) { 
     m->bw += m->bwList[i]; 
    } 
    medianBlur(m->bw, m->bw, 7); 
} 

This code can be found here

void produceBinaries(MyImage *m) { 
    Scalar lowerBound; 
    Scalar upperBound; 
    for (int i = 0; i<NSAMPLES; i++) { 
     normalizeColors(m); 
     lowerBound = Scalar(avgColor[i][0] - c_lower[i][0], avgColor[i][1] - c_lower[i][1], avgColor[i][2] - c_lower[i][2]); 
     upperBound = Scalar(avgColor[i][0] + c_upper[i][0], avgColor[i][1] + c_upper[i][1], avgColor[i][2] + c_upper[i][2]); 
     m->bwList.push_back(Mat(m->srcLR.rows, m->srcLR.cols, CV_8U)); 
     inRange(m->srcLR, lowerBound, upperBound, m->bwList[i]); 
    } 
    m->bwList[0].copyTo(m->bw); 
    for (int i = 1; i<NSAMPLES; i++) { 
     m->bw += m->bwList[i]; 
    } 
    medianBlur(m->bw, m->bw, 7); 
} 

:彼はこれをしなかった理由を

は、私は思って?なぜ20のような任意の数を選んでみませんか?

誰かが偉大な助けを得ることができれば、この男は何年もこのコードについて何も投稿していないので、私は彼が私に返信するとは思わない。

+0

彼は自分のコードに魔法の数字を載せたくないのかもしれません。 – MikeMB

+0

@MikeMB彼の番号はどこから来たのですか? –

+0

私はこのコードに慣れておらず、あなたはファイルにリンクしていません。そのコードはどこから来たのか分かりませんが、あなたのIDEはあなたに伝えるべきです。たぶんそれらは校正プロセスの結果です。 – MikeMB

答えて

0

これらの境界はGUIでユーザーによって制御され、コードにハードコードされていないためです。彼らはinitTrackbarsの初期値に設定され、後でトラックバー(一種のスライダ)を使って制御されます。

関連する問題