我使用的是 MATLAB 2014b,因此该函数的strel
行为方式与较新版本[1]略有不同。在任何情况下,我都会disk
通过 8 个(实际上是 10 个)线性结构元素的近似值来生成一个成形的结构元素。
我想可视化这些线性结构元素,例如在子图中。不幸的是,在使用 MATLAB 这么多年之后,我仍然在理解如何从绘图中获得我想要的东西方面遇到很多问题。在这种情况下,我只能用“可比较”的比例来可视化它们,这样人们就可以注意到大小和方向的差异。(注意:出于打印原因,我使用imcomplement
的是在白色背景上获得黑线,而不是相反。)
最小的代码是这样的:
se = strel('disk', 300, 8);
seq = getsequence(se);
for k = 1:length(seq)
subplot(5,2,k);
imshow(imcomplement(seq(k).getnhood));
axis equal
end
如您所见,它会导致次优的子图:
总而言之,问题是:是否有可能获得一个可视化(一个子图或 10 个不同的图),其中 strels 具有大致相同的比例,并且它们足够可见,以便读者可以了解这是如何分解有效吗?
[1]在 MATLAB 2014b 中,要获取结构元素的邻域,您必须使用该方法getnhood
,而在较新的版本中,您只需访问该字段Neighborhood
。