0

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

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

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

4

2 回答 2

2

§29.3 Find Edges中所述,该命令使用Sobel 运算符。最终图像的每个点都是水平和垂直卷积的梯度大小。整个数组的副本由 selected 的get*Array()方法返回ImageProcessor;可以使用各种get*()方法访问数组的各个元素。

附录:你说,“我的目标是得到边缘。我的问题是没有得到每个像素值。”

边缘检测非易事;它通常是一个多阶段的过程。幅值数组只是应用一阶Sobel 算子的初始结果管道中的下一个阶段,例如阈值、链接、细化,取决于您的目标。

于 2013-01-05T10:06:51.197 回答
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();

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

于 2013-04-23T22:09:00.793 回答