当前位置: 首页 > news >正文

弥勒市建设局网站个人网站 模版 后台管理系统

弥勒市建设局网站,个人网站 模版 后台管理系统,ipv6跟做网站有关吗,做网站搞活动/** * 从二值图像中识别黑色矩形并统计数量 * param binaryImage 输入的二值图像(黑色区域为前景,白色为背景) * param minArea 最小轮廓面积阈值,用于过滤噪声 * param outputImage 可选输出图像,用于可视化检测结…

/**
 * 从二值图像中识别黑色矩形并统计数量
 * @param binaryImage 输入的二值图像(黑色区域为前景,白色为背景)
 * @param minArea 最小轮廓面积阈值,用于过滤噪声
 * @param outputImage 可选输出图像,用于可视化检测结果
 * @return 当检测到的矩形数量 > 3 时返回true,否则返回false
 */
bool detectBlackRectangles(const cv::Mat& binaryImage, double minArea = 500, cv::Mat* outputImage = nullptr) {
    // 确保输入图像是二值图像
    CV_Assert(binaryImage.type() == CV_8UC1);
    
    // 复制输入图像用于处理
    cv::Mat processedImage = binaryImage.clone();
    
    // 形态学操作:开运算和闭运算,去除噪声并填充轮廓
    cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 5));
    cv::morphologyEx(processedImage, processedImage, cv::MORPH_OPEN, kernel);
    cv::morphologyEx(processedImage, processedImage, cv::MORPH_CLOSE, kernel);
    
    // 查找轮廓
    std::vector<std::vector<cv::Point>> contours;
    std::vector<cv::Vec4i> hierarchy;
    cv::findContours(processedImage, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
    
    // 过滤轮廓并统计符合条件的矩形数量
    int validContourCount = 0;
    
    // 如果需要输出图像,创建彩色副本
    cv::Mat colorOutput;
    if (outputImage != nullptr) {
        cv::cvtColor(binaryImage, colorOutput, cv::COLOR_GRAY2BGR);
    }
    
    for (size_t i = 0; i < contours.size(); i++) {
        // 计算轮廓面积,过滤小面积噪声
        double area = cv::contourArea(contours[i]);
        if (area < minArea) continue;
        
        // 近似轮廓为多边形
        std::vector<cv::Point> approx;
        cv::approxPolyDP(contours[i], approx, 0.02 * cv::arcLength(contours[i], true), true);
        
        // 检查是否为矩形(3-6个顶点,不严格要求)
        if (approx.size() >= 3 && approx.size() <= 6) {
            validContourCount++;
            
            // 如果需要,绘制轮廓和边界框
            if (outputImage != nullptr) {
                cv::drawContours(colorOutput, contours, i, cv::Scalar(0, 255, 0), 2);
                cv::Rect rect = cv::boundingRect(contours[i]);
                cv::rectangle(colorOutput, rect, cv::Scalar(0, 0, 255), 2);
            }
        }
    }
    
    // 如果需要,设置输出图像
    if (outputImage != nullptr) {
        *outputImage = colorOutput;
    }
    
    // 返回标志位:轮廓数量是否大于3
    return (validContourCount > 3);
}

http://www.dtcms.com/a/467067.html

相关文章:

  • 子网站建设方案做一个小说阅读网站怎么做
  • 网站第三方统计工具如何修改网站底部
  • 【论文精读】TextCrafter:复杂视觉场景中多文本精确渲染的革新框架
  • 【每日算法C#】x 的平方根 LeetCode
  • HT513:低成本高适配的 I2S 输入单声道 D 类音频功率放大器深度解析
  • Roo Code常见问题
  • 怎么创建网站 免费的改版百度不收录网站
  • 教育网站官网深圳小程序开发设计
  • win11 hyper-v 搭建集群虚拟机(用于k8s)
  • 不同材质的实验室试管有何优缺点?哪个更适合你的实验?
  • 高州市网站建设如何做自己的小说网站
  • 建设网站注意实现佛山网站建设公司招聘
  • 贵州 做企业网站的流程页面布局在哪里找到
  • Python爬虫绕过网站验证的完整实战框架(专业级·高实用性)
  • 番禺怎样优化网站建设网站开发的项目开发计划
  • 七段 S 曲线速度规划方法
  • 广州正规网站建设哪家好上哪里建设个人网站
  • 做电商需要哪些网站有哪些网页的开发流程
  • UVa 12143 Stopping Doom‘s Day
  • 搭建 Python 开发环境(Python 运行环境、PyCharm 开发工具)
  • 【Unity3D脚本与系统设计8】时间计时器
  • 网站开发实践体会兴义网站建设
  • 网页小游戏的网站网站国外建设
  • 招聘seo专员资阳优化团队信息
  • 无锡营销型网站价格wordpress 搜索用户名
  • 【开题答辩全过程】以 TeamW动漫网站为例,包含答辩的问题和答案
  • 西安GEO优化专家杨建允:AI搜索优化,从语义理解到全域引流
  • 网站首页动画模板邯郸人才网
  • 时序预测模型Timesnet(项目报告)
  • 成都网站网页制作网站服务器做缓存