matlab图像双线性插值,最近邻插值与几何变换
更新时间:2023-10-16 20:34:01 阅读量: 综合文库 文档下载
实验二 图像几何变换与插值
一、实验目的 巩固图像处理编程的步骤格式,理解数据插值及图像几何变换的原理,掌握图像几何变换的实现方法。 二、实验内容
1、 理解反向变换的实现思路
2、 图像缩放及插值 Matlab取整命令:floor, ceil, round
分别实验最近邻插值和双线性插值
f=imread('lena.bmp'); beishu=0.5; [row,col]=size(f); r1=round(row*beishu); c1=round(col*beishu); b=zeros(r1,c1); for i=1:r1 for j=1:c1
i1=round(i/beishu); j1=round(j/beishu); if i1<1 i1=1; end if j1<1 j1=1; end
b(i,j)=f(i1,j1); end end b=uint8(b); figure; imshow(f); figure imshow(b);
3、 图像旋转及插值
以图像中心为轴实现任意角度(逆时针为正)的图像旋转,分别实验两种插值算法
f=imread('lena.bmp');
B=imrotate(f,45,'nearest','crop'); C=imrotate(f,45,'bilinear','crop'); figure; subplot(121); imshow(f); title('原图像'); subplot(122); imshow(B);
title('最近邻插值'); figure; subplot(121); imshow(f); title('原图像');
subplot(122); imshow(C);
title('双线性插值');
原图像最近邻插值处理
原图像双线性插值处理
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matlab练习程序(图像放大/缩小,最邻近插值) ccc cl;
w=0.6; %放大或缩小的宽度 h=1.4; %放大或缩小的高度 img=imread('Corner.png'); imshow(img); [m n]=size(img);
imgn=zeros(h*m,w*n);
rot=[h 0 0;0 w 0;0 0 1]; %变换矩阵x=h*u,y=w*v inv_rot=inv(rot);
for x=1:h*m for y=1:w*n
pix=[x y 1]*inv_rot;
imgn(x,y)=img(round(pix(1)),round(pix(2))); end
end
figure,imshow(uint8(imgn))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matlab练习程序(图像放大/缩小,双线性插值) ccc
m=1.8; %放大或缩小的高度 n=2.3; %放大或缩小的宽度 img=imread('lena.jpg'); imshow(img); [h w]=size(img);
imgn=zeros(h*m,w*n);
rot=[m 0 0;0 n 0;0 0 1]; %变换矩阵
for i=1:h*m for j=1:w*n
pix=[i j 1]/rot;
float_Y=pix(1)-floor(pix(1)); float_X=pix(2)-floor(pix(2));
if pix(1) < 1 %边界处理 pix(1) = 1; end
if pix(1) > h pix(1) = h; end
if pix(2) < 1 pix(2) =1; end
if pix(2) > w pix(2) =w; end
pix_up_left=[floor(pix(1)) floor(pix(2))]; %四个相邻的点 pix_up_right=[floor(pix(1)) ceil(pix(2))]; pix_down_left=[ceil(pix(1)) floor(pix(2))];
pix_down_right=[ceil(pix(1)) ceil(pix(2))];
value_up_left=(1-float_X)*(1-float_Y); %计算临近四个点的权重 value_up_right=float_X*(1-float_Y); value_down_left=(1-float_X)*float_Y; value_down_right=float_X*float_Y;
%按权重进行双线性插值 imgn(i,j)=value_up_left*img(pix_up_left(1),pix_up_left(2))+ ...
value_up_right*img(pix_up_right(1),pix_up_right(2))+ ... value_down_left*img(pix_down_left(1),pix_down_left(2))+ ...
value_down_right*img(pix_down_right(1),pix_down_right(2)); end end
figure,imshow(uint8(imgn))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matlab练习程序(图像旋转,最邻近插值) ccc cl;
H=1; %索引pix中第一个元素,即高度 W=2; %索引pix中第二个元素,即宽度
jiaodu=45; %要旋转的角度,旋转方向为顺时针
img=imread('Corner.png'); %这里v为原图像的高度,u为原图像的宽度
imshow(img); %这里y为变换后图像的高度,x为变换后图像的宽度 [v u]=size(img);
theta=jiaodu/180*pi;
rot=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1]; inv_rot=inv(rot);
pix1=[1 1 1]*rot; %变换后图像左上点的坐标 pix2=[1 u 1]*rot; %变换后图像右上点的坐标 pix3=[v 1 1]*rot; %变换后图像左下点的坐标 pix4=[v u 1]*rot; %变换后图像右下点的坐标
height=round(max([abs(pix1(H)-pix4(H))+0.5 abs(pix2(H)-pix3(H))+0.5])); %变换后图像的高度 width=round(max([abs(pix1(W)-pix4(W))+0.5 abs(pix2(W)-pix3(W))+0.5])); %变换后图像的宽度 imgn=zeros(height,width);
delta_y=abs(min([pix1(H) pix2(H) pix3(H) pix4(H)])); %取得y方向的负轴超出的偏移量 delta_x=abs(min([pix1(W) pix2(W) pix3(W) pix4(W)])); %取得x方向的负轴超出的偏移量
for y=1-delta_y:height-delta_y for x=1-delta_x:width-delta_x
pix=[y x 1]*inv_rot; %用变换后图像的点的坐标去寻找原图像点的坐标, %否则有些变换后的图像的像素点无法完全填充 if pix(H)>=0.5 && pix(W)>=0.5 && pix(H)<=v && pix(W)<=u imgn(y+delta_y,x+delta_x)=img(round(pix(H)),round(pix(W))); end end end
figure,imshow(uint8(imgn))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matlab练习程序(图像旋转,双线性插值) ccc
jiaodu=45; %要旋转的角度,旋转方向为顺时针 img=imread('lena.jpg'); %这里v为原图像的高度,u为原图像的宽度
imshow(img); %这里y为变换后图像的高度,x为变换后图像的宽度 [h w]=size(img);
theta=jiaodu/180*pi;
rot=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1];
pix1=[1 1 1]*rot; %变换后图像左上点的坐标 pix2=[1 w 1]*rot; %变换后图像右上点的坐标 pix3=[h 1 1]*rot; %变换后图像左下点的坐标 pix4=[h w 1]*rot; %变换后图像右下点的坐标
height=round(max([abs(pix1(1)-pix4(1))+0.5 abs(pix2(1)-pix3(1))+0.5])); %变换后图像的高度 width=round(max([abs(pix1(2)-pix4(2))+0.5 abs(pix2(2)-pix3(2))+0.5])); %变换后图像的宽度 imgn=zeros(height,width);
delta_y=abs(min([pix1(1) pix2(1) pix3(1) pix4(1)])); %取得y方向的负轴超出的偏移量 delta_x=abs(min([pix1(2) pix2(2) pix3(2) pix4(2)])); %取得x方向的负轴超出的偏移量
for i=1-delta_y:height-delta_y for j=1-delta_x:width-delta_x
pix=[i j 1]/rot; %用变换后图像的点的坐标去寻找原图像点的坐标, %否则有些变换后的图像的像素点无法完全填充 float_Y=pix(1)-floor(pix(1)); float_X=pix(2)-floor(pix(2));
if pix(1)>=1 && pix(2)>=1 && pix(1) <= h && pix(2) <= w
pix_up_left=[floor(pix(1)) floor(pix(2))]; %四个相邻的点 pix_up_right=[floor(pix(1)) ceil(pix(2))]; pix_down_left=[ceil(pix(1)) floor(pix(2))]; pix_down_right=[ceil(pix(1)) ceil(pix(2))];
value_up_left=(1-float_X)*(1-float_Y); %计算临近四个点的权重 value_up_right=float_X*(1-float_Y); value_down_left=(1-float_X)*float_Y; value_down_right=float_X*float_Y;
imgn(i+delta_y,j+delta_x)=value_up_left*img(pix_up_left(1),pix_up_left(2))+ ...
value_up_right*img(pix_up_right(1),pix_up_right(2))+ ... value_down_left*img(pix_down_left(1),pix_down_left(2))+ ... value_down_right*img(pix_down_right(1),pix_down_right(2)); end end end
figure,imshow(uint8(imgn))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
实验一 Matlab图像基本操作
一、实验目的 熟悉利用Matlab进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。 二、实验内容
1、 图像读写与显示
重点函数:imread, imwrite, imshow 2、 彩色图像灰度化
计算公式:Gray = R*0.299 + G*0.587 + B*0.114 3、 图像马赛克
局部平均,改变窗口大小比较处理结果,如取2×2、4×4或更大尺寸的窗口 4、 图像平移
分别完成图像水平方向、竖直方向和两个方向的平移
三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
实验二 图像几何变换与插值
一、实验目的 巩固图像处理编程的步骤格式,理解数据插值及图像几何变换的原理,掌握图像几何变换的实现方法。 二、实验内容
4、 理解反向变换的实现思路 5、 图像缩放及插值
Matlab取整命令:floor, ceil, round 分别实验最近邻插值和双线性插值 6、 图像旋转及插值
以图像中心为轴实现任意角度(逆时针为正)的图像旋转,分别实验两种插值算法 三、实验要求
1、编写代码,完成各项实验内容
2、总结实验中遇到问题及解决方案,书写实验报告
正在阅读:
农村经济发展与农村金融变革问题研究06-09
让班级春色满园02-20
浅谈如何增强德育课的趣味性05-07
河南省专升本《管理学》真题(09—13)集锦及分析05-07
戴维南定理及其应用 实验报告书03-27
调查报告评语09-22
110KV变--级加压站35KV变35KV线路工程冬季建筑施工方案10-05
纯化水系统确认方案04-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 插值
- 近邻
- 线性
- 几何
- 变换
- 图像
- matlab
- 慧鱼 - 图文
- 大学物理复习题修改 - 图文
- 中国液压设备市场格局调查与发展商机研究报告(2015-2019)
- 《计量经济学》谢识予分章练习试题
- 中医医术确有专长人员(多年实践人员)申报材料汇总
- 第七小组对沙县小吃的市场调查报告 - 图文
- 半导体物理学基础知识 - 图文
- 股份有限公司子公司考核方案
- 2015年公需科目:专业技术人员积极心理健康的培养与训练考试试卷
- 生物化学考试题目 - 图文
- 冀教小学信息技术第3册全册教案
- 《清明上河图》全图欣赏
- 基础工程施工复习题 - 图文
- 概率与统计(教师版)
- 过氧化物酶活性的测定POD
- 数据库试题 v30
- 个人理财精讲班第2讲作业
- 李钟琴:蒋经国的功过一百年
- 远景光灯自动调节水路两栖遥控小车 - 图文
- 妇科体检操作规程