快捷搜索: 王者荣耀 脱发

图像几何变换之放大缩小(MATLAB)

几何变换之放大缩小

概念 1.缩小:从图像中,删除部分像素; 2. 放大:向图像中增加部分像素,增加像素的取值是根据周围相邻像素的值进行插值计算得到的。

用法

调用格式: B = imresize(A,m) B = imresize(A,m,method) B = imresize(A,[mrows ncols],method) B = imresize(…,method,h) 参数说明:

(1)返回的对象B的长宽是图像A的长宽的m倍。

    m大于1, 则放大图像; m小于1, 缩小图像。

(2)参数method指定的插值运算来改变图像的大小,三种选值:

nearest最近邻插值(默认值)
    bilinear双线性插值
    bicubic双三次插值(R2013a版本默认为这种算法,不同版本可能有不同的默认参数)

(3)numrows和numcols分别指定目标图像的高度和宽度。显而易见,由于这种格式允许图像缩放后长宽比例和源图像长宽比例不同,因此所产生的图像有可能发生畸变。

(4)B = imresize(…,method,h) 中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。

缩小示例代码1:

%缩小
I=imread(pout.tif)
k1=0.6;k2=0.72;
[m,n] = size(I);
M = round(m*k1);
N = round(n*k2);
for i=1:M
	for j=1:N
		x=round(i/k1);
		if x>m x=m;end
		y=round(j/k2);
		if y>n y=n;%防止图像大小溢出
		G(i,j)=I(x,y);
	end
end
figure(1);
subplot(121);
imshow(I);
subplot(122);
imshow(G);

缩小示例代码2:

I = imread(pout.tif);
H = imresize(I,[175 180]);
figure(1);
subplot(121);
imshow(I);
subplot(122);
imshow(H);

运行结果: 练习题1:关于图像缩小处理,下列说法正确的是( )

A、图像的缩小只能按比例进行 B、图像的缩小是从原始图像中选择合适的像素点,使图像缩小后可以尽量保持原有图像的概貌特征 C、利用基于等间隔采样的图像缩小方法对图像进行处理时,不需要计算出采样间隔 D、图像的缩小只能按不比例进行

正确答案: B

练习题2:关于图像放大处理,下列说法正确的是( ) A、图像的放大不会引起图像的畸变 B、图像的放大处理不需要对未知数据进行估计 C、当放大倍数比较大的时候,使用基于像素放大原理的图像放大方法不会导致马赛克现象 D、从物理意义上讲,图像的放大是图像缩小的逆操作

正确答案: D

练习题3:图像I经过 imresize(I,0.3)处理之后,是( )。 A、放大 B、缩小

正确答案: B

练习题4:假设原图I大小为256x256,新图G大小为128*128,请补充完整缩小操作的关键代码。

正确答案: x=round(i/0.5); if x>m x=m;end y=round(j/0.5); if y >n y=n;end G(x,y)=I(x,y) 练习题5:假设原图I大小为256x256,新图G大小为512*512,请补充完整放大操作的关键代码。

正确答案: x=round(i/2); if x>m x=m;end y=round(i/2); if y >n y=n;end G(x,y)=I(x,y)

练习题6:为了产生一幅数字图像,需要把连续的感知数据转换为数字形式。 这包括两种处理:采样和量化。

经验分享 程序员 微信小程序 职场和发展