Opencv中的叶脉提取并以ml表示

时间:2013-11-30 14:59:24

标签: opencv machine-learning feature-extraction

我想提取叶脉,并在机器学习过程中使用它们,但我不知道如何做正确。

我尝试过sobel并取得了不错的成绩。

代码:

  Imgproc.GaussianBlur(image, image, new Size(3, 3), 0, 0);
  Imgproc.cvtColor(image, image, Imgproc.COLOR_BGR2GRAY);      
  Mat Sx = new Mat(); Mat Sy = new Mat();
  Mat absSx = new Mat(); Mat absSy = new Mat();
  Imgproc.Sobel(image, Sx, CvType.CV_16S, 1, 0, 3, 1, 0, Imgproc.BORDER_DEFAULT);
  Core.convertScaleAbs(Sx, absSx);
  Imgproc.Sobel(image, Sy, CvType.CV_16S, 0, 1, 3, 1, 0, Imgproc.BORDER_DEFAULT);
  Core.convertScaleAbs(Sy, absSy);
  Core.addWeighted(absSx, 0.5, absSy, 0.5, 0, image);

图片:

1 2

很多都取决于图像分辨率和质量,但有更好的方法吗?

如何在机器学习中使用这些信息? 如何将此图形数据转换为适合分类器的形式?

我在分类中只尝试使用像素数据,但结果并不好。

0 个答案:

没有答案