Jak korzystać z progu OTSU w opencv?

Używałem ustalonego progu, ale okazuje się, że nie jest to dla mnie dobre. Następnie ktoś powiedział mi o progu otsu. Jak mogę go użyć w moim kodzie? Czytałem o tym i nie rozumiem zbyt dobrze. Czy ktoś mógłby mi wyjaśnić, jak używać go w OpenCV na progu otsu?

Oto mój kod teraz:

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main ( int argc, char **argv )
{
   Mat im_gray = imread("img3.jpg",CV_LOAD_IMAGE_GRAYSCALE);

   Mat im_rgb  = imread("img3.jpg");
   cvtColor(im_rgb,im_gray,CV_RGB2GRAY);

   Mat img_bw = im_gray > 115;

   imwrite("img_bw3.jpg", img_bw);

   return 0;
}  

W związku z tym muszę zmienić próg na dowolny obraz, który chcę przekonwertować na plik binarny. Znalazłem to:

cvThreshold(scr, dst, 128, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

Czy to prawda? Nie rozumiem zbyt dobrze iz tego powodu nie wiedziałem, jak mogę dostosować się do mojego kodu.

questionAnswers(3)

yourAnswerToTheQuestion