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;
}
相关推荐
俊哥V15 分钟前
每日 AI 研究简报 · 2026-04-02
人工智能·ai
王小义笔记15 分钟前
SFT和RLHF是什么?有什么区别
人工智能·深度学习·机器学习
纤纡.24 分钟前
OpenCV 实现人脸识别:LBPH/Eigen/Fisher 三大算法实战详解
人工智能·opencv·计算机视觉
铮铭27 分钟前
EgoScale: 基于多样化第一人称视角人类数据的灵巧操作规模化
人工智能·机器人·具身智能·vla
木心术128 分钟前
OpenClaw网页前端开发与优化全流程指南
前端·人工智能
大嘴皮猴儿39 分钟前
跨境电商旺季备战指南:如何用跨马翻译快速完成多国语言大促素材
大数据·人工智能·新媒体运营·自动翻译·教育电商
纤纡.1 小时前
OpenCV 实战:基于 Haar 特征的人脸与微笑检测全解析
人工智能·opencv·计算机视觉
百胜软件@百胜软件1 小时前
百胜软件黄飞出席时尚产业生态圈主题沙龙,分享AI在时尚零售企业的应用实践
人工智能·零售
云边云科技_云网融合1 小时前
基于深度学习的设备监控技术:从被动报警到主动预警的革新
网络·人工智能·云计算
易标AI1 小时前
标书智能体(四)——提示词顺序优化,让缓存命中,输入成本直降10倍
人工智能·python·提示词·智能体·招投标