作业帮 > 综合 > 作业

用MATLAB自带的函数对图像进行旋转、平移的问题

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/29 09:23:13
用MATLAB自带的函数对图像进行旋转、平移的问题
代码如下:
delta_x=5;%x方向平移量
delta_y=5;%y方向平移量
scale_x=0.5;%x方向缩放倍数
scale_y=2;%y方向缩放倍数
transa=maketform('affine',[scale_x 0 delta_x;0 scale_y delta_y;0 0 1]);%图像缩放和平移
WIa=imtransform(WI,transa);%WIa为遭遇RST几何攻击后的图像
运行后报错说?Error using ==> maketform>validate_matrix
The final column of A must consist of zeroes,except for a one in the last row.
我看了下我的maketform里面,
% T = MAKETFORM('affine',A) builds a TFORM struct for an N-dimensional
% affine transformation.A is a nonsingular real (N+1)-by-(N+1) or
% (N+1)-by-N matrix.If A is (N+1)-by-(N+1),then the last column
% of A must be [zeros(N,1); 1].Otherwise,A is augmented automatically
% such that its last column is [zeros(N,1); 1].
貌似没有定义错A啊,最后一列是0 0 1,求指教是哪里的问题~
标题打错了,是对图像进行平移和缩放~
用MATLAB自带的函数对图像进行旋转、平移的问题
最后一行,写成这样和程序原意相不相符
transa=maketform('affine',[scale_x delta_x 0; scale_y delta_y 0;0 0 1 ]);
再问: 啊,有道理,最后一列除最后一行是1其它应该是0,但是我之前百度如何平移和缩放,貌似scale_x 0 delta_x;0 scale_y delta_y这样排列的,是我查的有问题么?还是就应该是你给的scale_x delta_x 0; scale_y delta_y 0这样的格式呢?
再答: 不清楚。。但是这样运行以后没报错,你用个矩阵试试吧
再问: 嗯~我用这个单独进行缩放,再用translate来进行平移好了,谢谢啦~不然我要钻牛角尖了~