平移过去和图像边界

时间:2014-04-07 08:40:48

标签: matlab

控制交互式平移工具是否可以超出图像边界的属性是什么?另外,如何设置允许的平移限制?

一旦手动设置了轴限制,Matlab似乎不允许平移超出图像边界。例如,如果您显示默认图像

figure;
image;

然后你可以超越图像的边界。但是,如果那时您尝试手动设置轴限制:

axis( [ 20 50 20 50 ] )

你会看到平移现在仅限于图像的原始边界。

如何控制此行为?

1 个答案:

答案 0 :(得分:1)

我唯一能够找到的启发式方法是,如果任何情节绑定超出内容范围,您可以无限制地平移。但是,当情节界限严格限制在内容范围内时,平移就会受到限制。尝试在示例中axis([-1 30 -1 30])之后平移 - 当您平移图像使其完全填满轴时,您将无法再超出图像边界。

我没有找到任何方法来覆盖此行为,但在某些情况下,您可以通过巧妙地扩展轴限制来绕过它。例如:

figure; image; axis('tight') % # Cannot pan in any direction
xlim(xlim() + eps(xlim()).*[-1 1]) % # Subtly extend xlimit beyond content bounds
% # Can now pan in all directions

在其他情况下,您可以绘制两个小点以将内容边界扩展到您希望限制的位置:

figure; image; axis('tight')
line([-100 -100;nan nan;100 100],[-100 -100;nan nan;100 100], 'linewidth', eps(0), 'color', 'w')
% # Can now pan from -100 to 100 on both axes