Я хотел бы знать, в чем проблема в нижеприведенном коде, поскольку он отображается только как часть изображения Серый как двоичное изображение!Преобразование серого изображения в двоичное изображение в OpenCV
cv::Mat gry = cv::imread("image_gray.jpg");
cv::Mat bin(gry.size(), gry.type());
for (int i=0; i<gry.rows ;i++)
{
for (int j=0; j<gry.cols ;j++)
{
if (gry.at<uchar>(i,j)>=100)
bin.at<uchar>(i,j)=255;
else
bin.at<uchar>(i,j)=0;
}
}
cv::namedWindow("After", cv::WINDOW_AUTOSIZE);
cv::imshow("After",bin);
waitKey(0);
cvDestroyWindow("After");
imwrite("binary_image.bmp", bin);
Рассматривали ли вы просто используя 'Mat bin = gray> = 100;'? Наверное, гораздо быстрее и чище. –
Возможный дубликат [Преобразование изображения OpenCV в черно-белый] (http://stackoverflow.com/questions/7624765/converting-an-opencv-image-to-black-and-white) – Basilevs
Большое спасибо за ваш ответить lwillnotexist Idonotexist Но я студент, и мой инструктор хочет сделать это шаг за шагом :( –