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

零基础Opencv学习(三)

概述:主要目的是为了在图像中获取所需要的特征信息,比如直线或者圆等

一、标准霍夫变换 

      cv::Mat midImage, dstImage;
      /// 边缘检测 转化灰度图
      cv::Canny(image, midImage, 50, 200, 3);
      cv::cvtColor(midImage, dstImage, CV_GRAY2BGR);
      /// 进行霍夫线变换
      std::vector<cv::Vec2f> lines; ///存放得到线段矢量集合
      cv::HoughLines(midImage, lines, 1, CV_PI/180, 150, 0, 0);
      /// 绘制每条线段
      for(int i = 0; i<lines.size(); i++)
      {
          float rho = lines[i][0], theta = lines[i][1];
          cv::Point pt1, pt2;
          double a = cos(theta), b = sin(theta);
          double x0 = a*rho, y0 = b*rho;
          pt1.x = cvRound(x0 + 1000*(-b));
          pt1.y = cvRound(y0 + 1000*(a));
          pt2.x = cvRound(x0-1000*(-b));
          pt2.y = cvRound(y0-1000*(a));
          cv::line(dstImage, pt1, pt2, cv::Scalar(0, 255, 0), 1, cv::LINE_AA);
      }

      cv::imshow("midImage", midImage);
      cv::imshow("dstImage", dstImage);

二、累计概率霍夫变换

      cv::Mat midImage, dstImage;

      /// 边缘检测 转化灰度图
      cv::Canny(image, midImage, 50, 200, 3);
      cv::cvtColor(midImage, dstImage, CV_GRAY2BGR);

      /// 霍夫线变换
      std::vector<cv::Vec4i> lines; ///存放得到线段矢量集合
      cv::HoughLinesP(midImage, lines, 1, CV_PI/180, 80, 50, 10);

      /// 绘制每条线段
      for(int i = 0; i<lines.size(); i++)
      {
          cv::Vec4i l = lines[i];

          cv::line(dstImage, cv::Point(l[0], l[1]), cv::Point(l[2], l[3]),cv::Scalar(0, 255, 0),1, cv::LINE_AA);
      }

      cv::imshow("midImage", midImage);
      cv::imshow("dstImage", dstImage);

总结:两种效果都不好,可能是我的图片太复杂了

好了,后面学习重映射、仿射变换

相关文章:

  • 制造业中的MES知识与ERP\PLM\WMS架构关系(附智能制造MES解决方案PPT下载)
  • Oracle 和 PostgreSQL 主从对比介绍
  • 【服务对接】✈️SpringBoot 项目整合华为云 obs 对象存储服务
  • Codeforces Round 969 (Div. 2)
  • npm install速度慢,install超时报错----npm换源;npm i npm install区别
  • 使用Python写贪吃蛇游戏
  • Golang | Leetcode Golang题解之第385题迷你语法分析器
  • 图形化编程系统学习10
  • 如何在知行之桥上通过业务单号查找原始报文?
  • erlang学习:用OTP构建系统3,应用程序服务器
  • SQL视图:简化复杂查询的利器
  • python——python-docx
  • ffmpeg视频转切片m3u8并加密videojs播放hls.js播放dplayer播放(弹幕效果)
  • Mysql集群
  • 大模型时代下,软件检测行业将如何发展?
  • 我问Chat GPT:怎么提交app到苹果商店审核
  • 清除系统缓存提高写盘速度的tips
  • RedisTemplate集成+封装RedisUtil
  • 简述Glide的源码
  • 010 OSS文件上传
  • 全国人大常委会关于授权国务院在中国(新疆)自由贸易试验区暂时调整适用《中华人民共和国种子法》有关规定的决定
  • 陕西省通报6起违反八项规定典型问题,省卫健委原主任刘宝琴违规收受礼品礼金
  • 魔都眼|静安光影派对五一启幕:苏河湾看徐悲鸿艺术画作
  • 上汽集团一季度净利润30.2亿元,同比增长11.4%
  • 打造沪派水乡的“湿意”,上海正在保护营造一批湿地空间
  • 王毅会见俄罗斯外长拉夫罗夫