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

一流的做pc端网站路由器优化大师

一流的做pc端网站,路由器优化大师,网站策划书包括哪些内容,如何快速找到公司网站/** * 从二值图像中识别黑色矩形并统计数量 * 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/101626.html

相关文章:

  • 做系统进化树的网站潍坊自动seo
  • 南宁网站运营哪家好正规考证培训机构
  • 南宁市网站开发公司石家庄seo按天扣费
  • 杭州网站建设过程天津疫情最新情况
  • 宁波 小程序开发公司核心关键词如何优化
  • 河南自助建站建设代理深圳将进一步优化防控措施
  • 导购网站 模板抖音关键词搜索排名收费
  • 怎样说服企业做网站建设推广百度网站客服
  • 石家庄做网站排名免费网站制作
  • 营销 推广路由优化大师
  • 提升了自己的网站it培训机构推荐
  • 网站外链建设策略百度浏览器手机版
  • 成都网站设计价格四川自助seo建站
  • 电子鲜花php网站怎么做app开发公司哪家好
  • 做外贸最适合的网站系统产品推广的渠道
  • 西安做营销型网站百度知道合伙人官网登录入口
  • 做购物网站有什么要求吗网站推广文章
  • 汉中做网站电话成都网络营销公司
  • 专做banner的网站深圳门户网站
  • xampp做的网站能搜索吗制作一个网站需要多少费用
  • 哪些网站可以做海报怎样制作网页新手自学入门
  • 建设网站和备案创建站点的步骤
  • 电子政务门户网站建设知名网页设计公司
  • 惠州个人做网站联系人百度识图在线
  • 劳动仲裁院内部网站建设站长seo综合查询工具
  • 电商平台网页设计杭州百度整站优化服务
  • 炽乐清网站建设如何把品牌推广出去
  • 网页设计作业个人简历代码怎么写人员优化方案怎么写
  • 网站建设学习步骤上海百度推广优化公司
  • 台湾做系统集成的公司网站苏州网站建设制作公司