我需要把螺栓,螺母和垫圈从图像中分类,
但我不知道如何从图像中检测出这些物体。

(这是图像的一部分)
我将每个颜色(使用java.awt.Color)值从图像复制到2D数组,
但我不知道我和这事有什么关系。
如果我想对它们进行分类,程序至少必须识别出哪一部分不是背景。
java有这个库吗?
发布于 2017-11-14 15:52:53
要查看图像中有一个对象,您需要确定该对象的边缘在哪里。如果你看一下图像,你会发现背景的颜色和每个物体边缘的颜色有很大的不同。
您可以让您的程序在颜色数据中读取,就像您所做的那样,每当程序注意到颜色发生了足够大的变化时,程序就会突出显示这一点。这将通过对颜色数据应用sobel滤波器来完成。
这样做应该突出显示对象的边缘。从这里开始,您可以尝试分析封闭区域的大小或这些边缘的特征,以确定突出显示的对象。
这里是一个链接,被问及如何应用有一些好答案的sobel过滤器。
虽然像OpenCV这样的库确实有sobel滤波和图像检测,但是自己实现sobel过滤器并不需要太多的代码。我相信这也是一个更简单的解决办法。安装和学习OpenCV可能需要更多的时间,而不仅仅是应用您自己的sobel过滤器。
https://stackoverflow.com/questions/47289539
复制相似问题