Opencv的findcontours函数的大坑

比较了两个图一个会产生2个轮廓,一个只产生一个轮廓

cpp 复制代码
/**
 * @function findContours_Demo.cpp
 * @brief Demo code to find contours in an image
 * @author OpenCV team
 */

#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    CommandLineParser parser(argc, argv, "{@input | HappyFish.jpg | input image}");
    Mat src = imread(samples::findFile(parser.get<String>("@input")));
    Mat src_gray , binarized ;
    cvtColor(src, src_gray, COLOR_BGR2GRAY);
    threshold(src_gray, binarized, 90, 255, THRESH_BINARY); //THRESH_BINARY_INV);
    //savedata(binarized);
    vector<vector<Point>> contours;
    findContours(binarized, contours, RETR_LIST, CHAIN_APPROX_NONE); // 查找轮廓
    for (size_t i = 0; i < contours.size(); i++)
    {
        //contourArea(contours[i]);
        double area = moments(contours[i]).m00;
        cout << "轮廓" << i << " 面积:" << area << endl;
        drawContours(src, contours, i, Scalar(0, 255, 0), 2);
    }
    string windowName = "Contours " + to_string(contours.size());
    imshow(windowName, src);
    waitKey();
    return 0;
}
相关推荐
颜酱1 小时前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱1 小时前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
码上解惑1 小时前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai
小陈phd1 小时前
QAnything 阅读优化策略05——检索
人工智能·python·机器学习
zhangfeng11332 小时前
CVOCA 卷积模型,《Nature》子刊 特征提取技术突破性研究的综合分析报告
人工智能
炎火星2 小时前
直播切片素材杂乱,怎么用 AI 剪辑做成可用带货视频?
人工智能
像风一样的男人@2 小时前
python --fastapi推流AI推理
人工智能·python·fastapi
行走的小派2 小时前
从个人开发到企业部署:OPi AI Station四大应用场景与选型指南
人工智能·边缘计算·香橙派·边缘ai
天云数据2 小时前
从“雇佣一个人”到“组建一个团队”:AI生产力的组织方式被重写
人工智能