Android Image Processing检测颜色并放置轮廓线

时间:2016-09-16 03:20:23

标签: android image-processing

我正在尝试制作一款具有图像处理功能的Android应用程序。如何使用位图简单地将轮廓线与具有相似颜色的像素放在一起?

我见过这个video,但它是实时处理,显示轮廓线。我想在我的应用程序中使用静态图像,并显示具有相似颜色的像素的轮廓线。

1 个答案:

答案 0 :(得分:1)

首先,您应该考虑一个图像处理库来为您完成工作!我认为OpenCV是一个不错的选择。然后加载图像,将其转换为HSV空间并应用inRange的颜色阈值。在结果图片中,您使用findContours检测轮廓,并使用drawContourspolylines绘制轮廓。完成!

修改

转换输入图片,例如RGB到hsv:

Imgproc.cvtColor(rgb,hsv,Imgproc.COLOR_RGB2HSV);

定义上限和下限值!查看HSV色轮并选择正确的范围。请注意,HSV已适合3个8位通道,但H通道不适合,因此必须将此值除以2.在OpenCV中,H的范围为0-180。 这是红色的例子:

Scalar lower(0,100,100);
Scalar upper(10,255,255);
Core.inRange(hsv, lower, upper, segmentedImage);

enter image description here

然后使用:

List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Mat hierarchy = new Mat();
Imgproc.findContours(segmentedImage, contours, mHierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);

现在你可以遍历每个轮廓并做一些事情!