如何区分图像中的两条线

时间:2017-02-14 22:12:27

标签: java math image-processing machine-learning

我有两种不同类型的图像,如下图所示。

图片1 Image 1

图片2 Image 2

我正在使用Java中的机器学习(OpenCV,ImageJ和Weka)来解决分类问题。我感兴趣的区域标有红色框。从图像中可以看出,视觉上两个感兴趣的区域都是不同的。我试图找到一种方法,使用它可以在语法上确保两者都不同。我正在尝试从图像中检索数据,以便对训练集进行分类。图像1为负,图像2为正。我有1000张不同的图像,看起来像这些,但它们并不完全相同。

我有三条线的坐标点。我尝试使用平均值,标准偏差,R平方,绿线误差平方和值,但结果不一致,这使得机器学习结果不一致。

我想知道是否存在一致的参数/ s,并且可以给我一个数值来区分两个图像。我想知道是否有一种解决这个问题的数学方法。任何帮助表示赞赏。

编辑: 两幅图像的大小均为496 * 1024。不,行可以是任何长度

2 个答案:

答案 0 :(得分:1)

您可以计算投影轮廓,它可以在x方向或y方向上对前景像素求和。优选地,您在绿线的x方向上创建投影轮廓,因此对于绿线的每个x位置,您计算y方向上的前景像素的数量。

因此,您可以创建直方图H =(h_1,...,h_i,...,h_width),其中h_i表示绿线位置i的y方向上的前景像素数。在图像2的情况下,您应该在H中看到两个峰值,表示绿线的下降。

答案 1 :(得分:0)

您可以计算3种颜色中每种颜色的像素数。它应该提供线长度的良好近似值。然后比较它们。