を除外しますが、グレースケールモードでの画像です:OpenCVのバイナリしきい値:設定した閾値非常に小さいが、ここでは、ほとんどのピクセル
私は私によると0に閾値化し、設定されたしきい値を適用した場合理解されている、thesholdedイメージはほとんど白です。結果は逆です。
結果は:
Iはまた、この試み:
は、画像を構築し、255へのすべてのピクセルを設定し、次に0しきい値閾値を適用し、返される画像はすべて255
あります質問は の画像は、閾値処理を適用した後はほとんどゼロ(黒)です。ここで
はコードです:
IplImage* g_image = NULL;
IplImage* g_gray = NULL;
int g_thresh = 100;
CvMemStorage* g_storage = NULL;
void on_tracker(int){
if(g_storage == NULL){
g_gray = cvCreateImage(cvGetSize(g_image), 8, 1);
g_storage = cvCreateMemStorage(0);
}else{
cvClearMemStorage(g_storage);
}
CvSeq* contours = 0;
cvCvtColor(g_image, g_gray, CV_BGR2GRAY);
cvNamedWindow("Gray");
cvShowImage("Gray", g_gray);
cvThreshold(g_gray, g_gray, g_thresh, 255, CV_THRESH_BINARY);
cvFindContours(g_gray, g_storage, &contours);
cvShowImage("Contours", g_gray);
}
int main(int argc, char** argv){
if(argc !=2 || !(g_image = cvLoadImage(argv[1]))){
return -1;
}
cvNamedWindow("Contours", CV_WINDOW_AUTOSIZE);
cvCreateTrackbar(
"Threshold",
"Contours",
&g_thresh,
255,
on_tracker
);
on_tracker(0);
cvWaitKey();
return 0;
}
何を求めていますか?これは質問ではありません。しきい値がこれを行う理由を尋ねているだけの場合は、それを明確にしてください。それに沿っていくつかのコードを提供する。 – pepperjack
混乱して申し訳ありません。私は質問を更新する。 –
結果のマスクを反転するには 'CV_THRESH_BINARY_INV'を使います。 –