matlab将二值图像与原图重叠_matlab读入两张RGB图像,如何实现平移使两张图片重叠...

展开全部

1=round(i*cos(a) - j*sin(a)+ n * sin(a))+1;

j1=round(i*sin(a) + j*cos(a));

这两个时会32313133353236313431303231363533e58685e5aeb931333264626634出现零值,那么,在MATLAB中索引F矩阵就是错误的了,你可以设置断点,然后单步运行一下看看在哪一步出现的零值,你根据旋转矩阵的计算应该是没有问题的,关键是灰度映射时可能出现零位置,最好在其中加入判断的语句,j1计算会出现0值。

你这样写,是沿坐标轴原点旋转,你说的我原来写的那个是沿固定点旋转,实现都是使用旋转矩阵,沿固定点只是先平移到原点,然后再平移回去,你可以看看,具体的我已经记不太清楚了,呵呵,已经不做图像了。

我写的那个的程序:

function im_final = imrotate_my(im_path,theta,options)

% IM_ROTATE 两维图像旋转以及双线性灰度插值算法的实现

% im_path 图像存储路径

% theta 旋转角度,正数表示顺时针旋转

% options 可以为circular(超出范围部分,按照周期形式扩展)

% crop(超出部分置零,即全黑)

% Ref. 章毓晋. 图像工程(上册)——图像处理. 清华大学出版社

% Author: lskyp Date: 2009.08.12

% Version: V1.2 Original Version: V1.0 im_bilinear.m;im_rotate.m

% with the parameter options added

error(nargchk(2,3,nargin,'string'))

if nargin == 2

options = 'circular';

else

if ~ (strcmp(options,'circular') || strcmp(options,'crop'))

error('错误的输出方法')

end

end

im_init = imread(im_path);

im_init = double(im_ini

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值