我试图在图像堆栈中找到一些对象的外壳。它们是细胞的显微镜图像。我正在使用 scipy 的 ConvexHull 来执行此操作。图像堆栈的尺寸为 46 x 512 x 512。我已将其转换为二进制数组。
我试过了
imhull = ConvexHull(imbinary)
但收到此错误消息:
ValueError: Buffer has wrong number of dimensions (expected 2, got 3)
因此,我决定遍历堆栈中的 46 个图像中的每一个,然后查看是否可以合并输出。
imhull = []
from scipy.spatial import ConvexHull
for i in np.nditer(imbinary):
imhull[i] = ConvexHull(imbinary[i])
但是,这给出了错误消息:
QhullError: QH6214 qhull input error: not enough points(512) to construct initial simplex (need 513)
While executing: | qhull i Qt Qx
Options selected for Qhull 2015.2.r 2016/01/18:
run-id 1322522047 incidence Qtriangulate Qxact-merge _zero-centrum
Q3-no-merge-vertices-dim-high
我应该如何解决这个问题?
我也在寻找一些关于这种方法是否合适的建议(即组合单个图像是否会给出正确的 3d 外壳?)或者如果不是,我可以找到图像中对象边界的一些替代方法?
谢谢你。