OpenCV Hough Line变换
API
Probabilistic Hough Line变换(概率霍夫线变换)vector<Vec4i> lines;
HoughLinesP(dst, lines, 1, CV_PI/180, 50, 50, 10 );dst:边缘检测器的输出。它应该是一个灰度图像(尽管事实上它是二进制的)
行:将存储检测到的行的参数的(xstart,ystart,xend,yend)
rho:参数的分辨率(以像素为单位)。我们使用1像素。r
theta:以弧度表示的参数的分辨率。我们使用1度(CV_PI / 180)θ
threshold:将“* detect *”一行的最小交点数
minLinLength:可以形成一行的最小点数。小于这个点数的行被忽略。
maxLineGap:在同一行中考虑的两点之间的最大差距。
代码
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include<vector>
#include <iostream>
using namespace std;
using namespace cv;
Mat src = imread("3.png",IMREAD_GRAYSCALE);
int thresh = 50;
int line_length = 10;
int line_distance = 5;void on_canny(int, void*)
{Mat dst;//去模糊GaussianBlur(src, src, Size(3, 3), 0, 0);Canny(src, dst, thresh, 2*thresh, 3);vector<Vec4i>lines;HoughLinesP(dst, lines, 1, CV_PI / 180, 50, line_length, line_distance);for (int i = 0; i < lines.size(); i++){Vec4i l = lines[i];line(dst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255), 1, 8, 0);}imshow("dst", dst);
}int main()
{if (!src.data){cout << "图片读入失败" << endl;return -1;}namedWindow("原图", WINDOW_FREERATIO);imshow("原图",src);createTrackbar("阈值", "原图",&thresh, 120, on_canny);createTrackbar("规定线长", "原图", &line_length, 60, on_canny);createTrackbar("规定两线距离", "原图", &line_distance, 15, on_canny);on_canny(0, 0);waitKey(0);return 0;
}
OpenCV Hough Line变换相关推荐
- OpenCV 霍夫线变换Hough Line Transform
OpenCV 霍夫线变换Hough Line Transform 霍夫线变换Hough Line Transform 目标 理论 霍夫线变换 它是如何工作的? 标准概率霍夫线变换 这个程序做什么? 代 ...
- Python+OpenCV:Hough直线检测(Hough Line Transform)
Python+OpenCV:Hough直线检测(Hough Line Transform) 理论 A line can be represented as or in a parametric fo ...
- OpenCv 练习题 霍夫(Hough)变换
霍夫(Hough)变换 题目:计算黑子之间的距离与白字之间的距离,得到两个最大值,运用直线画出连接两段距离最大的黑子和白子的直线,运用hough直线检验出棋盘的中本来的黑线,以不同颜色画出. from ...
- 【OpenCV-Python】教程:3-13 Hough直线变换
OpenCV Python Hough直线变换 [目标] 理解Hough变换的概念 学会使用Hough变换检测直线 cv2.HoughLines(), cv2.HoughLinesP() [理论] H ...
- 直线检测练习:hough线变换
直线检测练习:hough线变换 1.hough线变换概述 2.hough线变换原理 3. API介绍 3.1 opencv版 3.1.1 HoughLines API介绍(SHT.MSHT) 3.1. ...
- Hough直线变换、圆变换原理解析与python实验
霍夫变换 在图像x-y坐标中,经过点(x_i, y_i)的直线表示为y_i=k∗ x_i+b (1),其中k为斜率,b为截距 如果将x_i .y_i 看成常数,把k和b看成变量,式子(1)可以表示为b ...
- OpenCV离散傅立叶变换DFT的实例(附完整代码)
OpenCV离散傅立叶变换DFT的实例 OpenCV离散傅立叶变换DFT的实例 OpenCV离散傅立叶变换DFT的实例 #include "opencv2/core.hpp" #i ...
- OpenCV使用F变换过滤
OpenCV使用F变换过滤 使用F变换过滤 目标 模糊变换应用 代码 解释 使用F变换过滤 目标 本教程向您演示如何使用F变换进行图像过滤.你会看见: 背后的基本理论 不同设置的插图. 模糊变换应用 ...
- OpenCV使用F变换进行修补
OpenCV使用F变换进行修补 使用F变换进行修补 目标 介绍 模糊变换应用 代码 解释 使用F变换进行修补 目标 在本教程中,您将学习使用F变换修复图像的工作原理.它包括: 背后的基本理论 三种不同 ...
最新文章
- c语言多线程mysql_多线程读写mysql数据库
- 用研究新范式破解生命科学难题
- ASP.NET 应用程序生命周期概述
- salt-ssh 安装salt-minion 笔记
- nimbus java_Java程序设置界面为Nimbus风格x
- 怎么做蒙特卡洛计算npv_PowerBI非标准日历下的同比环比计算,你知道怎么做吗?...
- 随想录(octave软件)
- bzoj 1856: [Scoi2010]字符串(卡特兰数)
- 【渝粤教育】广东开放大学 电子商务项目管理 形成性考核 (22)
- Linux 杀死进程方法大全(kill,killall)
- Java八大算法:归并排序
- java链表实现多项式的运算
- 台风怎么看内存颗粒_RGB灯效内存条怎么选,看老胡推荐
- AI 写代码来了 - github 的 AI 写代码插件 copilot 发布
- 微信公众号迁移公证书办理流程
- Excel 合并两列时间,中间用分隔符连接
- 流程图软件lauto_Iauto流程软件
- Selenium本地打开远程浏览器
- 005 ps基础之图像旋转、裁剪
- SQL的update语句