图像下采样

首先图像下采样
两种方式:
方法一,for循环隔行隔列循环遍历每一个像素点

%读入图像进行下采样
%两种方法用时只需将对应方法注释掉其中一个即可
clear all;
close all;
clc;
img = imread('F:\MATLAB2017b\AMOutputResults\lena.jpg');
% n为下采样倍数
n = 2;
img = rgb2gray(img);
[h w] = size(img);
L =1;
R = 1;
%对图像进行下采样
tic;
img_down = zeros(256,256);

% %方法一循环遍历每一个像素点,j为行,i表示列
% for j = 1:n:h
%     for i = 1:n:w
%         img_down(L, R) = img(j,i);
%         R = R+1;
%     end
%     L = L+1;
%     R = 1;
% end
toc;
%%%%%%%%%%%%%%%%%%%%%%%%%
%tic;
%%方法二矩阵隔行隔列赋值
%img_down = img(1:n:512,1:n:512);
%toc;


imshowpair(img,(uint8(img_down)),'montage');
title('512*512                                      256*256');
      

方法二,矩阵隔行隔列复制
其实道理也是一样的不过代码更短一些,在程序中间加了tic,toc来计时间,
发现方法一:时间已过 0.002278 秒。方法二大概:时间已过 0.000293 秒。。。
第二种方法比第一种for循环快了将近10倍。可见在大型图片下采样时还是尽量避免for嵌套循环,转而用矩阵向量的计算方式,这样会省不少时间 。

效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值