matlab练习程序(图像放大/缩小,最邻近插值)

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))

转载于:https://www.cnblogs.com/tiandsp/archive/2012/03/08/2384973.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写MATLAB程序实现通过复制/抽取像素来放大/缩小图像的方如下: 1. 首先,加载需要放大/缩小图像。可以使用`imread`函数来加载图像。 ```matlab img = imread('input.jpg'); ``` 2. 接下来,定义需要放大/缩小的倍数,假设为`scale`。若想放大图像,`scale`值应大于1;若想缩小图像,`scale`值应小于1。 ```matlab scale = 2; % 放大2倍 ``` 3. 根据给定的缩放倍数,计算放大/缩小后的图像尺寸。若图像尺寸为`(M, N)`,则放大后的图像尺寸为`(scale*M, scale*N)`,缩小后的图像尺寸为`(M/scale, N/scale)`。 ```matlab [height, width, ~] = size(img); new_height = round(height * scale); new_width = round(width * scale); ``` 4. 根据计算得到的新尺寸,创建一个新的空白图像。 ```matlab new_img = uint8(zeros(new_height, new_width, 3)); ``` 5. 对于放大操作,将原图像中的像素复制到放大后的图像中。对于缩小操作,从原图像中抽取像素放入缩小后的图像中。使用双重循环遍历原图像的每个像素,并将其复制/抽取到放大/缩小后的图像对应的位置。 ```matlab for i=1:new_height for j=1:new_width orig_i = round(i / scale); orig_j = round(j / scale); new_img(i, j, :) = img(orig_i, orig_j, :); end end ``` 6. 最后,保存放大/缩小后的图像。 ```matlab imwrite(new_img, 'output.jpg'); ``` 通过以上步骤,便可以编写一个MATLAB程序实现通过复制/抽取像素来放大/缩小图像的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值