图像边界框的周长 我需要用C++在OpenCV中找到图像包围盒的周长。使用双周长=弧长时(rois[wp],真)生成以下错误: 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

图像边界框的周长 我需要用C++在OpenCV中找到图像包围盒的周长。使用双周长=弧长时(rois[wp],真)生成以下错误: 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,c++,opencv,C++,Opencv,有人能解释一下问题出在哪里吗?基本上,arcLength函数不接受rois[wp]的格式。它必须是2D并且具有CV_32S或CV_32F深度。类似于cv::Mat valid_roi(n,2,cv_32F)(适应您的问题)。为了完成下面的答案,您如何声明ROI?为什么不简单地将周长计算为:2*(矩形宽度+矩形高度))是的,长官@Miki,我已经计算出了像这样的周长,只声明为向量ROI;。ROI基本上是图像的连通分量。因此,如果图像向量中有2个连通分量,ROI包含So 2矩阵。ROI是在执行高斯模

有人能解释一下问题出在哪里吗?

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

为了完成下面的答案,您如何声明
ROI
?为什么不简单地将周长计算为:
2*(矩形宽度+矩形高度))是的,长官@Miki,我已经计算出了像这样的周长,只声明为向量ROI;。ROI基本上是图像的连通分量。因此,如果图像向量中有2个连通分量,ROI包含So 2矩阵。ROI是在执行高斯模糊、形态学、otsu二值化操作后获得的灰度图像。我的目标是检测图像中的表格。对,它必须是灰度级才能使用该算法。需要一个2D点列表,因此如果输入是矩阵,则必须对其进行初始化,类似于上面的示例。如果组件是整数,则可以使用
CV_32S
。我使用公式=2*(l+h)计算周长