图像复原模型matlab

《数字图像处理》课程实验报告实验名2:图像复原模型建立实验院系:班级:姓名:学号:哈尔滨工业大学

电气工程及自动化学院

光电信息工程

2015年12月13日

一、实验原理

二、实验内容

三、实验结果与分析

附主要程序代码:

%桶形失真演示程序

%Ref:

%

clc;clear;close all;

X=imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');%读入图像X=rgb2gray(X);

X=double(X);

[M,N]=size(X);%获取图像的size

%M=32;N=M;

[x,y]=meshgrid(0:N-1,0:M-1);%生成网格矩阵坐标

x =x-[N-1]/2;%平移中心坐标至原点

y =y-[M-1]/2;%平移中心坐标至原点

r =abs(x+i*y);%极坐标关系的极径

r =r/max(r(:));%极坐标关系的极径:归一化

a =+0.4;K=1;%参数设置

xp =a*x.*r+x*[K-abs(a)];%失真后的坐标

yp =a*y.*r+y*[K-abs(a)];%失真后的坐标

%plot(x(:),y(:),'+');%绘图演示点阵效果

%hold on;

%plot(xp(:),yp(:),'o');%绘图演示点阵效果

dx =xp-x; %计算出位移dx

dy =yp-y; %计算出位移dy

Xp =interp2(x,y,X,x+dx,y+dy);%插值获得桶形失真后的图像

subplot(221);I1=imshow(X,[]);%显示原始图像

subplot(222);I2=imshow(Xp,[]);%显示桶形失真的图像

ti =title(['参数a =',num2str(a)],'Color','r');%显示参数值

Xq =interp2(x,y,Xp,x-dx,y-dy);%恢复桶形失真的图像

subplot(223);I3=imshow(Xq,[]);%显示恢复后的图像

set(gcf,'Name','桶形失真演示系统');%设置图像名称

Pu1=uicontrol(gcf,'Units','N','Position',[0.5,0.4,0.13,0.08],...

'Style','Push','String','选择图像',...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'[fname,pname]=uigetfile(''*.tiff'');',...

'if pname~=0;X=imread([pname,fname]);',...

'X =rgb2gray(X);X=double(X);set(I1,''CData'',X);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x+dx,y+dy);',...

'Xq =interp2(x,y,Xp,x-dx,y-dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);end;']);%生成按钮控件,该控件用于选择图像

%Callback 部分是计算程序,实时地计算显示失真结果

S1=uicontrol(gcf,'Units','N','Position',[0.7,0.1,0.03,0.4],...

'Style','slide','min',0,'max',0.6,'value',0.3,...

'SliderStep',[0.01,0.01],...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'a =get(S1,''Value'');',...

'set(ti,''String'',[''参数a='',num2str(a)]);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x+dx,y+dy);',...

'Xq =interp2(x,y,Xp,x-dx,y-dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);']);%生成滑动条控件,用于改变参数

%Callback 部分是计算程序,实时地计算显示失真结果;

%枕形失真演示程序

clc;clear;close all;

X=imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');%读入图像X=rgb2gray(X);

X=double(X);

[M,N]=size(X);%获取图像数据的size

%M=32;N=M;

[x,y]=meshgrid(0:N-1,0:M-1);%生成坐标点阵坐标

x =x-[N-1]/2;%平移中心坐标至原点

y =y-[M-1]/2;%平移中心坐标至原点

r =abs(x+i*y);%极坐标关系的极径

r =r/max(r(:));%极坐标关系的极径:归一化

a =+0.4;K=1;%参数设置

xp =a*x.*r+x*[K-abs(a)];%失真后的坐标

yp =a*y.*r+y*[K-abs(a)];%失真后的坐标

%plot(x(:),y(:),'+');%绘图演示点阵效果

%hold on;

%plot(xp(:),yp(:),'o');%绘图演示点阵效果

dx =xp-x; %计算出位移dx

dy =yp-y; %计算出位移dy

Xp =interp2(x,y,X,x-dx,y-dy);%插值获得桶形失真后的图像

subplot(221);I1=imshow(X,[]);%显示原始图像

subplot(222);I2=imshow(Xp,[]);%显示桶形失真的图像

Xq =interp2(x,y,Xp,x+dx,y+dy);%恢复桶形失真的图像

ti =title(['参数a =',num2str(a)],'Color','r');%显示参数值subplot(223);I3=imshow(Xq,[]);%显示恢复后的图像

set(gcf,'Name','枕形失真演示系统');%设置图像名称

Pu1=uicontrol(gcf,'Units','N','Position',[0.5,0.4,0.13,0.08],...

'Style','Push','String','选择图像',...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'[fname,pname]=uigetfile(''*.tiff'');',...

'if pname~=0;X=imread([pname,fname]);',...

'X =rgb2gray(X);X=double(X);set(I1,''CData'',X);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x-dx,y-dy);',...

'Xq =interp2(x,y,Xp,x+dx,y+dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);end;']);%生成按钮控件,该控件用于选择图像%Callback 部分是计算程序,实时地计算显示失真结果

S1=uicontrol(gcf,'Units','N','Position',[0.7,0.1,0.03,0.4],...

'Style','slide','min',0,'max',0.6,'value',0.3,...

'SliderStep',[0.01,0.01],'TooltipString',['a=',num2str(a)],...'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'a =get(S1,''Value'');',...

'set(S1,''TooltipString'',[''a='',num2str(a)]);',...

'set(ti,''String'',[''参数a='',num2str(a)]);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x-dx,y-dy);',...

'Xq =interp2(x,y,Xp,x+dx,y+dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);']);%生成滑动条控件,用于改变参数

%Callback 部分是计算程序,实时地计算显示失真结果

运动恢复:

I =imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');imshow(I)

BW1=edge(I,'sobel');

BW2=edge(I,'canny');

imshow(BW1)

figure, imshow(BW2)

《数字图像处理》课程实验报告实验名2:图像复原模型建立实验院系:班级:姓名:学号:哈尔滨工业大学

电气工程及自动化学院

光电信息工程

2015年12月13日

一、实验原理

二、实验内容

三、实验结果与分析

附主要程序代码:

%桶形失真演示程序

%Ref:

%

clc;clear;close all;

X=imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');%读入图像X=rgb2gray(X);

X=double(X);

[M,N]=size(X);%获取图像的size

%M=32;N=M;

[x,y]=meshgrid(0:N-1,0:M-1);%生成网格矩阵坐标

x =x-[N-1]/2;%平移中心坐标至原点

y =y-[M-1]/2;%平移中心坐标至原点

r =abs(x+i*y);%极坐标关系的极径

r =r/max(r(:));%极坐标关系的极径:归一化

a =+0.4;K=1;%参数设置

xp =a*x.*r+x*[K-abs(a)];%失真后的坐标

yp =a*y.*r+y*[K-abs(a)];%失真后的坐标

%plot(x(:),y(:),'+');%绘图演示点阵效果

%hold on;

%plot(xp(:),yp(:),'o');%绘图演示点阵效果

dx =xp-x; %计算出位移dx

dy =yp-y; %计算出位移dy

Xp =interp2(x,y,X,x+dx,y+dy);%插值获得桶形失真后的图像

subplot(221);I1=imshow(X,[]);%显示原始图像

subplot(222);I2=imshow(Xp,[]);%显示桶形失真的图像

ti =title(['参数a =',num2str(a)],'Color','r');%显示参数值

Xq =interp2(x,y,Xp,x-dx,y-dy);%恢复桶形失真的图像

subplot(223);I3=imshow(Xq,[]);%显示恢复后的图像

set(gcf,'Name','桶形失真演示系统');%设置图像名称

Pu1=uicontrol(gcf,'Units','N','Position',[0.5,0.4,0.13,0.08],...

'Style','Push','String','选择图像',...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'[fname,pname]=uigetfile(''*.tiff'');',...

'if pname~=0;X=imread([pname,fname]);',...

'X =rgb2gray(X);X=double(X);set(I1,''CData'',X);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x+dx,y+dy);',...

'Xq =interp2(x,y,Xp,x-dx,y-dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);end;']);%生成按钮控件,该控件用于选择图像

%Callback 部分是计算程序,实时地计算显示失真结果

S1=uicontrol(gcf,'Units','N','Position',[0.7,0.1,0.03,0.4],...

'Style','slide','min',0,'max',0.6,'value',0.3,...

'SliderStep',[0.01,0.01],...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'a =get(S1,''Value'');',...

'set(ti,''String'',[''参数a='',num2str(a)]);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x+dx,y+dy);',...

'Xq =interp2(x,y,Xp,x-dx,y-dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);']);%生成滑动条控件,用于改变参数

%Callback 部分是计算程序,实时地计算显示失真结果;

%枕形失真演示程序

clc;clear;close all;

X=imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');%读入图像X=rgb2gray(X);

X=double(X);

[M,N]=size(X);%获取图像数据的size

%M=32;N=M;

[x,y]=meshgrid(0:N-1,0:M-1);%生成坐标点阵坐标

x =x-[N-1]/2;%平移中心坐标至原点

y =y-[M-1]/2;%平移中心坐标至原点

r =abs(x+i*y);%极坐标关系的极径

r =r/max(r(:));%极坐标关系的极径:归一化

a =+0.4;K=1;%参数设置

xp =a*x.*r+x*[K-abs(a)];%失真后的坐标

yp =a*y.*r+y*[K-abs(a)];%失真后的坐标

%plot(x(:),y(:),'+');%绘图演示点阵效果

%hold on;

%plot(xp(:),yp(:),'o');%绘图演示点阵效果

dx =xp-x; %计算出位移dx

dy =yp-y; %计算出位移dy

Xp =interp2(x,y,X,x-dx,y-dy);%插值获得桶形失真后的图像

subplot(221);I1=imshow(X,[]);%显示原始图像

subplot(222);I2=imshow(Xp,[]);%显示桶形失真的图像

Xq =interp2(x,y,Xp,x+dx,y+dy);%恢复桶形失真的图像

ti =title(['参数a =',num2str(a)],'Color','r');%显示参数值subplot(223);I3=imshow(Xq,[]);%显示恢复后的图像

set(gcf,'Name','枕形失真演示系统');%设置图像名称

Pu1=uicontrol(gcf,'Units','N','Position',[0.5,0.4,0.13,0.08],...

'Style','Push','String','选择图像',...

'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'[fname,pname]=uigetfile(''*.tiff'');',...

'if pname~=0;X=imread([pname,fname]);',...

'X =rgb2gray(X);X=double(X);set(I1,''CData'',X);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x-dx,y-dy);',...

'Xq =interp2(x,y,Xp,x+dx,y+dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);end;']);%生成按钮控件,该控件用于选择图像%Callback 部分是计算程序,实时地计算显示失真结果

S1=uicontrol(gcf,'Units','N','Position',[0.7,0.1,0.03,0.4],...

'Style','slide','min',0,'max',0.6,'value',0.3,...

'SliderStep',[0.01,0.01],'TooltipString',['a=',num2str(a)],...'HorizontalAlignment','Left','Fontsize',10,'Callback',[...

'a =get(S1,''Value'');',...

'set(S1,''TooltipString'',[''a='',num2str(a)]);',...

'set(ti,''String'',[''参数a='',num2str(a)]);',...

'xp =a*x.*r+x*[K-abs(a)];yp=a*y.*r+y*[K-abs(a)];',...

'dx =xp-x;dy =yp-y;Xp =interp2(x,y,X,x-dx,y-dy);',...

'Xq =interp2(x,y,Xp,x+dx,y+dy);',...

'set(I2,''CData'',Xp);',...

'set(I3,''CData'',Xq);']);%生成滑动条控件,用于改变参数

%Callback 部分是计算程序,实时地计算显示失真结果

运动恢复:

I =imread('C:\Documentsand Settings\Administrator\桌面\4.1.01.tiff');imshow(I)

BW1=edge(I,'sobel');

BW2=edge(I,'canny');

imshow(BW1)

figure, imshow(BW2)


相关文章

  • 数字图像处理技术从基础到实战
  • 数字图像处理技术从基础到实战 本课程包含图像处理的基础知识以及案例应用,通过视频教程+在线交流的形式展现,力求为读者提供最便捷.直接的技术支持,解决学员在图像处理相关研发过程中遇到的最具体.实际的技术难点,争取与广大学员分享研发过程中所涉及 ...查看


  • 数字图像的退化与复原
  • 学院: 信息与电气工程学院 班级:电信112 姓名: 王丙全 学号: 2011081245 课程:数字图像的退化与复原 实验日期:年月日 成绩: 实验二.数字图像的退化与复原 一.实验目的 1.掌握数字图像的存取与显示方法. 2.理解数字图 ...查看


  • 聚类分析法
  • 应用统计学课程论文: 浅析聚类分析法在碎纸拼接复原中的 应用 系别:工程管理 学号:B11080111 姓名:贾晓婷 指导老师:张亚峰 浅析聚类分析法在碎纸拼接复原中的应用 系别:工程管理 学号:B11080111 姓名:贾晓婷 指导教师: ...查看


  • 数字图像处理的理论基础_孔大力
  • 第1期 ·12·山东水利职业学院院刊2013年3月 数字图像处理的理论基础 孔大力 徐 斌 (山东水利职业学院,山东日照276826) 摘要:本文简要概述了数字图像处理所研究的内容,对其中的几个重要过程:图像去噪.图像复原.图像增强的理论和 ...查看


  • 碎纸片的拼接复原
  • 碎纸片的拼接复原 摘 要 本文利用Manhattan距离,聚类分析,图像处理等方法解决了碎纸片的拼接复原问题.由于碎纸机产生的碎纸片是边缘规则且等大的矩形,此时碎纸片拼接方法就不能利用碎片边缘的尖角特征等基于边界几何特征的拼接方法,而要利用 ...查看


  • MATLAB图像处理的几个应用实例_王秋雨
  • 6 福建电脑2011年第11期 MATLAB 图像处理的几个应用实例 王秋雨 (河南大学计算机与信息工程学院河南开封475004) 要]:MATLAB 处理矩阵之类的问题具有明显优势,而数字图像以矩阵形式存储于计算机中,因 此MATLAB ...查看


  • 常用图像去模糊算法分析与对比
  • 2012-2013学年度第二学期 数字图像处理课程设计 题目: 常用图像去模糊算法分析与对比 院 系: 自动化学院 专 业:班 级: 控实1001班 姓 名: 朱延俊 学 号: U201014240 指导教师: 谭山 报告时间: 2013. ...查看


  • 基于改进的BFS算法的碎纸片拼接复原
  • 基于改进的BFS算法的碎纸片拼接复原 终期研究报告书 一.课题研究的主要进展和结果 图象拼接是一个日益流行的领域,已经成为照相绘图学.计算机视觉.图像处理和计算机图形学研究中的热点.图像拼接解决的问题一般式,通过对齐一系列空间重叠的图像,构 ...查看


  • 毕业论文-基于MATLAB的数字图像处理
  • 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务.数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术.数字 ...查看


热门内容