收藏 分销(赏)

设计性实验 图像信号的抽取与插值.doc

上传人:pc****0 文档编号:6709641 上传时间:2024-12-20 格式:DOC 页数:7 大小:514.50KB 下载积分:10 金币
下载 相关 举报
设计性实验 图像信号的抽取与插值.doc_第1页
第1页 / 共7页
设计性实验 图像信号的抽取与插值.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
实验报告 实验7 设计性实验 图像信号的抽取与插值 专业 电子信息科学与技术 班级 电子10-1班 学生 学号 指导教师 完成时间 2013 年 01 月 12 日 实验7设计性实验 图像信号的抽取与插值 一、实验目的 1、熟悉图像处理常用函数和方法; 2、培养通过查阅文献解决问题的能力。 二、实验要求 给出一个二维灰度图像, 1、编程实现对该图像的任意比例的放大及缩小; 2、编程实现对该图像的任意角度旋转; 3、解决缩放及旋转时产生的锯齿等不图像不平滑问题。 三、实验提示 1、利用上采样、下采样等方法对信号进行缩放变换; 2、观察对图像进行缩放或旋转时,图像是否会出现锯齿等不平滑现象? 3、分析产生锯齿现象的原因; 查阅文献了解解决锯齿现象的方法。(例如平滑滤波、双线性插值、双立方插值等处理) 操作过程如下: 实现图像的放大: (算法) 为了实现图像的放大,首先将原图按照x1=a*x,y1=b*x将原图的像素点(x,y)映射为新的画布上的(x1,y1)点,如上图左一到左二。然后,以行或列为一个处理单位,采用一种图像插值算法,在两红点之间的空白点插入一些值,使图像充满整个画布。具体顺序如上图所示,先按行插值,再按列插值。 本实验采用的插值算法要达到的目标是,使插入点的斜率与原图保持一致 具体插值方法如下(以宽度放大三倍为例): 取出一行像素点,使时域坐标变为原来的三倍。假设两相邻像素点坐标分别为a[n]和a[m],则在a[n+1]、a[n+2]、a[n+i]…a[m-1]处填入的灰度值为: 图① 原图像的一行像素点 图② 使时域坐标变为原来的三倍 插入的点 图③ 在两点间插值,使新插入的点与原先的两点以同一斜率变化。 实现图像的缩小: 若要实现缩小,则同样按照x1=ax,y1=by的坐标转换关系将原画布上的点映射到新画布上,那么新画布上的一点将成为原画布上多点的映射,此时,新画布的点只需取其中一个映射点即可。过程如下: 运行示例:(以行列均放大三倍为例) ①放大前的图像: ②将图像的行列上的时域变为原来的三倍。 ③行插值: ④列插值后(完成): 颗粒(锯齿)不明显 使用线性插值法 假如使用临近插值法,将得到如下图片,可见,在图中眼部的位置,临近插值法的锯齿更为明显,而使用本实验插值算法得到的图像边缘更为平滑。 颗粒(锯齿)明显 使用临近插值法 图像缩小: (以行列均缩小为1/2为例) 缩小 clear;clf; pic=imread('image.jpg'); k=2; %¾â³ÝÏû³ýϵÊý [l,w]=size(pic); pic(l+1,1)=0; pic(1,w+1)=0; l1=2*l; w1=2*w; i=1:l; x=ceil(i*l1/l); ii=1:w; y=ceil(ii*w1/w); for i=1:l for ii=1:w a(ceil(i*l1/l),ceil(ii*w1/w))=pic(i,ii); end; end; for i=1:l for ii=1:w-1 n=(y(ii)); m=(y(ii+1)); for iii=1:m-n-1 a(x(i),n+iii)=(a(x(i),m)-a(x(i),n))*iii/(m-n)+a(x(i),n); end; end; end; for i=1:w1 for ii=1:l-1 n=(x(ii)); m=(x(ii+1)); for iii=1:m-n-1 a(n+iii,i)=(a(m,i)-a(n,i))*iii/(m-n)+a(n,i); end; end; end; imshow(a); 实现图片的旋转:(算法) 根据坐标变换公式,可将旋转后坐标(x1,y1)映射到原坐标(x,y) x=x1*cos(b)-y1*sin(b) y=x1*sin(b)+y1*cos(b) 由于求出来的原坐标不为整数,故将其取整,若求得(x,y)坐标范围处于有效范围,即0<x≤l,0<y≤w,l为原图长度,w为原图宽度,则(x1,y1)的灰度取为(x,y)的灰度值。 原图(x,y) 旋转后(x1,y1) 如上图所示,从(x1,y1)出发回到原图寻找对应的(x,y)坐标,如果(x1,y1)对应的点(x,y)在原画布内,则该点的灰度值取为最临近的整数点的灰度值,如图中黑线所示;否则(x1,y1)取为空白点,如途中红线所示。 旋转后的图片 旋转后的图片产生了锯齿 程序清单: clear;clf; pic=imread('image1.jpg'); [l,w]=size(pic); b=30; xx=[0,0,l,l]; yy=[0,w,w,0]; b=b*2*pi/360; x0=min(xx.*cos(b)-yy.*sin(b)); y0=min(xx.*sin(b)+yy.*cos(b)); x1=max(xx.*cos(b)-yy.*sin(b)); y1=max(xx.*sin(b)+yy.*cos(b)); for x=1:fix(x1-x0)+1 for y=1:fix(y1-y0)+1 a(x,y)=uint8(205); end; end; [l1,w1]=size(a); for x=1:l1 for y=1:w1 xt=floor(+x*cos(b)-y*sin(b)+l*sin(b)*sin(b)); yt=floor(+x*sin(b)+y*cos(b)-l*sin(b)*cos(b)); if (xt>0 && xt<=l && yt>0 && yt<=w) a(x,y)=pic(xt,yt); end; end; end; imshow(a);
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服