很多人会在学过matlab之后会有这么一个疑问,理论上是由彩色图像先转为灰度图像,然后再有灰度化图像转为二值化图像,然而事实上im2bw可以直接将彩色图像直接转化为二值化图像啊。
当然这也是我的疑问,至今也没有搞清楚,但是通过做实验,结果却是一致的,下面附上实验代码:
>> I = imread('D:\近期任务\aa.jpg');
>> imshow(I);
>> J = rgb2gray(I);
>> imshow(J);
>> level = graythresh(J);
>> imgbw = im2bw(J,level);
>> imshow(imgbw);
上边是前者下边是后者
>> I = imread('D:\近期任务\aa.jpg');
>> imshow(I);
>> level = graythresh(I);
>> imgbw = im2bw(I,level);
>> imshow(imgbw);
实验结果完全一样。
至于为什么恐怕只能去读im2bw函数的源码了