gpt4 book ai didi

opencv - 在OpenCV中将灰度图像转换为二进制图像

转载 作者:行者123 更新时间:2023-12-02 17:13:09 24 4
gpt4 key购买 nike

我想知道下面的代码是什么问题,因为它仅以二进制图像的形式出现在灰度图像中!

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);

最佳答案

您的问题在cv::imread中。
该函数假定它将图像加载为彩色图像,如果要将其加载为灰度图像,则应按以下方式调用该函数:

cv::imread(fileName, CV_LOAD_IMAGE_GRAYSCALE)

顺便说一句,您之所以只能看到图像的一部分,是因为对于每个像素,图像都比uchar大。 (最终您只能迭代其中的一部分)。

关于opencv - 在OpenCV中将灰度图像转换为二进制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25702790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com