实验图像增强和图像分割实验.docx

上传人:b****5 文档编号:30707385 上传时间:2023-08-19 格式:DOCX 页数:38 大小:3.77MB
下载 相关 举报
实验图像增强和图像分割实验.docx_第1页
第1页 / 共38页
实验图像增强和图像分割实验.docx_第2页
第2页 / 共38页
实验图像增强和图像分割实验.docx_第3页
第3页 / 共38页
实验图像增强和图像分割实验.docx_第4页
第4页 / 共38页
实验图像增强和图像分割实验.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

实验图像增强和图像分割实验.docx

《实验图像增强和图像分割实验.docx》由会员分享,可在线阅读,更多相关《实验图像增强和图像分割实验.docx(38页珍藏版)》请在冰豆网上搜索。

实验图像增强和图像分割实验.docx

实验图像增强和图像分割实验

实验一图像增强和图像分割实验

(1)分别用图中给出的直线和曲线作为增强函数进行增强,比较它们的效果并讨论其特点。

 

线性变换对指数变换

图片1图片2

实验步骤:

1.在MATLAB中编写灰度图像的线性变换点运算程序

图片1处理程序

I=imread('图片1.png');

%读入原图像

I=im2double(I);

%转换数据类型为double

[M,N]=size(I);

figure

(1);

imshow(I);%显示原图像

title('原图像');

figure

(2);

I=rgb2gray(I);

%转化为灰度图像

[H,x]=imhist(I,64);

stem(x,(H/M/N),'.');

title('原图像');

%tan=30`

a=sqrt(3)/3;b=0;

y=a.*I+b;

figure(3);

imshow(y);

title('tan=30');

figure(4);

[H,x]=imhist(y,64);

stem(x,(H/M/N),'.');

title('tan=30');

%tan=45`

a=1;b=0;

y=a.*I+b;

figure(5);

imshow(y);

title('tan=45');

figure(6);

[H,x]=imhist(y,64);

stem(x,(H/M/N),'.');

title('tan=45');

%tan=60`

a=sqrt(3);b=0;

y=a.*I+b;

figure(7);

imshow(y);

title('tan=60');

figure(8);

[H,x]=imhist(y,64);

stem(x,(H/M/N),'.');

title('tan=60');

实验结果如下图所示:

图片1的原图像

图片1的30度线性变换图像

图片1的45度线性变换图像

图片1的60度线性变换图像

原图像的直方图30度变换后直方图

45度变换后的直方图60度变换后直方图

图片2处理程序参考图片1处理程序。

图片2实验结果如图所示:

图片2原图像

30度变换后图像

45度变换后图像

60度变换后图像

2.实验结果分析

由实验结果可以看出,当按照30度线性变换后图像变暗,按照45度变换后图像没有任何改变,按照60度变换后图像变亮,由变换后的直方图可以确认像素点的变化。

由以上分析可以得出,当线性变换函数的斜率大于1时,图像的对比度将增大;当线性变换的斜率小于时,图像的对比度将减小;当线性变换函数的斜率等于1时,图像的对比度不变,只是像素点整体的移动。

虽然线性变换可以改变对比度,但是对图像的细节部分增强有限。

1.在MATLAB中编写灰度图像的对指数点运算程序

图片1对数处理程序:

I=imread('图片1.png');

%读入原图像

I=im2double(I);

%转换数据类型为double

I=rgb2gray(I);

figure

(1);

imshow(I);

%显示原图像

title('原图像');

figure(3);

[H,x]=imhist(I,64);

stem(x,(H/M/N),'.');

title('原图像');

figure

(2);

y=log(I+1);

imshow(I);

title('对数变换');

figure(4);

[H,x]=imhist(y,64);

stem(x,(H/M/N),'.');

title('对数变换');

实验结果如下图所示:

图片1直方图图片1对数变换直方图

对数变换后图像

图片1指数处理程序:

I=imread('图片1.png');

%读入原图像

I=im2double(I);

%转换数据类型为double

I=rgb2gray(I);

[M,N]=size(I);

figure

(1);

imshow(I);

%显示原图像

title('原图像');

figure(3);

[H,x]=imhist(I,64);

stem(x,(H/M/N),'.');

title('原图像');

figure

(2);

imshow(imadjust(I,[],[],3));

figure(4);

[H,x]=imhist(imadjust(I,[],[],4),64);

stem(x,(H/M/N),'.');

title('指数变换');

实验结果如下图所示:

图片1直方图指数变换后直方图

图片1指数变换后图像

图片2对指数处理程序参考图片1处理程序。

对指数处理结果如图所示:

图片2指数变换后图像

图片2直方图指数变换后直方图

对数变换后直方图

图片2对数变换后图像

2.实验结果分析

A、对数变换

采用对数变换,当函数自变量为低值时,曲线斜率很高;自变量为高值时,曲线斜率变小。

由变换后图像和直方图可以得出,对数变换是增强图像中较暗的细节,从而可用来扩展被压缩的高值图像中较暗的像素。

B、指数变换

对数变换采用的是伽玛变换(γ>1),同理图像的高灰度区域对比度得到增加。

因为伽玛变换变换不是线性变换,不仅可以改变图像的对比度,还能够增强细节,从而带来整体图像效果的增强和改善。

(2)分别用Roberts算子、Sobel算子、LoG算子和Canny算子进行边缘检测,比较它们的效果并讨论其特点;

 

图片3图片4

实验步骤:

1.在MATLAB中编写检测程序

I=imread('图片3.png');

bw1=edge(I,'roberts');

bw2=edge(I,'sobel');

bw3=edge(I,'log');

bw4=edge(I,'canny');

figure

(1);imshow(I);title('原图像');

figure

(2);imshow(bw1);title('roberts');

figure(3);imshow(bw2);title('sobel');

figure(4);imshow(bw3);title('log');

figure(5);imshow(bw4);title('canny');

 

实验结果如图所示:

图片3经过roberts算子检测的图像

图片3经过sobel算子检测的图像

图片3经过LoG算子检测的图像

图片3经过canny算子检测的图像

图片4处理程序参考图片3处理程序。

实验结果如下图所示:

roberts处理后图像sobel处理后图像

LoG处理后图像canny处理后图像

2.实验结果分析

由实验结果可以看出:

Roberts利用局部差分算子寻找边缘,边缘定位精度较高,但是容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声的能力,所以对含噪声少的图像的处理效果较好;

Sobel算子考虑了邻域信息,相当于对图像先做加权平滑处理,然后再做微分运算,虽然能够对噪声有抑制效果,但不能完全排除检测结果中出现的虚假边缘。

对边缘定位准确,但检测出的边缘容易出现多像素宽度;

LoG算子即高斯-拉普拉斯算子,克服了拉普拉斯抗噪声比较差的缺点,但在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉,造成这些尖锐的边缘无法被检测到,但是相对于Roberts算子和Sobel算子处理结果稍好;

Canny算子:

在图像边缘检测中,抑制噪声和边缘精确定位是无法同时瞒足的,Canny算子在力图在抗干扰和精确定位之间寻求最佳的折中方案。

由图像处理结果可以看出,效果较前三者边缘更细腻、清楚。

从边缘定位的精度看:

Roberts算子和LoG算子定位精度更高。

从对不同方向边缘的敏感性而言:

Sobel算子检测斜向阶跃边缘效果较好;Roberts算子检测水平和垂直边缘效果较好;LoG算子不具备边缘方向检测能力;Soberl算子可以提供最精确的边缘方向估计。

从去噪能力看:

Roberts算子和LoG算子虽然定位精度较高,但受噪声影响大。

从总体效果来衡量,Canny算子给出了一种边缘定位精确性和抗噪声干扰性的较好折中。

(3)采用不同阈值化方法(固定阈值、迭代阈值、Otsu阈值等)对图像进行分割,比较它们的效果并讨论其特点;

 

图片5图片6

实验步骤:

1.固定阈值:

I=imread('图片5.png');

figure

(1);imshow(I);title('原图像');

figure

(2);imhist(I);title('直方图');

i=1;j=1;

fori=1:

1:

256

forj=1:

1:

256

if(I(i,j)<=129)

I(i,j)=0;

elseI(i,j)=255;

end

end

end

figure(3);imshow(I);title('129阈值');

图片5直方图取129阈值分割

图片6处理过程参考图片5。

实验结果如图所示:

图片6直方图取83阈值分割

2.迭代阈值:

I=imread('图片5.png');

ZMAX=max(max(I));%取出最大灰度值

ZMIN=min(min(I));%取出最小灰度值

TK=(ZMAX+ZMIN)/2;

bcal=1;

ISIZE=size(I);%读出图像大小

while(bcal)

iForeground=0;%定义前景和背景数

iBackground=0;

ForegroundSum=0;

%定义前景和背景灰度总和

BackgroundSum=0;

fori=1:

ISIZE

(1)

forj=1:

ISIZE

(2)

tmp=I(i,j);

if(tmp>=TK)

iForeground=iForeground+1;

ForegroundSum=ForegroundSum+double(tmp);

%前景灰度值

else

iBackground=iBackground+1;

BackgroundSum=BackgroundSum+double(tmp);

end

end

end

ZO=ForegroundSum/iForeground;

%计算前景和背景的平均值

ZB=BackgroundSum/iBackground;

TKTmp=uint8(ZO+ZB)/2;

if(TKTmp==TK)

bcal=0;

else

TK=TKTmp;

end

%当阈值不再变化的时候,说明迭代结束

end

disp(strcat('迭代后的阀值:

',num2str(double(TK))));

%显示最终阈值

newI=im2bw(I,double(TK)/255);

figure

(1);imshow(I);title('原始图像');

figure

(2);imshow(newI);title('迭代法分割')

实验结果:

迭代后的阀值:

128

图片5迭代分割

图片6处理过程同上,实验结果如图所示:

迭代后的阀值:

104

图片6迭代分割

3.Otsu阈值:

I=imread('图片5.png');

level=graythresh(I);

BW=im2bw(I,level);

figure

(1);imshow(I);title('原图像');

figure

(2);imshow(BW);title('otsu');

实验结果:

Level=0.5137

Otsu阈值分割

图片6处理过程同上,实验结果如下:

Level=0.4039;

Otsu阈值分割

4.实验结果分析

固定阈值:

由图片5和图片6的处理结果看出,固定阈值适合具有明显双峰的图像,但是当两个峰值相差很远时不适用,而且容易受到噪声的干扰,进而导致阈值的选取误差。

又因为直方图是各灰度的像素统计,其峰值和谷底并不一定代表目标和背景,所以没有图像其他方面的知识,只靠直方图进行图像分割是不一定准确的。

迭代阈值:

基本思想是:

开始选择一个阈值作为初始值,然后按照某种方法不断更新这个阈值,直到满足给定的条件为止。

由处理结果可以看出,迭代阈值法不需要再依靠直方图或其他方法给出分割阈值,就能够很好的分割图像。

对于图片6效果不是很好。

Otsu阈值:

Otsu阈值又称最大类间方差法,函数Graythresh可以自适应地确定变换所用的最优阈值。

由图像处理结果可以看出,对于简单图像处理效果稍好,但是对于复杂图像的处理效果不好,常常给物体的边缘带来误差。

(4)对于2幅不同的纹理图像,计算其灰度共生矩阵及相关的二次统计量(能量、惯性、相关性、熵等),并比较有何不同?

从这些统计量中可以看出纹理图像有何特点?

 

图片7图片8

实验步骤:

1.实验程序

%基于共生矩阵纹理特征提取,d=1,θ=0°,45°,90°,135°共四个矩阵

%所用图像灰度级均为256

Gray=imread('图片7.png');

[M,N]=size(Gray);

I=zeros(M,N);

I=(Gray-rem(Gray,8))/8;

figure

(1);imshow(Gray,[]);

title('256*256');figure(3);imhist(Gray);

figure

(2);imshow(I,[]);

title('8*8');figure(4);imhist(I);

%--------------------------------------------

%计算四个共生矩阵P,取距离为1,角度分别为0,45,90,135

%--------------------------------------------

P=zeros(8,8,4);

form=1:

8

forn=1:

8

fori=1:

M

forj=1:

N

ifj

P(m,n,1)=P(m,n,1)+1;

P(n,m,1)=P(m,n,1);

end

ifi>1&j

P(m,n,2)=P(m,n,2)+1;

P(n,m,2)=P(m,n,2);

end

ifi

P(m,n,3)=P(m,n,3)+1;

P(n,m,3)=P(m,n,3);

end

ifi

P(m,n,4)=P(m,n,4)+1;

P(n,m,4)=P(m,n,4);

end

end

end

ifm==n

P(m,n,:

)=P(m,n,:

)*2;

end

end

end

%%-------------------------------------------

%对共生矩阵归一化

%%-------------------------------------------

forn=1:

4

P(:

:

n)=P(:

:

n)/sum(sum(P(:

:

n)));

end%----------------------------------------

%4.对共生矩阵计算能量、熵、惯性矩、相关4个纹理参数

%--------------------------------------------

H=zeros(1,4);

I=H;

Ux=H;Uy=H;

deltaX=H;deltaY=H;

C=H;

forn=1:

4

E(n)=sum(sum(P(:

:

n).^2));%%能量

fori=1:

8

forj=1:

8

ifP(i,j,n)~=0

H(n)=-P(i,j,n)*log(P(i,j,n))+H(n);%%熵

end

I(n)=(i-j)^2*P(i,j,n)+I(n);

%%惯性矩

Ux(n)=i*P(i,j,n)+Ux(n);

%相关性中μx

Uy(n)=j*P(i,j,n)+Uy(n);

%相关性中μy

end

end

end

forn=1:

4

fori=1:

8

forj=1:

8

deltaX(n)=(i-Ux(n))^2*P(i,j,n)+deltaX(n);%相关性中σx

deltaY(n)=(j-Uy(n))^2*P(i,j,n)+deltaY(n);%相关性中σy

C(n)=i*j*P(i,j,n)+C(n);

end

end

C(n)=(C(n)-Ux(n)*Uy(n))/deltaX(n)/deltaY(n);%相关性

end

%--------------------------------------------

%求能量、熵、惯性矩、相关的均值和标准差作为最终8维纹理特征

%--------------------------------------------

b1=sqrt(cov(E));a1=mean(E);

b2=sqrt(cov(H));a2=mean(H);

b3=sqrt(cov(I));a3=mean(I);

b4=sqrt(cov(C));a4=mean(C);

sprintf('0,45,90,135方向上的能量依次为:

%f,%f,%f,%f',E

(1),E

(2),E(3),E(4))%输出数据;

sprintf('0,45,90,135方向上的熵依次为:

%f,%f,%f,%f',H

(1),H

(2),H(3),H(4))%输出数据;

sprintf('0,45,90,135方向上的惯性矩依次为:

%f,%f,%f,%f',I

(1),I

(2),I(3),I(4))%输出数据;

sprintf('0,45,90,135方向上的相关性依次为:

%f,%f,%f,%f',C

(1),C

(2),C(3),C(4))%输出数据;

2.实验结果如下所示:

图片7的结果:

ans=

0,45,90,135方向上的能量依次为:

0.170495,0.143078,0.164191,0.141377

ans=

0,45,90,135方向上的熵依次为:

2.223837,2.366822,2.239749,2.389057

ans=

0,45,90,135方向上的惯性矩依次为:

0.671650,0.907801,0.640556,0.982820

ans=

0,45,90,135方向上的相关性依次为:

0.672787,0.543289,0.677332,0.507081

共生矩阵:

P(:

:

1)=

00000000

00000000

00000000

0000.00170.00360.00170.00030.0006

0000.00360.02210.02930.01020.0019

0000.00170.02930.07810.05370.0197

0000.00030.01020.05370.11520.0941

0000.00060.00190.01970.09410.3527

P(:

:

2)=

00000000

00000000

00000000

00000.00350.00390.00070.0007

0000.00350.01840.03260.01600.0064

0000.00390.03260.08010.05640.0262

0000.00070.01600.05640.09500.1018

0000.00070.00640.02620.10180.3099

P(:

:

3)=

00000000

00000000

00000000

0000.00190.00440.00190.00060.0003

0000.00440.02460.03250.00790.0022

0000.00190.03250.08400.05810.0148

0000.00060.00790.05810.11050.0960

0000.00030.00220.01480.09600.3411

P(:

:

4)=

00000000

00000000

00000000

00000.00290.00390.00210.0007

0000.00290.01500.03580.01720.0057

0000.00390.03580.07440.05760.0326

0000.00210.01720.05760.08590.0981

0000.00070.00570.03260.09810.3114

图片8的结果:

ans=

0,45,90,135方向上的能量依次为:

0.375000,1.000000,0.375000,NaN

ans=

0,45,90,135方向上的熵依次为:

1.039721,0.000000,1.039721,NaN

ans=

0,45,90,135方向上的惯性矩依次为:

0.500000,0.000000,4.500000,NaN

ans=

0,45,90,135方向上的相关性依次为:

-1.777778,NaN,-0.197531,NaN

共生矩阵:

P(:

:

1)=

00000000

00000000

00000000

00000000

00000000

00000000

00000000.2500

0000000.25000.5000

P(:

:

2)=

00000000

00000000

00000000

00000000

00000000

00000000

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1