我正在使用OpenCV来比较两个图像中的两个blob。假设我已经知道了 一对可能相似的斑点,我知道他们的指数 在轮廓数组中(由cvFindContours()生成),我该怎么做 在恒定时间内访问一个轮廓?
最麻烦的方法是多次使用链接操作(contours = contours-> h_next),但我想知道是否有更快的方法来检索数组中的一个轮廓。
我在调用cvFindContours()时使用CV_RETR_EXTERNAL和CV_CHAIN_APPROX_NONE。
谢谢! -J.C。
答案 0 :(得分:2)
我认为函数cvGetSeqElem
可以满足您的需求。引用OpenCV docs:“该函数具有O(1)时间复杂度,假设块的数量远小于元素的数量。”我认为“块”在这种情况下意味着“轮廓”。
另外,请查看cvCvtSeqToArray
(link),它将序列复制到一个连续的内存块。