数字图像实验二~四
更新时间:2024-04-15 20:33:01 阅读量: 综合文库 文档下载
实验二 %%图像文件读取 a=imread('lyy.tif'); %图像写入
imwrite(a,'lyy.tif'); %%
%读取照片信息 sizeofa=size(a);
inf=imfinfo('lyy','tif'); %% %显示照片 imshow(a)
%%
%将彩图转换为灰度图 I = imread('lyy.tif'); B= rgb2gray(I);
figure, imshow(B), figure, imshow(I);
%%
%灰度图像转化
rgb=imread('lyy.tif'); [x1 map1]=rgb2ind(rgb,64); x=ind2gray(x1,map1); imshow(x1,map1)
figure, imshow(x)
%%
%调整灰度图像对比度 clear all; close all; I=imread('lyy.tif'); P=rgb2gray(I);
J=imadjust(P, [0.2 0.5], [0 1]); figure;
subplot(131);%原图 imshow(uint8(I)); subplot(132);%%灰度图 imshow(uint8(P));
subplot(133);%%经过灰度变换后的灰度图 imshow(uint8(J));
%%
%获取图像直方图 p=imread('lyy.tif'); i=rgb2gray(p); imhist(i)
%%
%直方图均衡化
M = imread('lyy.tif'); I=rgb2gray(M); J = histeq(I); imshow(I) figure, imshow(J) 均衡化前的图像
均衡化后的图像
%%
%直方图规范化
close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc;
R=imread('lyy.tif');%读入原图像,赋值给R
J=rgb2gray(R); %将彩色图像数据R转换为灰度图像数据J [M,N]=size(J); %获得灰度图像数据J的行列数M,N x=1;y=1; %定义行索引变量x、列索引变量y for x=1:M for y=1:N
if (J(x,y)<=35); %对灰度图像J进行分段处理,处理后的结果返回给矩阵H
H(x,y)=J(x,y)*10; elseif(J(x,y)>35&J(x,y)<=75); H(x,y)=(10/7)*[J(x,y)-5]+50; else(J(x,y)>75);
H(x,y)=(105/180)*[J(x,y)-75]+150; end end end
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置 subplot(121),imshow(J)%显示处理前后的图像 subplot(122),imshow(H); 规定化前的图像
规定化后的图像
%%
%初始操作
fn=imread('cameraman.tif');%读取图像 %%
%%%%%加噪声与噪声处理%%%%%% %加噪声
I = imread('cameraman.tif');%原图像
J = imnoise(I,'salt & pepper',0.02);%加噪声 J1=imnoise(I,'gaussian'); subplot(311), imshow(I) title('原图像') subplot(312), imshow(J) title('椒盐噪声') subplot(313) imshow(J1) title('高斯噪声')
%%
%处理噪声
w4=fspecial('laplacian',0); g4=fn-imfilter(J,w4,'replicate'); g41=fn-imfilter(J,w4,'symmetric'); g42=fn-imfilter(J,w4,'circular'); g43=fn-imfilter(J1,w4,'replicate'); g44=fn-imfilter(J1,w4,'symmetric'); g45=fn-imfilter(J1,w4,'circular'); %%
%显示椒盐噪声过滤效果效果 subplot(424) imshow(fn)
title('原图')
subplot(421),imshow(g4)%%replicate办法 title('replicate办法处理椒盐噪声')
subplot(422),imshow(g41)%%symmetric办法 title('symmetric办法处理椒盐噪声')
subplot(423),imshow(g42)%%circular办法 title('circular办法处理椒盐噪声') subplot(425) imshow(g43)
title('replicate办法处理高斯噪声') subplot(426) imshow(g44)
title('symmetric办法处理高斯噪声') subplot(427) imshow(g45)
title('circular办法处理高斯噪声')
%%
%对椒盐噪声做10次均值滤波 H1= fspecial('average',10); jiao1 = imfilter(J,H1,'replicate'); subplot(211) imshow(J)
title('加噪声图像') subplot(212) imshow(jiao1); title('10次均值滤波')
%%
%对椒盐噪声做20次均值滤波 H2 = fspecial('average',20); jiao2 = imfilter(J,H2,'replicate'); imshow(J)
title('加噪声图像') subplot(212) imshow(jiao2);
title('20次均值滤波')
%%
%用中值滤波和均值滤波处理椒盐噪声 I = imread('cameraman.tif');
J = imnoise(I,'salt & pepper',0.02); K = medfilt2(J);%%中值滤波器 H2 = fspecial('average',10); jiao3 = imfilter(I,H2,'replicate'); subplot(311) imshow(J),
title('原图像 梁逸云') subplot(312), imshow(K)
title('中值滤波') subplot(313)
imshow(jiao3) title('均值滤波')
%%
%低通(平滑)滤波器(利用低通领域模板进行平滑) fn=imread('cameraman.tif'); k=fspecial('average');
kn=filter2(k,fn)/256;%%3*3平滑滤波 k1=fspecial('average',9);
kn1=filter2(k1,fn)/255;%%9*9平滑滤波 %% %显示
subplot(3,1,1);
imshow(fn) title('原图 梁逸云') subplot(3,1,2); imshow(kn) title('3*3平滑滤波') subplot(3,1,3); imshow(kn1)
title('9*9平滑滤波')
实验三 %%
%%%%%锐化空间滤波%%%%%%%
%线性平滑滤波器(用3*3模板处理图像) w8=[1 1 1;1 -8 1;1 1 1];%创建3*3矩阵 g8=fn-imfilter(fn,w8,'replicate'); %%
%3*3模板,边沿处理
g82=fn-imfilter(fn,w8,'symmetric'); %%
%5*5模板
g25=genlaplacian(fn); %%
%显示图像(3*3模板) subplot(3,1,1); imshow(fn)
title('原图 梁逸云') subplot(3,1,2); imshow(g8)
title('3*3处理后的图像 梁逸云') subplot(3,1,3); imshow(g82)
title('3*3模板边沿处理的图像 梁逸云')
%%
%显示图像(5*5模板) subplot(211) imshow(fn)
title('原图 梁逸云') subplot(212), imshow(g25)
title('5*5处理后的图像 梁逸云')
%%
%%%%锐化增强%%%%%
%产生5*5,9*9,15*15,25*25大小的拉普拉斯算子 w55=ones(5);
w55(3,3)=w55(3,3)-25; w99=ones(9);
w99(5,5)=w99(5,5)-81; w15=ones(15);
w15(8,8)=w15(8,8)-15^2; w25=ones(25);
w25(13,13)=w25(13,13)-25^2; %%
%利用算子
g55=fn-imfilter(fn,w55,'replicate'); g99=fn-imfilter(fn,w99,'replicate'); g15=fn-imfilter(fn,w15,'replicate'); g25=fn-imfilter(fn,w25,'replicate'); %%
%显示效果 subplot(321), imshow(fn)
title('原图像 梁逸云') subplot(322), imshow(g55)
title('5*5模板 梁逸云') subplot(323), imshow(g99) title('9*9模板') subplot(324), imshow(g15)
title('15*15模板 梁逸云') subplot(325), imshow(g25)
title('25*25模板 梁逸云')
%%
%自行设计锐化滤波器进行锐化滤波 I=imread('cameraman.tif');
domain=[8 8 0 8 8;8 8 0 8 8;0 0 0 0 0;8 8 0 8 8;8 8 0 8 8]; K1=ordfilt2(I,5,domain); %%
%显示原图与锐化滤波器效果,进行对比 subplot(211) imshow(I)
title('原图 梁逸云') subplot(212) imshow(K1)
title('滤波后图像')
附代码中使用的genlaplacian函数 function g = genlaplacian(n)
%UNTITLED3 此处显示有关此函数的摘要 % 此处显示详细说明
w25=[1 1 1 1 1;1 1 1 1 1;1 1 -24 1 1;1 1 1 1 1;1 1 1 1 1]; g=n-imfilter(n,w25,'replicate'); end
实验四 %读取原图像
I=imread('camen.gif'); J=imread('rice.gif'); subplot(427) imshow(I)%%显示图像 title('camen.gif') subplot(428) imshow(J)%%显示图像 title('rice.gif')
%%
%对原图像加高斯噪声并显示 subplot(421);
I=imnoise(I,'gaussian'); imshow(I)
title('加高斯噪声的camen.gif') subplot(422);
J=imnoise(J,'gaussian');
imshow(J)
title('加高斯噪声的rice.gif') title('加高斯噪声的rice.gif')
%% %%
%计算频谱幅值
a=ffi(I);%%用函数ffi做归一化具体函数文件见附函数文件ffi a1=ffi(J);%%%用函数ffi做归一化具体函数文件见附函数文件ffi %%
subplot(423)
imshow(a)%显示原图像频谱
title('加高斯噪声的camen.gif频谱') subplot(424) imshow(a1)
title('加高斯噪声的rice.gif频谱') %% %高斯滤波
a=ffi(I);%%用函数ffi做归一化具体函数文件见附函数文件ffi a1=ffi(J);%%%用函数ffi做归一化具体函数文件见附函数文件ffi nn=fspecial('gaussian',15,40); fe=imfilter(I,nn,'replicate'); fe1=imfilter(J,nn,'replicate'); subplot(425); imshow(fe)
title('高斯滤波后camen.gif') subplot(426); imshow(fe1)
title('高斯滤波后rice.gif')
%%
%高斯平滑滤波
n1=3;sigma1=1.5;n2=3;sigma2=1.5;theta=0; [I,map]=imread('camen.gif'); I=imnoise(I,'gaussian');
a=ffi(I);%用函数ffi做归一化具体函数文件见附函数文件ffi r=[cos(theta) -sin(theta); sin(theta) cos(theta)]; for i = 1 : n2 for j = 1 : n1
u = r*[j-(n1+1)/2 i-(n2+1)/2]';
h(i,j)=exp(-u(1)^2/(2*sigma1^2))/(sigma1*sqrt(2*pi))*exp(-u(2)^2/(2*sigma2^2))/(sigma2*sqrt(2*pi)); end end
h = h / sqrt(sum(sum(h.*h))); f1=convn(I,h,'same'); f2=convn(a,h,'same');
subplot(2,2,1); imagesc(I);title('camen.gif'); colormap(gray); subplot(2,2,2);
imagesc(f1);title('高斯平滑滤波后的camen1.gif(3x3)'); colormap(gray);
subplot(2,2,3); imshow(a);title('camen.gif的频谱'); colormap(gray); subplot(2,2,4);
imshow(f2);title('高斯滤波平滑后的camen.gif(3x3)的频谱'); colormap(gray); %%
%%
%高斯高通滤波 I=imread('camen.gif'); I=imnoise(I,'gaussian');
a=ffi(I);%%用函数ffi做归一化具体函数文件见附函数文件ffi [N,M]=size(I); figure; subplot(2,2,1); imshow(I)
title('源图像camen.gif '); subplot(222); imshow(a)
title('源图像camen.gif 频谱');
n1=3;sigma1=0.5;n2=3;sigma2=0.5;theta=0; r=[cos(theta) -sin(theta); sin(theta) cos(theta)]; for i = 1 : n2 for j = 1 : n1
u = r*[j-(n1+1)/2 i-(n2+1)/2]';
h(i,j)=exp(-u(1)^2/(2*sigma1^2))/(sigma1*sqrt(2*pi))*exp(-u(2)^2/(2*sigma2^2))/(sigma2*sqrt(2*pi)); end end
h = h / sqrt(sum(sum(h.*h))); f1=convn(I,h,'same'); f2=convn(a,h,'same'); t=ones(N,M); t=f1; for i=2:N-1 for j=2:M-1
f1(i,j)=t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1)-4*t(i,j); end end
t1=ones(N,M); t1=f2; for i=2:N-1 for j=2:M-1
f2(i,j)=t1(i+1,j)+t1(i-1,j)+t1(i,j+1)+t1(i,j-1)-4*t1(i,j); end end
subplot(2,2,3); imshow(f1);
title('高斯高通滤波后-camen.gif '); subplot(2,2,4); imshow(f2)
title(' 高斯高通滤波后-camen.gif的频谱 ');
%%
%巴特沃斯低通滤波 I=imread('camen.gif'); I=imnoise(I,'gaussian');
figure;subplot(221);imshow(I);title('灰度图像'); f=double(I); g=fft2(f);g=fftshift(g); F2=log(abs(g));
subplot(222);imshow(F2,[],'InitialMagnification','fit');title('灰度图像频谱图'); colormap(jet); %colorbar
[result F3] =bartworL( g );%%用bartworL做滤波处理,具体函数见附函数bartworL
subplot(224);imshow(F3,[],'InitialMagnification','fit');title('巴特沃斯低通滤波后的灰度图像频谱'); colormap(jet); %colorbar
result=ifftshift(result); X2=ifft2(result); X3=uint8(real(X2));
subplot(223);imshow(X3);title('巴特沃斯滤波后的灰度图像');
%%
%巴特沃斯高通滤波
I=imread('camen.gif'); I=imnoise(I,'gaussian');
subplot(221);imshow(I);title('灰度图像'); f=double(I); g=fft2(f); g=fftshift(g); F2=log(abs(g));
subplot(222);imshow(F2,[],'InitialMagnification','fit');title('图像的频谱图');
colormap(jet); %colorbar
[result F3]=bartworH(g);%%用bartworH做滤波处理,具体函数见附函数bartworH subplot(224);imshow(F3,[],'InitialMagnification','fit');title('巴特沃斯滤波后的频谱图'); colormap(jet); %colorbar
result=ifftshift(result); X2=ifft2(result); X3=uint8(real(X2));
subplot(223);imshow(X3);title('巴特沃斯高通滤波后的图像'); %%
%理想低通滤波器
I=imread('camen.gif');
J=imnoise(I,'gaussian',0,0.02);
subplot(1,2,1);imshow(J);title('原图'); f=double(J); g=fft2(f); g=fftshift(g); [M,N]=size(g); d0=100;
m=fix(M/2);n=fix(N/2); for i=1:M for j=1:N
d=sqrt((i-m)^2+(j-n)^2); if (d<=d0) h=1; else h=0; end
result(i,j)=h*g(i,j); end end
result=ifftshift(result); J1=ifft2(result); J2=uint8(real(J1));
subplot(1,2,2);imshow(J2);title('理想低通滤波图像'); %%
%理想高通滤波器
I=imread('camen.gif');
J=imnoise(I,'gaussian',0,0.02);
subplot(1,2,1);imshow(J);title('原图'); f=double(J); g=fft2(f); g=fftshift(g); [M,N]=size(g); d0=80;
m=fix(M/2);n=fix(N/2); for i=1:M for j=1:N
d=sqrt((i-m)^2+(j-n)^2); if(d>=d0) h=1; else h=0; end
result(i,j)=h*g(i,j); end end
result=ifftshift(result); J1=ifft2(result); J2=uint8(real(J1));
subplot(1,2,2);imshow(J2);title('理想高通滤波图像');
附函数ffi
function a = ffi(I) %%
%傅里叶处理
fftI=fft2(I);%二维离散傅里叶变换
sfft=fftshift(fftI);%直流分量移到频谱中心 rr=real(sfft);%取傅里叶变换的实部 ii=imag(sfft);%取傅里叶变换的虚部 %%
a=sqrt(rr.^2+ii.^2);%计算频谱幅值
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*255;%归一化 end
附函数bartworL
function [ result F3 ] =bartworL( g ) %巴特沃斯低通滤波
% 返回频谱F3以及图像数据result
[N1,N2]=size(g); n=2; d0=5;
n1=fix(N1/2); n2=fix(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2); if d==0 h=0; else
h=1/(1+(d/d0)^(2*n)); end
result(i,j)=h*g(i,j); end
end
F3=log(abs(result));
end
附函数bartworH
function [result F3]=bartworH(g) %巴特沃斯高通滤波器
% 返回频谱F3以及图像数据result [N1,N2]=size(g); n=2; d0=5;
n1=fix(N1/2); n2=fix(N2/2); for i=1:N1 for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2);
if d==0 h=0; else
h=1/(1+(d0/d)^(2*n)); end
result(i,j)=h*g(i,j); end end
F3=log(abs(result));
end
正在阅读:
数字图像实验二~四04-15
健康评估题库12-07
必修1 第三单元 细胞的能量供应和利用06-22
二建资料03-26
战 前 检 查03-17
迷人的秋色作文800字06-21
教师代表“十佳青年教师”发表获奖感言讲话发言演讲稿范文08-04
高中化学《不同晶体的类型》教学设计03-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 图像
- 实验
- 数字
- 材料合成与制备 - 复习资料(有答案)
- 美国文学史及选读期末复习题
- 2017年外贸--产品区域代理合同模板(中英文)
- 专题02 文言文阅读-2014届高三名校语文试题精选精析分省汇编系列
- 电大作业1-3答案
- 茶树育种学习题及答案
- 国家高压电工国家题库模拟题1
- rs顶推施工法 - secret
- 语言学纲要名词解释
- 七年级下册数学提公因式法
- 2010最新教育法律法规试题及答案4
- 让情感丰富高中语文课堂
- 如何从做好团队建设中提升优质服务2012.04.24
- 货劳税业务测试题(三)答案
- 计算机中级工考试理论模拟试题A
- “情感先导,问题驱动”模式在高中生物教学中的应用
- 2010年龙泉驿区国民经济和社会发展的统计公报
- 如何留住您的员工
- 中国人民解放军原11军31师93团 发展沿革简介
- 计量经济学 张晓峒 第三版 南开大学出版社