在这篇文章里面我们要做的事情全部都围绕两个问题,一个图像当中有多少个 xxx,他们的大小是多少,举个例子
上图是一个米的影像,这张图片里有很多的米,现在我们的问题是,这里面有多少米,他们的大小是多少?
graythresh() & im2bw()
要回答上述两个问题,首先要做的是对影像进行预处理,第一步就是对图像进行阈值化处理。所谓阈值化处理就是当灰度值低于一个值(阈值)时,让其成为一个小的值,当灰度值大于一个值(阈值)时,让其成为一个大的值,即实现了阈值分割,这样图像就黑白分明,对比度增大
所以我们首先要找到阈值,才能进行阈值化处理,matlab 为我们提供了两个函数:graythresh():使用最大类间方差法找到图片的一个合适阈值,其调用格式为:level = graythresh()
im2bw():使用阈值变换法把灰度图像转换成二值图像,所谓二值图像就是只有0(纯黑)、255(纯白),其调用格式为:bw = im2bw(I,level),其中 I 是原图像对应矩阵,level 是阈值I = imread('rice.png');
level = graythresh(I);
bw = im2bw(I,lev