我需要使用C++在OpenCV中找到图像边界框的边界。使用double perimeter = arcLength(rois[wp],true);时,会产生以下错误:

Assertion failed (count >= 0 && (depth == CV_32F || depth == CV_32S)) in arcLength,
file /home/vidushi/Desktop/OpenCV/modules/imgproc/src/shapedescr.cpp,
line 285 terminate called after throwing an instance of 'cv::Exception'
what():  /home/vidushi/Desktop/OpenCV/modules/imgproc/src/shapedescr.cpp:285:
error: (-215) count >= 0 && (depth == CV_32F || depth == CV_32S) in function arcLength

有人可以解释可能是什么问题吗?

最佳答案

基本上,rois[wp]函数不接受arcLength的格式。它必须是2D且具有CV_32S或CV_32F深度。类似于cv::Mat valid_roi(n, 2, CV_32F);(适应您的问题)。

关于c++ - 图像边界框的周长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42895754/

10-12 04:12