数字图像实验二~四
更新时间:2024-01-25 14:39: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
正在阅读:
数字图像实验二~四01-25
广西钦州市钦州港经济技术开发区2017 - 2018学年高二数学上学期开学考试试题理01-01
当孕妈妈遭遇甲状腺疾病时10-27
导游解析04-25
论工程项目施工阶段的质量、进度、成本控制间的辩证关系10-07
七年级生物呼吸作用同步练习1103-15
烟机产品知识08-31
堕落的少女走上刑场005-21
新世纪研究生公共英语教材听说(上)【全】原文、解析、答案06-08
制冷设备安全操作规程01-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 图像
- 实验
- 数字
- “情感先导,问题驱动”模式在高中生物教学中的应用
- 通信工程许敬泽论文定稿 - 图文
- 四川省成都市2019届高中毕业班第一次诊断性检测数学(理)试题
- 中科院生理学历年考研真题汇编
- c++学生选修课程系统课程设计
- 七年级下册数学提公因式法
- 天正常用命令快捷键
- 会计造假案
- 东北三省三校2012届高三第二次联考 数学理(2012东北三校二模)word版
- 80211帧格式解析
- 电梯采购安装招标文件
- 通信原理(虚拟仿真实验)
- 中国政法大学研究生国家奖学金获奖名单
- 让情感丰富高中语文课堂
- 盆式橡胶支座安装 - 图文
- 软基处理强夯试验段总结
- 关于财务报表中相关数据的计算公式
- 4.10.1正义是人类良知的“声音”教师导学案模板
- 溴化锂机组说明书 - 图文
- 高填深挖施工专项方案