控制交互式平移工具是否可以超出图像边界的属性是什么?另外,如何设置允许的平移限制?
一旦手动设置了轴限制,Matlab似乎不允许平移超出图像边界。例如,如果您显示默认图像
figure;
image;
然后你可以超越图像的边界。但是,如果那时您尝试手动设置轴限制:
axis( [ 20 50 20 50 ] )
你会看到平移现在仅限于图像的原始边界。
如何控制此行为?
答案 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