android代码查找图像,Android OpenCV查找轮廓

我需要提取图像的最大轮廓 . 这是我目前正在使用的代码 . 在线收集了几个片段

List contours = new ArrayList();

Imgproc.findContours(outerBox, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);

double maxArea = -1;

int maxAreaIdx = -1;

for (int idx = 0; idx < contours.size(); idx++) {

Mat contour = contours.get(idx);

double contourarea = Imgproc.contourArea(contour);

if (contourarea > maxArea) {

maxArea = contourarea;

maxAreaIdx = idx;

}

}

它似乎工作 . 但是,我不太确定如何从这里开始 . 我尝试使用 Imgproc.floodFill ,但我不太清楚如何 . 此功能需要与原始 Mat 2水平和2垂直相同大小的桅杆 Mat . 当我在轮廓 contours.get(maxAreaIdx) 上运行它时,它给了我一个错误 . 代码:

Mat mask = Mat.zeros(contour.rows() + 2, contour.cols() + 2, CvType.CV_8UC1);

int area = Imgproc.floodFill(contour, mask, new Point(0,0), new Scalar(255, 255, 255));

错误:

11-18 19:07:49.406: E/cv::error()(3117): OpenCV Error: Unsupported format or combination of formats () in void cvFloodFill(CvArr*, CvPoint, CvScalar, CvScalar, CvScalar, CvConnectedComp*, int, CvArr*), file /home/oleg/sources/opencv/modules/imgproc/src/floodfill.cpp, line 621

所以基本上我的问题是,在找到面积最大的轮廓后,我怎么能“突出”它呢?我希望其他一切都是黑色的,轮廓是白色的

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值