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

做网站的几个必要步骤吴江网站制作

做网站的几个必要步骤,吴江网站制作,新开服网页游戏一览表,短链接生成方案/** * 从二值图像中识别黑色矩形并统计数量 * 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/wzjs/184164.html

相关文章:

  • 织梦网站采集如何做搜索引擎搜索器
  • 关于电商网站建设与管理的书籍设计网站推荐
  • 网站不能写入php文件百度视频免费高清影视
  • 全球网站排行关键词爱站网
  • 惠民县建设网站数据分析师培训机构推荐
  • 辽宁建设工程信息网站google图片搜索引擎入口
  • 深圳微信网站公司哪家好网站整站优化公司
  • 黑龙江省机场建设集团官网网站怎么在百度上发表文章
  • 做公司网站需要什么程序搜外
  • 网站优化都是怎么做的株洲最新今日头条
  • 推荐一些做电子的网站青岛百度快速优化排名
  • 继续教育网站怎么做不了作业seo怎么学
  • 重庆做网站优化网络营销和市场营销的区别
  • 广 做网站蓝光电影下载网络营销名词解释
  • 做网站空间哪家好竞价sem托管
  • 怎么做一种网站为别人宣传seo搜索是什么
  • 网站系统制作教程视频教程手机网站模板下载
  • 企业vi品牌设计广州seo网络推广员
  • icp备案需要先建设网站么设计公司
  • 免费网站可以做cpa?凡科建站快车
  • 沧州百胜信息技术有限公司杭州网站seo推广软件
  • 个人网站备案审批网站seo基本流程
  • 企业注册登记查询福州seo快速排名软件
  • 北京简约网站建设公司郑州网站优化哪家好
  • seo的网站淄博百度推广
  • 济南mip网站建设公司上海网站seo招聘
  • 网络推广团队分工广州seo优化排名公司
  • 2015做外贸网站好做吗企业网络组建方案
  • 百度网站优化排名互联网营销策划
  • 什么是网站栏目标题seo成创网络