OpenCV: drawContours()断言失败
OpenCV: Assertion failed with drawContours()
我正在尝试从图像中绘制轮廓。我从我的网络摄像头中获取了一个框架,提取了它的轮廓。然后,我按区域过滤它们,并调用drawContours()来显示它们。问题是,当我试图绘制过滤轮廓时……如果我画原始的,一切都没问题。下面是代码:
size_t contours_size=contours.size();
bool contour_is_valid[contours_size];
size_t filtered_contours=0;
size_t copied_contours=0;
size_t i;
double area;
for(i=0;i<contours_size;i++){
area=contourArea(contours.at(i),false);
if(area>minArea && area<maxArea){
contour_is_valid[i]=true;
filtered_contours++;
}
else{
contour_is_valid[i]=false;
}
}
area_filtered_contours.resize(filtered_contours);
for(i=0;i<contours_size;i++){
if(contour_is_valid[i]==true){
area_filtered_contours.at(copied_contours).resize(contours.at(i).size());
copy(contours.at(i).begin(),contours.at(i).end(),back_inserter(area_filtered_contours.at(copied_contours)));
copied_contours++;
}
}
contours是findContours()的输出,因此,它是一个向量<向量&>>数据等于area_filtered_contours。我想做的是生成另一个结构,像这样,在面积上有有用的轮廓。
drawContours(cnt_img2,contours,_levels <= 0 ? 3 : -1, 255,1,8,hierarchy, std::abs(_levels) );
可以,但是
drawContours(cnt_img2,area_filtered_contours,_levels <= 0 ? 3 : -1, 255,1,8,hierarchy, std::abs(_levels) );
给我一个断言错误。有什么问题吗?
提前感谢,
费德里科•
正如您的断言所说:OpenCV错误:断言失败(hierarchy.total() == ncontours &&hierarchy.type() == CV_32SC4)
关于findContours() (opencv.org)的层次结构的信息:可选的输出向量,包含有关图像拓扑的信息。它的元素和轮廓的数量一样多。
当您更改计数时,还必须编辑层次结构。这是一个可选的输入。把这个也编辑一下,否则不要用
相关文章:
- 尝试使用 std::vector<std::thread时出现静态断言失败错误>
- uint_not_usable_without_attribute在业力规则中使用数字生成器时静态断言失败
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 在 CppUnit 中测试中止断言失败
- 使用扫描的调试断言失败
- 为什么我的Qt程序在断言失败后继续运行?
- 图片不显示,关闭时出错 --> 调试断言失败!表达式:is_block_type_valid(标头>_block_use)
- 访问提升:shared_ptr 主范围外崩溃,断言失败:px != 0.指针的正确用法是什么?
- C++ 调试断言失败 - 矢量下标超出视觉工作室的范围
- 错误:断言失败 (src.type() == CV_8UC1) 在阈值中
- Boost Beast 异步服务器失败,断言失败:(id_ != T::id) 在多个 aync 调用中
- 使用imwrite OpenCV时断言失败
- 调试断言失败的缓冲区!=nullptr
- 使用 ofstream 写入文本文件时断言失败
- 提升继续恢复断言失败
- 获取有关调试断言失败的错误:表达式:"(_Ptr_user &(_BIG_ALLOCATION_ALIGNMENT -1)) == 0" &&0
- OpenCV(3.4.1) 错误:断言失败(变暗 <= 2 && step[0] > 0) in cv::Mat::locateROI
- 在Win10上使用带有Qt5的OpenCV3.0,调试断言失败
- MFC GetDC() 断言失败 - "Not a window"
- OpenCV 错误:断言失败 - 矩阵减去