Matlab 在机器视觉上的应用
1. 读图片和显示图片
Img=Imread(‘name’); (name指的同目录下得文件名(加后缀名的))
Imshow(img);
灰度化:
Gray=rgb2gray(img);
2. 查看图像的直方图
imhist(gray);
3.均衡化
grayqual=histeq(gray);
4.保存图片用 imwrite(I,’name’);
5.三维显示灰度图像的分布
surf(double(gray(1:end,1:end)));
6.
灰度图像的二值化:
level=graythresh(gray); %level是返回的阀值(默认情况下使用otsu的)
brand=im2bm(img,level);
7.
下面是手动二值化
brand=im2bw(img,0.5);
8.
开运算
Openbrand=Imopen(brand,strel(‘disk’,3));
9.
连通域计算 :
计算米粒的个数
[labelbrand,ricecount]=bwlabel(brand3,8);
ricecount = 74
%把标记图像变成索引图。
rgb_label=label2rgb(labelbrand,@spring,'c','shuffle');
返回标识过的图像连通域的情况
graindata=regionprops(labelbrand,'basic');
graindata(3).Area
ans =
10.
imcrop()函数可以把指定图片中的某个矩形地方拿出来;
把标记为40 的米粒切割下来
>>rice40=imcrop(labelbrand,graindata(40).BoundingBox);
>> imshow(rice40);
内容略显简单,你的回复是我进步的动力,假如有人喜欢的话,我会把后面的内容也放上来的。谢谢大家。