第十章 图像分割
1. 实现一种基于梯度算子的边缘检测
程序代码:
% 一种基于梯度算子的边缘检测
clear
X=imread('pic.jpg');
% 把原图转为灰度图
X0=double(rgb2gray(X));
% 获取图像大小
[width,height]=size(X0);
% 显示原灰度图
subplot(2,2,1)
imshow(uint8(X0));
title('原灰度图')
% 梯度算子
maskx=[-1 1];
masky=[-1;1];
% 模板运算
X1=imfilter(X0,maskx);
X2=imfilter(X0,masky);
% 显示梯度算子边缘检测
subplot(2,2,2)
imshow(uint8(X1))
title('gx梯度算子边缘检测')
subplot(2,2,3)
imshow(uint8(X2))
title('gy梯度算子边缘检测')
subplot(2,2,4)
imshow(uint8(X1+X2))
title('gx+gy梯度算子边缘检测')
输出结果:
2. 实现一种基于阈值的图像分割方法
程序代码:
% 一种基于阈值的分割方法
clear
X=imread('pic.jpg');
% 把原图转为灰度图
X0=d