基于matlab的区域生长算法实现
2019-05-10 09:35
204 查看
利用区域生长算法进行图像分割
算法步骤
- 鼠标点击选取生长点
- 3*3 8-邻域生长
- 生长准则:图像与生长点灰度差小于阈值
- 生长点压入栈中,直到栈中没有元素时停止
I=imread('mountain.png'); if isinteger(I) I=im2double(I); end I = rgb2gray(I); figure imshow(I) [M,N]=size(I); [y,x]=getpts; %单击取点后,按enter结束 x1=round(x); y1=round(y); seed=I(x1,y1); %获取中心像素灰度值 J=zeros(M,N); J(x1,y1)=1; count=1; %待处理点个数 threshold=0.15; while count>0 count=0; for i=1:M %遍历整幅图像 for j=1:N if J(i,j)==1 %点在“栈”内 if (i-1)>1&(i+1)<M&(j-1)>1&(j+1)<N %3*3邻域在图像范围内 for u=-1:1 %8-邻域生长 for v=-1:1 if J(i+u,j+v)==0&abs(I(i+u,j+v)-seed)<=3.75&abs(I(i+u,j+v)-seed)<=threshold J(i+u,j+v)=1; count=count+1; %记录此次新生长的点个数 end end end end end end end end subplot(1,2,1),imshow(I); title("original image") subplot(1,2,2),imshow(J); title("segmented image")
处理结果
相关文章推荐
- 区域生长算法原理以及Matlab实现
- 区域生长算法原理及MATLAB实现
- 区域生长算法原理及MATLAB实现
- 区域生长算法(附MATLAB代码实现)
- 一种运动区域提取算法及Matlab实现
- OpenCV实现区域生长算法
- 图像去模糊算法在CUDA上的实现,基于MATLAB平台
- 基于贝叶斯决策的彩色图像中皮肤区域检测算法研究与实现
- matlab实现区域生长
- 图像中区域生长算法的详解和实现
- 基于肤色和眼睛定位的人脸检测算法——MATLAB实现
- 基于Andrew ng课后作业6,matlab实现svm算法的垃圾邮件分类器(spam classifier)
- 基于HSV色彩空间变换的阴影检测算法——MATLAB实现
- 基于块的全搜索运动估计算法实现matlab代码
- 基于光流法相位提取算法---MATLAB实现
- 区域生长算法的一种C++实现
- 基于肤色和眼睛定位的人脸检测算法——MATLAB实现【转】
- MATLAB基于Randon变换的图像倾斜校正算法及实现
- 基于Retinex的图像去雾算法(MATLAB实现)
- 编写基于dbscan的GPS数据热点区域分析(二)算法的实现