史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

空间的转换:处理不可逆转的情况下

写之前如何imtransform使用逆映射计算输入空间位置对应于每个输出像素。我还写imtransform如何使用向前映射来确定输出空间的输出图像的位置。

但不可逆转的映射呢?例如,函数cp2tform可以产生不可逆的几种类型的空间转换。它可以推断出一个多项式变换从一组控制点:

pairs1 = [1 1;5 21;17个40;28 1;32 20;45 40;72年1;77 20;90年40];pairs2 = [1 1; 1 21; 1 40; 20 1; 20 20; 20 40; 40 1; 40 20; 40 40]; t_poly = cp2tform(pairs1, pairs2,多项式的2);我=棋盘(10,2);J = imtransform(我t_poly);次要情节(1、2、1)imshow (I)、标题(“棋盘”次要情节(1、2、2)imshow (J)、标题(多项式变换的)

但多项式变换不可逆的。自imtransform使用逆映射,所以必须至少逆变换,cp2tform产生一个tform结构使用多项式变换的逆方向,和结构包含了前进的方向。

t_poly
t_poly = ndims_in: 2 ndims_out: 2 forward_fcn: [] inverse_fcn: @inv_polynomial tdata: [6 x2双)

如果没有提出转换可用,那么如何findbounds工作吗?也就是说,它是如何找到图像的边界矩形在输出空间?

它通过使用一个搜索。具体地说,对于一个输入空间的位置u,它使用fminsearch发现输出空间的位置x最小化:

这是有可能的fminsearch可能无法收敛,在这种情况下findbounds发出一个警告消息和“猜测”,输出图像的边界矩形是一样的输入图像的边界矩形。

如果你感兴趣的细节,看看find_bounds_using_search子函数内部findbounds.m




使用MATLAB®7.2发表

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。