图像分割实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
医学图像处理实验报告
实验名称:图像分割设计实验
姓名:gaojunqiang
学号:20105405
班级:生医 1001
指导教师:……
2013年6月5日
一、实验目的
1、编程实现下列功能:读出存储的黑白灰度图象并显示,用拉普拉斯算子对图象进行边缘检测,显示处理后图象,存储处理后图象。
2、编程实现下列功能:读出存储的黑白灰度图象并显示,用鼠标点击图象上某一点,以灰度相近原则进行区域生长,显示处理后图象,存储处理后图象。
二、实验原理
1、拉普拉斯边缘检测
二维函数f(x,y)的拉普拉斯是一个二阶的微分定义为:
∇2f = [∂2f / ∂x2 ,∂2f / ∂y2]
一般情况下可以用一个拉普拉斯模板算子。模板算子分为4邻域和8邻域,如下
∇2f = 4z5 – (z2 + z4 + z6 + z8)
∇2f = 8z5 – (z1 + z2 + z3 + z4+z5 + z6 + z7+ z8)
2、区域增长
区域增长是通过一个起始点作为种子点对他周围的点进行选择。它采取的是一种迭代的思想。区域增长也分为四邻域和八邻域两种方式。
通过像素的集合进行区域增长的算法如下:
1)根据图像的不同应用选择一个或一组种子,它或者是最亮或最暗的点,或者是位于点簇中心的点。
2)选择一个描述符(条件)
3)从该种子开始向外扩张,首先把种子像素加入集合,然后不断将与集合中各个像素连通、且满足描述符的像素加入集合
4)上一过程进行到不再有满足条件的新结点加入集合为止。
三、实验代码及结果
1、拉普拉斯边缘检测代码如下:
%主函数如下:
clc;
close all;
clear all;
Imag = imread('lena.tiff');
ImagGray = rgb2gray(Imag); %将彩色图片转换成灰度图片
figure()
imshow(ImagGray),title('灰度图像');
% T = graythresh(ImagGray); %用大津法自动确定阈值
% I=edge(ImagGray,'log',0.004);
% figure(),imshow(I), title('laplace边缘图像');
ImagGray = double(ImagGray);
T = 60; %设置阈值
LapModType = 8; %设置laplace模板方式
ImagLapEdge = LaplaceEdge(ImagGray,LapModType,T); %laplace边缘检测
ImagLapEdge = uint8(ImagLapEdge);
figure()
imshow(ImagLapEdge),title('laplace边缘图像');
%拉普拉斯边缘检测函数如下:
function ImagLapEdge = LaplaceEdge(ImagGray,MoldType,Thresh)
%-----------------参数介绍--------------------
%输入参数:
% ImagGray: 输入的灰度图像
% MoldType: 摸板类型,包括四邻域和八邻域
% Thresh: 边缘检测阈值
%输出参数:
% ImagEdge:边缘像素点,存储的是二值化图像
[r,c] = size(ImagGray);
ImagLapEdge = zeros(r,c);
%四邻域拉普拉斯边缘检测算子
if 4 == MoldType
for i = 2:r-1
for j = 2:c-1
Temp =
-4*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1); if Temp > Thresh
ImagLapEdge(i,j) = 255;
else
ImagLapEdge(i,j) = 0;
end
end
end
end
%八邻域拉普拉斯边缘检测算子
if 8 == MoldType
for i = 2:r-1
for j = 2:c-1
Temp =
-8*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1)+ImagGray(i-1,j-1)+ImagGray(i+1,j+1)+ImagGray(i+1,j-1)+ImagGray(i-1,j+1);
if Temp > Thresh
ImagLapEdge(i,j) = 255;
else
ImagLapEdge(i,j) = 0;
end
end
end
end
拉普拉斯边缘检测实验结果如下:
图1 原灰度图像
图2 拉普拉斯8邻域模板边缘检测图像图3拉普拉斯4邻域模板边缘检测图像
2、区域增长
实验代码:
主函数如下:
clc;
close all;
clear all;
Imag = imread('lena.jpg');
figure()
imshow(Imag), title('原灰度图片');
n = 4; %设置区域增长的种子点数
[x,y] = ginput(n); %在图像上取点
V = [y,x];
V = uint16(V);
thresh = 33; %区域增长的阈值
growingtype = 8; %增长方式
[regionGet,imout,regionsize]=regiongrowing(V,Imag,thresh,growingtype); %区域增长函数figure()
imshow(imout), title('区域分割后的图片');
hold on
plot(x,y,'+');
由于区域增长代码老师已给这里就不在写出。
实验结果: