这学期学过数字图像处理课,其中老师让我们做一个作业,就是将matlab内置的rice.png实现水平分割,下面是代码,直接复制到matlab去可以运行!
I = imread('rice.png');
%subplot(241),imshow(I); title('原图');
figure,imshow(I),title('原图')
Canny = edge(image,'canny');
%subplot(242), imshow(Canny); title('Canny边缘检测图');
figure,imshow(Canny),title('Canny边缘检测图')
%sobel计算
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
se = strel('disk', 4);
Io = imopen(I, se);%开操作
Ie = imerode(I, se);
Iobr = imreconstruct(Ie, I);%开重建
Ioc = imclose(Io, se);%闭操作
%对输入图像求补
Iobrd = imdilate(Iobr, se);
Iobrcbr = imreconstruct(im