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;
}
相关推荐
墨染天姬2 小时前
【AI】什么是MOE混合专家模型?
人工智能
无忧智库2 小时前
全场景 AI 智能体落地指南:基于 OpenClaw 的超级个体进阶手册:第三阶段:进阶篇
人工智能
KG_LLM图谱增强大模型2 小时前
[350页特训讲义]从会用到会教:AI时代企业转型与AI讲师教练孵化全攻略
人工智能
IT 行者2 小时前
每天了解几个MCP SERVER:Slack
人工智能·microsoft·mcp
QiZhang | UESTC2 小时前
《A Neural Probabilistic Language Model》神经网络与语言模型的初次会面
人工智能·神经网络·语言模型
jeffsonfu2 小时前
深度神经网络的结构拆解:通用逼近器是如何工作的
人工智能·神经网络·dnn
一水鉴天2 小时前
“活结-活络-活扩”:一种面向数据价值升维与业务敏捷演进的系统架构元模型 20260310 之2(元宝)
人工智能·系统架构
做怪小疯子2 小时前
AI大模型RAG与Agent开发学习
人工智能·学习
成都它思科技有限公司2 小时前
SPMI@SLT2021: 基于直通梯度的高效神经结构搜索与端到端语音识别融合
人工智能·语音识别