MATLAB图像缩放笔记
函数:实现图像矩阵比例缩放
Matlab图像平移、旋转、缩放、镜像_Fighting!-程序员宅基地_matlab图像平移
其中第三条有误:
x = uint8(temp(1, 1));
y = uint8(temp(2, 1));
转换为uint8时,小于0.5的会被舍去,导致缩小后坐标小于0.5的都变成0,出现黑边和像素损失。
需将缩小后的坐标x,y都加上0.49(可按需调整):
function res=matResize(b,timesX,timesY)
[R, C] = size(b); %获取图像大小
res = zeros(timesX * R, timesY * C); %构造结果矩阵。每个像素点默认初始化为0(黑色)
tras = [1/timesX 0 0; 0 1/timesY 0; 0 0 1]; %缩放的变换矩阵
for i = 1 : timesX * R
for j = 1 : timesY * C
temp = tras * [j; i; 1];
x = uint8(temp(1, 1) + 0.49);
y = uint8(temp(2, 1) + 0.49);
res(i, j) = b(y, x);
end
end
end
用户评论