图像处理报告 正文Word文档格式.docx

上传人:b****5 文档编号:21371087 上传时间:2023-01-30 格式:DOCX 页数:15 大小:903.34KB
下载 相关 举报
图像处理报告 正文Word文档格式.docx_第1页
第1页 / 共15页
图像处理报告 正文Word文档格式.docx_第2页
第2页 / 共15页
图像处理报告 正文Word文档格式.docx_第3页
第3页 / 共15页
图像处理报告 正文Word文档格式.docx_第4页
第4页 / 共15页
图像处理报告 正文Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

图像处理报告 正文Word文档格式.docx

《图像处理报告 正文Word文档格式.docx》由会员分享,可在线阅读,更多相关《图像处理报告 正文Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

图像处理报告 正文Word文档格式.docx

%对原图像进行标准化

%进行γ校正

gamma0p4=uint8(src.^0.4.*256.0);

gamma0p6=uint8(src.^0.6.*256.0);

gamma0p8=uint8(src.^0.8.*256.0);

%绘制原图及处理后的图像

subplot(2,2,1);

imshow(src);

title('

原图像'

subplot(2,2,2);

imshow(gamma0p4);

γ=0.4'

subplot(2,2,3);

Imshow(gamma0p4);

γ=0.6'

subplot(2,2,4);

γ=0.8'

实验结果如下图所示:

2)对数变换

s=clog(1+r),c为常数,r≥0

H=imread('

%读入图片

I=mat2gray(H);

%对数变换不支持uint8类型数据,将一个矩阵

%转化为灰度图像的数据格式(double)

J=log(I+1);

%进行对数变换

subplot(1,2,1);

Imshow(I);

%显示图像

title('

原图'

subplot(1,2,2);

Imshow(J);

对数变换后的图像'

3)均值滤波

closeall;

h=imread('

%读入图片

n=input('

请输入均值滤波器模板大小\n'

imshow(h),title('

原始图象'

%显示原始图象

g=imnoise(h,'

gaussian'

0.1,0.002);

%加入高斯噪声

imshow(g),title('

加入高斯噪声之后的图象'

%显示加入高斯噪声之后的图象

a(1:

n,1:

n)=1;

p=size(h);

x1=double(h);

x2=x1;

fori=1:

p

(1)-n+1

forj=1:

p

(2)-n+1

c=x1(i:

i+(n-1),j:

j+(n-1)).*a;

%取出x1中从(i,j)开始的n行n列元素

%与模板相乘

s=sum(sum(c));

%求c矩阵(即模板)中各元素之和

x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);

%将模板各元素的均值赋给模板中心位

%置的元素

end

end

d=uint8(x2);

%未被赋值的元素取原值

imshow(d),title('

自编程序滤波图像'

%显示滤波后的图象

 

4)拉普拉斯滤波

f=imread('

imshow(f),title('

%显示原始图象

[h,w]=size(f);

%求得原图像的尺寸

x1=double(f);

%依次对每个图像元素进行操作

fori=2:

h-1

forj=2:

w-1

x2(i,j)=x1(i+1,j)+x1(i-1,j)+x1(i,j-1)+x1(i,j+1)-4*x1(i,j);

拉普拉斯处理后的图像'

%显示锐化后的图象

x3=x1;

x3(i,j)=5*x1(i,j)-(x1(i+1,j)+x1(i-1,j)+x1(i,j-1)+x1(i,j+1));

%

e=uint8(x3);

imshow(e),title('

拉普拉斯增强图像'

%显示拉普拉斯滤波后的图象

5)直方图均衡化

closeall

tu=imread('

graydis=zeros(1,256);

%设置矩阵大小

graydispro=zeros(1,256);

new_graydis=zeros(1,256);

new_graydispro=zeros(1,256);

[hw]=size(tu);

new_tu=zeros(h,w);

%计算原始直方图各灰度级像素个数graydis

forx=1:

h

fory=1:

w

graydis(1,tu(x,y))=graydis(1,tu(x,y))+1;

%计算原始直方图graydispro

graydispro=graydis./sum(graydis);

plot(graydispro);

灰度直方图'

xlabel('

灰度值'

ylabel('

像素的概率密度'

%计算原始累计直方图

256

graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);

%计算和原始灰度对应的新的灰度t[],建立映射关系

t(1,i)=floor(254*graydispro(1,i)+0.5);

%统计新直方图各灰度级像素个数new_graydis

new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);

%计算新的灰度直方图new_graydispro

new_graydispro=new_graydis./sum(new_graydis);

plot(new_graydispro);

均衡化后的灰度直方图'

%计算直方图均衡后的新图new_tu

new_tu(x,y)=t(1,tu(x,y));

imshow(tu,[]);

imshow(new_tu,[]);

直方图均衡化后的图'

%显示直方图均衡化后的图

实验二图像分割实验

1)理解图像分割的基本概念;

2)理解图像边缘提取的基本概念;

3)掌握进行边缘提取的基本方法;

4)掌握用阈值法进行图像分割的基本方法。

1)实现边缘检测算法。

2)实现用Hough变换检测直线的算法。

2)检测图像的边缘

3)实现Hough变换,检测出图像中的直线的方程

4)输出结果

4、实验具体操作及结果

1)边缘检测

a=imread('

\图像\IPT\2.jpg'

f=rgb2gray(a);

%将彩色图像转换成灰色图像

%Roberts算子处理图像

x2(i,j)=x1(i+1,j+1)+x1(i+1,j)-x1(i,j+1)-x1(i,j);

Roberts处理后的图像'

%显示Roberts处理后的图像

%Sobel算子处理图像'

x3(i,j)=2*x1(i+1,j)+x1(i+1,j+1)+x1(i+1,j-1)+x1(i-1,j+1)+2*x1(i,j+1)+x1(i+1,j+1)-(2*x1(i-1,j-1)+2*x1(i-1,j)+x1(i-1,j+1)+2*x1(i,j-1)+x1(i+1,j-1));

Sobel处理后的图像'

%显示Sobel处理后的图像

%拉普拉斯处理图像

x4=x1;

x4(i,j)=8*x1(i,j)-(x1(i+1,j)+x1(i+1,j+1)+x1(i+1,j-1)+x1(i-1,j-1)+x1(i-1,j+1)+x1(i-1,j)+x1(i,j-1)+x1(i,j+1));

c=uint8(x4);

imshow(c),title('

%显示拉普拉斯处理后的图像

2)Hough变换

sourcePic=imread('

\图像\IPT\3.jpg'

%读入图片

[height,width,l]=size(sourcePic);

grayPic=zeros(height,width);

%转换成灰度图象

height

width

grayPic(i,j)=(sourcePic(i,j,1)+sourcePic(i,j,2)+sourcePic(i,j,3))/3;

%log算子的计算值

logNum=0;

edgePic=zeros(height,width);

fori=3:

height-2%log算子提取边界

forj=3:

width-2

logNum=16*grayPic(i,j)-grayPic(i-2,j)-grayPic(i-1,j-1)-2*grayPic(i-1,j)-grayPic(i-1,j+1)-grayPic(i,j-2)-2*grayPic(i,j-1)-2*grayPic(i,j+1)-grayPic(i,j+2)-grayPic(i+1,j-1)-2*grayPic(i+1,j)-grayPic(i+1,j+1)-grayPic(i+2,j);

if(logNum>

0)

edgePic(i,j)=255;

else

edgePic(i,j)=0;

end

imshow(edgePic),title('

经过log处理后图象'

%显示log处理后图象

%Hough变换检测直线,g(x)=(a,p)为边界点对应的平面

ma=180;

%a的值为0到180度

mp=round(sqrt(height^2+width^2));

%对应P的最大值

npc=zeros(ma,2*mp);

%用于记录(a,p)对应的点的个数

npp=cell(ma,2*mp);

%用于记录(a,p)对应的点的坐标

height%计算(a,p)的值,并做相应记录

if(edgePic(i,j)==255)

fork=1:

ma

p=round(i*cos(pi*k/180)+j*sin(pi*k/180));

if(p>

npc(k,mp+p)=npc(k,mp+p)+1;

npp{k,mp+p}=[npp{k,mp+p},[i,j]'

];

else

ap=abs(p)+1;

npc(k,ap)=npc(k,ap)+1;

npp{k,ap}=[npp{k,ap},[i,j]'

end

end

ma%根据(a,p)对应的点的个数,

%用红色标出相应直线

mp*2

if(npc(i,j)>

90)%将提取直线的阈值设为90

lp=npp{i,j};

npc(i,j)

sourcePic(lp(1,k),lp(2,k),1)=255;

sourcePic(lp(1,k),lp(2,k),2)=0;

sourcePic(lp(1,k),lp(2,k),3)=0;

imshow(sourcePic),title('

经过hough变换处理后图象'

%显示检测出直线后的图像

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

当前位置:首页 > 表格模板 > 合同协议

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

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