关于MATLAB图像平移处理的问题,请各位大侠救急!
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/11/01 07:39:37
关于MATLAB图像平移处理的问题,请各位大侠救急!
平移函数是这样的
%图像平移变换
I = imread('iron.jpg');
J = double(I);
H = size(I);
I_moveresult = zeros(H);%I_moveresult = zeros(H)+255后背景变成了白色的
x_move = 50;
y_move = 50;
I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)) = J(1:H(1)-x_move,1:H(2)-x_move,1:H(3));
figure,imshow(I);
figure,imshow(mat2gray(I_moveresult));
I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)) = J(1:H(1)-x_move,1:H(2)-x_move,1:讲解的越详细越好,
平移函数是这样的
%图像平移变换
I = imread('iron.jpg');
J = double(I);
H = size(I);
I_moveresult = zeros(H);%I_moveresult = zeros(H)+255后背景变成了白色的
x_move = 50;
y_move = 50;
I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)) = J(1:H(1)-x_move,1:H(2)-x_move,1:H(3));
figure,imshow(I);
figure,imshow(mat2gray(I_moveresult));
I_moveresult(x_move+1:H(1),y_move+1:H(2),1:H(3)) = J(1:H(1)-x_move,1:H(2)-x_move,1:讲解的越详细越好,
就是把J中左上角,坐标从1到H(1)-x_move行,1到H(2)-x_move列的数据赋给I_moveresult右下角,从x_move+1到H(1)行,y_move+1到H(2)列,相当于往右下角移动了(50,50),H(1),H(2)分辨代表了图像的宽度和长度,可以自己带个特定数据试试就明白了
再问: 那1:H(3)代表什么意思?一定要写这句语句?
再答: 因为你读入的是一个jpg,矩阵是三维的,1:H(3)就是你移动的那些点上的z的值,因为是平移,这些z值肯定不用变了,直接赋过去,只是横纵坐标发生了变化,用:代替1:H(3)应该也可以
再问: 那1:H(3)代表什么意思?一定要写这句语句?
再答: 因为你读入的是一个jpg,矩阵是三维的,1:H(3)就是你移动的那些点上的z的值,因为是平移,这些z值肯定不用变了,直接赋过去,只是横纵坐标发生了变化,用:代替1:H(3)应该也可以