opencv:快速迭代轮廓的像素

时间:2014-12-18 21:17:46

标签: c++ opencv image-processing

我想遍历多边形(opencv轮廓)中的像素,以获得项目的一些属性(最大灰度值,最小值,灰度值,平均灰度值,......) 问题是,如何以最快的方式做到这一点? (我已经提取了数千个)

在opencv答案中,这个问题有一个答案( http://answers.opencv.org/question/29693/fastest-method-to-loop-through-contour-pixels/),但不幸的是,opencv目前正在停滞一段时间。

有谁知道,建议的算法是什么?我想到了三种算法。

1。)提取Shape并使用原始图像执行and-operator(声音太贵)

2。)执行洪水填充,如迭代(听起来更好但不完美)

3.执行扫描平面三角测量算法(不知道如何做到这一点)

还有其他人/更好的想法吗?您认为最有前途/最快的算法是什么。

1 个答案:

答案 0 :(得分:0)

根据:

http://webcache.googleusercontent.com/search?q=cache:http://answers.opencv.org/question/29693/fastest-method-to-loop-through-contour-pixels/

没有建议的答案;)

一般情况下,我会计算轮廓的minBoundingRect并执行drawContours的确定(尚未检查开源代码)以找到该轮廓内的所有像素(可能是某些/关闭像素算法?!?)。

在我自己的项目中,我只是画出8UC1白色的轮廓并将其用作面具,这对我的任务来说已经足够了。