我需要找到图像所有内部边缘的坐标。我试图通过以下程序实现这一目标:
1
对网格进行重新采样会让我得到step 3
中获得的坐标作为边的坐标。 代码如下:
% input image
Ydim = 3;
Xdim = 3;
Zdim = 3;
% generate 3D mesh using a pixel spacing of 0.5
[xgv, ygv, zgv] = meshgrid(1:0.5:Xdim - 1, 1:0.5:Ydim - 1, 1:0.5:Zdim - 1);
% obtain coordinates of all internal vertices and edges
allCoords = [ygv(:), xgv(:), zgv(:)];
% Obtain only the coordinates of edges by keeping only two integers and one
% non-integer in each row
edgeCoords = allCoords;
edgeCoords((sum(mod(allCoords,1)~=0, 2))~=1, :) = [];
% re-sample 3D grid using a pixel spacing of 1
[columnsInImage, rowsInImage, pagesInImage] = meshgrid(1:Xdim - 1, 1:Ydim - 1, 1:Zdim - 1);
% plot points
plot3(edgeCoords(:,2), edgeCoords(:,1), edgeCoords(:,3), '.b', 'markersize', 20)
hold on;
grid on;
scatter3(edgeCoords(:,1), edgeCoords(:,2), edgeCoords(:,3));
我不完全确定上述5)中的假设以及整个程序。因此,我需要有人帮助我看看这个。我的假设是否正确?有没有更有效的方法来做到这一点?
最后,我希望能够比我在代码中更好地想象这一点。谢谢你的帮助!