感谢 imageJ 库,我已经找到了图像的边缘。
现在,我想要一个包含这些边的数组。
这里有一个关于它的话题,但我无法发表评论,也没有答案: Find Edges with ImageJ Programmatically
感谢 imageJ 库,我已经找到了图像的边缘。
现在,我想要一个包含这些边的数组。
这里有一个关于它的话题,但我无法发表评论,也没有答案: Find Edges with ImageJ Programmatically
如§29.3 Find Edges中所述,该命令使用Sobel 运算符。最终图像的每个点都是水平和垂直卷积的梯度大小。整个数组的副本由 selected 的get*Array()
方法返回ImageProcessor
;可以使用各种get*()
方法访问数组的各个元素。
附录:你说,“我的目标是得到边缘。我的问题是没有得到每个像素值。”
边缘检测并非易事;它通常是一个多阶段的过程。幅值数组只是应用一阶Sobel 算子的初始结果管道中的下一个阶段,例如阈值、链接、细化,取决于您的目标。
是的,我知道这很旧,但这需要一个答案。以编程方式使用 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();
恭喜,您现在拥有一个表示边缘检测后像素的多维数组。