当前位置: 首页 > 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/244234.html

相关文章:

  • 用h5做网站首页代码免费制作网页的网站
  • 长治软件制作平台网站seo公司哪家好
  • 企业年金退休后怎么发放seo优化是利用规则提高排名
  • 建立网站用英语线下实体店如何推广引流
  • 网站上的动态图怎么做的重庆关键词优化服务
  • 网站建设的未来站长统计网站大全
  • 产品网站怎么做的网站服务器
  • 优质的成都网站建设推上海网站seo诊断
  • 徐州苏视网站建设推广网站的方法有哪些
  • 做货代在哪些网站能找到客户上海百度公司总部
  • 房地产开发公司网站源码网址百度刷排名
  • 网站建设属于什么职位类别站长之家网站模板
  • 网站制作 网站建设 杭州网站发布与推广
  • 网站建设logoseo网站制作优化
  • 网站搭建服务器需要什么免费推广网站有哪些
  • 做网站最简单的工具免费二级域名注册申请
  • 网站到期时间查询谷歌浏览器网页版入口
  • 企业官网网站建设软文街
  • 川畅咨询 做网站多少钱网络推广网上营销
  • 关于建设 医院网站的请示南昌seo搜索优化
  • 网站备案背景app怎么开发出来的
  • 江门网站建设联系电话seo工资待遇怎么样
  • 年度考核表个人总结网站建设企业查询信息平台
  • 建筑工程机械人才培训网长沙专业竞价优化首选
  • wordpress免费企业seo百度快速排名
  • 全国建筑工人招工网百度seo刷排名软件
  • 德州万企网站建设黑帽seo培训大神
  • 没有公司网站如何做推广企业做推广有几种方式
  • 长沙网站技术专家游戏推广拉人渠道
  • 网站建设南阳聊城seo培训