数字图像的增强处理1x.docx

上传人:聆听****声音 文档编号:720771 上传时间:2023-04-29 格式:DOCX 页数:7 大小:22.64KB
下载 相关 举报
数字图像的增强处理1x.docx_第1页
第1页 / 共7页
数字图像的增强处理1x.docx_第2页
第2页 / 共7页
数字图像的增强处理1x.docx_第3页
第3页 / 共7页
数字图像的增强处理1x.docx_第4页
第4页 / 共7页
数字图像的增强处理1x.docx_第5页
第5页 / 共7页
数字图像的增强处理1x.docx_第6页
第6页 / 共7页
数字图像的增强处理1x.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像的增强处理1x.docx

《数字图像的增强处理1x.docx》由会员分享,可在线阅读,更多相关《数字图像的增强处理1x.docx(7页珍藏版)》请在冰点文库上搜索。

数字图像的增强处理1x.docx

数字图像的增强处理

一、实验目的与要求

1、熟悉和掌握Matlab能处理的图像格式。

2、掌握在Matlab中图像的读取。

3、掌握数字图像的增强技术

4、能编程实现图像的平滑运算

二、实验内容

1、编程实现如下功能(邻域均值——denoising)

A、读入图像,如果是彩色图像,请先转换为灰度图像

B、输出图像的灰度直方图

C、向图像中添加噪声:

函数imnoise

D、如果一种处理方法的思想如下:

如果一个非边界像素点,其该像素点的灰度值可通过其8邻域内所有像素点的平均得到。

边界点不变。

请编程实现该处理方法,对C步的图像进行处理

E、将处理后的图像输出,并输出该图像的灰度直方图。

程序:

clcclear

img=imread('zhanglala.bmp');

ifnumel(size(img))>2 %如果是彩色图像就转换为灰度图像

img=rgb2gray(img);

endfigure;

imshow(img);

[m,n]=size(img);X=zeros(1,256);Y=zeros(1,256);X=0:

1:

255;

%计算直方图

fori=1:

m

forj=1:

n

Y(img(i,j)+1)=Y(img(i,j)+1)+1;

endendfigure;

plot(X,Y);%输出直方图

img=imnoise(img,'gaussian');%添加高斯噪声

%进一步处理图像

img=im2double(img);fori=1:

m

forj=1:

n

if(i~=1&&j~=1&&i~=m&&j~=n)%对非边界像素点进行处理

img(i,j)=(img(i-1,j-1)+img(i-

1,j)+img(i-1,j+1)+img(i,j-1)+img(i,j

+1)+img(i+1,j-1)+img(i+1,j)+img(i+1,

j+1))/9;

end

end

end

img=uint8(img*255);fori=1:

m

forj=1:

n

Y(img(i,j)+1)=Y(img(i,j)+1)+1;

endendfigure;

imshow(img);figure;

plot(X,Y);%输出灰度直方图

2、编程实现如下功能(卷积运算)

A、读入图像,如果是彩色图像,请先转换为灰度图像

B、输出图像的灰度直方图

C、如果一种处理方法的思想如下:

如果v是一个不超过0.88的正实数,gamma是matlab下的一个函数,其余变量为:

fa=1/gamma(2-v); h1=fa;

h3

0

h3

0

h3

0

h2 h2 h2

h3

h3 h2 h1 h2

h3

h2=fa*(2^(1-v)-2); h3=fa*((1-v)*(2^(-v))-(2^(1-v))+1);

h2

h3

0

h3

0

h3

0

h2

h2

0

图像的任一边界点保存不变。

非边界像素点,其该像素点计算方式为:

以x方向,见图中红线为例h1参数所在的位置为要处理的像素点f(i,j),则h2的位置为f(i+1,j),h3的位置为f(i+2,j),则f(i,j)的值为:

f’(i,j)=h1*f(i,j)+h2*f(i+1,j)+h3*f(i+2,j),其余7个方向以此方法计算;最后将8个方向上结果全部相加,将加后的结果除以8*(h1+h2+h3)作为最后该位置(i,j)的值。

f(i,j)=8个方向处理结果之和/(8*(h1+h2+h3))

其中:

右边红色箭头方向的计算

f(i,j)=h1*f(i,j) + h2*f(i+1,j)+h3*f(i+2,j)

右边的红色箭头

f(i,j)=h1*f(i,j) +h2*f(i-1,j)+h3*f(i-2,j)

东北方向:

f(i,j)=h1*f(i,j)+h2*f(i+1,j-1)+h3*f(i+2,j-2)

西南

f(i,j)=h1*f(i,j)+h2*f(i-1,j+1)+h3*f(i-2,j+2)

D、输入一个v值,按C的方法对图像进行处理,将处理后的图像输出,并输出该图像的灰度直方图。

程序:

clcclear

img=imread('zhanglala.bmp');

ifnumel(size(img))>2 %如果是彩色图像就转换为灰度图像

img=rgb2gray(img);

end

figure;imshow(img);

[m,n]=size(img);X=zeros(1,256);Y=zeros(1,256);X=0:

1:

255;

%计算直方图

fori=1:

m

forj=1:

n

Y(img(i,j)+1)=Y(img(i,j)+1)+1;

endendfigure;

plot(X,Y);%输出直方图

title('灰度直方图');

v=input('请输入V值(不能大于0.88):

');fa=1/gamma(2-v);

h1=fa;

h2=fa*(2^(1-v)-2);

h3=fa*((1-v)*(2^(-v))-(2^(1-v))+1);

%对图像进行处理

img=im2double(img);fori=1:

m

forj=1:

n

ifi>2&&i<=m-2&&j>2&&j<=n-2dir1=h1*img(i,j)+h2*img(i,j+1)

+h3*img(i,j+2);

dir2=h1*img(i,j)+h2*img(i,j-1)

+h3*img(i,j-2);

dir3=h1*img(i,j)+h2*img(i-1,j)

+h3*img(i-2,j);

dir4=h1*img(i,j)+h2*img(i+1,j)

+h3*img(i+2,j);

dir5=h1*img(i,j)+h2*img(i-1,j

-1)+h3*img(i-2,j-2);

dir6=h1*img(i,j)+h2*img(i-1,j

+1)+h3*img(i-2,j+2);

dir7=h1*img(i,j)+h2*img(i+1,j

-1)+h3*img(i+2,j-2);

dir8=h1*img(i,j)+h2*img(i+1,j

+1)+h3*img(i+2,j+2);

img(i,j)=(dir1+dir2+dir3+dir4+

dir5+dir6+dir7+dir8)/(8*(h1+h2+h3));end

end

end

img=uint8(img*255);figure;

imshow(img);fori=1:

m

forj=1:

n

Y(img(i,j)+1)=Y(img(i,j)+1)+1;

endendfigure;

plot(X,Y);%输出灰度直方图

title('灰度直方图');

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2