使用imageJ查找边数组

时间:2013-01-05 08:58:16

标签: java imagej edges

感谢imageJ库,我已经找到了图像的边缘。

现在,我想得到一个包含这些边缘的数组。

这里有一个关于它的主题,但我无法发表评论而且没有答案: Find Edges with ImageJ Programmatically

2 个答案:

答案 0 :(得分:2)

§29.3 Find Edges中所述,该命令使用Sobel operator。最终图像的每个点都是水平和垂直卷积的magnitude of the gradient。所选ImageProcessorget*Array()方法返回整个数组的副本;可以使用各种get*()方法访问数组的各个元素。

附录:你说,“我的目标是获得优势。我的问题不在于获得每个像素值。”

Edge detection不是trivial;它通常是一个多阶段的过程。数组的大小仅仅是应用first-order Sobel算子的初始结果。管道中的下一个stages,例如阈值,链接,细化,取决于你的目标。

答案 1 :(得分:0)

是的,我知道这是旧的,但这需要一个答案。以编程方式使用imageJ

 float edgePixels[][];
 ImagePlus imp = null;
 Opener op = new Opener();
 imp =  op.openImage("lib/EP07-J.jpg");
 ImageProcessor improc = imp.getProcessor().duplicate();

 improc.medianFilter();
 improc.findEdges();
 edgePixels = improc.getFloatArray();

恭喜,您现在拥有一个多维数组,表示边缘检测后的像素。