您可以使用什么方法来替换Imgproc.connectedComponents()?

时间:2017-05-17 21:24:02

标签: java android-studio opencv image-processing connected-components

我在Android Studio中使用Opencv 2.4.10,而且仅在Opencv 3.0及更高版本中使用了connectedComponents方法。我想知道是否有类似的方法可以用来替换connectedComponents()以及方法是什么。

我正在开发一个实时应用程序,可以使用Android摄像头跟踪路过的人。目前,我可以从背景中提取前景(或分段运动)。但是一些检测到的前景被分成了几个部分,所以我需要connectComponents()方法来连接应该组合在一起的blob。但就像我之前说的那样,我的Opencv版本没有。请帮忙。

这只是我的代码片段:

 Core.absdiff(frameGray, bgModelGray, differenceGray);

 differenceGray.convertTo(mGray, CvType.CV_8UC1) ;                                
 Imgproc.threshold(mGray, mGray, 0, 255, Imgproc.THRESH_OTSU); 

 Mat erodeElement = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(5, 5), new Point(3, 3));
 Mat dilateElement = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));
 Imgproc.erode(mGray, mGray, erodeElement);
 Imgproc.dilate(mGray, mGray, dilateElement);

 contours.clear();
 Imgproc.findContours(mGray, contours, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);
 Imgproc.drawContours(mRgba, contours, -1, new Scalar(0, 0, 255), 2);

This is a screenshot after the dilation, contours are not yet added here

Screenshot of detected persons enclosed in bounding boxes

0 个答案:

没有答案