opencv GPU HoughLines直线

opencv基础59-霍夫变换原理讲解及示例-cv2.HoughLines()->(直线,圆形检测) 霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。霍夫变换采用类似于投票的方式来获取当前图像内的形状集合,该变换由 Paul Hough(霍夫)于 1962 年首次提出。最初的霍夫变换只能用于检测直线,经过发展后,霍夫变换不仅能够识别直线,还能识别其他简单的图形结构,常见的有圆、椭圆等。 阅读详情
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <cv.h>
//#include "d:\Program Files\opencv_build11\install\include\opencv2\gpu\gpu.hpp"
    using namespace cv;
#define ROI_rows 178
#define ROI_cols 100

int main (int argc, char* argv[])
{    // CvCapture *Frame=cvCaptureFromCAM(-1);
     VideoCapture cap("Load.avi");
     if(!cap.isOpened())  
    return -1;  
     cv::Mat Image_frame,Lines_out;
      //Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
while (1)
  {    cap>>Image_frame;
     // imshow("Cam",Image_frame);


     // cv::Mat Image = cv::imread("load.jpg" );
         cv::Mat  ROI_Mat=Image_frame(Rect(ROI_cols,376-ROI_rows,672-2*ROI_cols,ROI_rows));
         cv::Mat copy_mat(ROI_Mat);


          cv::gpu::GpuMat Image_Src,Image_Dst,Lins ;
          Image_Src.upload (ROI_Mat);

          cv::gpu::cvtColor(Image_Src,Image_Dst,CV_BGR2GRAY);
        // cv::erode(Image_Dst,Image_Dst,element);
        //   cv::gpu::Canny(Image_Dst,Image_Dst,120,255);
         cv::gpu::Sobel(Image_Dst,Image_Dst,CV_8U,1,1);
          vector<Vec2f> lines1;
          //show line
          cv::gpu::HoughLines(Image_Dst,Lins,1,CV_PI/180,50,1,5);    //5 line long   7number of line
          cv::gpu::HoughLinesDownload(Lins,lines1);

          std::cout<<"Lines_out"<<lines1.size()<<std::endl;
          for( int i = 0; i < lines1.size(); i++ )
  {
    float rho = lines1[i][0], theta = lines1[i][1];
    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));
    line( copy_mat, pt1, pt2, Scalar(55,100,195), 1, CV_AA);
  }


          cv::Mat  Image_sobel(Image_Dst);  
          std::cout<<"宽"<<Image_sobel.cols <<std::endl;
          std::cout<<"高"<<Image_sobel.rows <<std::endl;
          rectangle( Image_frame,cvPoint(ROI_cols,376-ROI_rows),cvPoint(672-ROI_cols,376),cvScalar(0,0255),1);

          //show Image
          cv::imshow("Sobel",Image_sobel);
          cv::imshow("源图像",Image_frame);


      cv::waitKey(5); 

}
OpenCV霍夫圆+霍夫线实现指针式仪表自动读数 指针式仪表读数自动化是工业视觉中的典型任务。借助OpenCV中的霍夫圆检测与霍夫线检测,可无需深度学习即可完成表盘定位与指针方向计算。其核心原理是通过图像预处理增强边缘信息,用霍夫变换在参数空间累加投票,找出与表盘、指针对应的几何特征;再结合角度映射与量程标定,将指针角度换算为实际数值。该方案计算开销低、部署灵活,适合压力表、温度表等指针式仪表的自动抄表,以及嵌入式设备的实时视觉读取场景。文章从预处理、圆检测、线检测、角度换算到工程化调参完整展开,并讨论了刻度噪声、颜色干扰与多帧滤波等落地难点,为传统仪表智 阅读详情

相关推荐

OpenCV纯CPU车道线检测实战:雨天逆光弯道鲁棒性方案

车道线检测是智能驾驶与ADAS系统的基础视觉任务,其核心在于从复杂道路图像中稳定提取具有几何连续性和亮度对比度的线性结构。传统方法基于图像梯度、形态学增强与霍夫变换等经典图像处理技术,具备强可解释性、低算力依赖和快速场景适配能力,尤其适用于Jetson Nano等边缘设备。相比深度学习方案,OpenCV轻量级流水线无需GPU、不依赖标注数据闭环,在雨天、逆光、积水、弯道等挑战场景下通过CLAHE增强、梯形ROI掩膜、Sobel-X方向梯度、动态Canny阈值及斜率-截距联合聚类等关键技术,显著提升检测鲁棒性

weixin_34129696的博客 411

OpenCV霍夫变换直线检测实战与参数优化

霍夫变换是计算机视觉中经典的直线检测算法,通过将图像空间中的直线映射到参数空间进行累积统计实现检测。其核心原理是利用极坐标方程ρ=x·cosθ+y·sinθ避免斜率无限大问题,通过二维累加器统计边缘像素的投票结果。OpenCV提供了标准霍夫变换和概率霍夫变换两种实现,前者返回直线参数需手动转换坐标系,后者直接输出线段端点且效率更高。在实际工程应用中,结合Canny边缘检测和参数调优,可广泛应用于文档矫正、工业检测等场景。本文通过15行核心代码实现两种算法的对比可视化,并详细解析阈值、线段长度等关键参数的影响

afeyfre41671的博客 536

OpenCV车道线检测五层流水线:从Canny到霍夫变换的工程实践

车道线检测是计算机视觉中经典的几何建模任务,其核心在于将图像中的结构化道路信息转化为可解释的直线参数。传统OpenCV方案虽不依赖深度学习,却通过Canny边缘检测、梯度分析、ROI裁剪、霍夫变换与直线拟合等底层算子,构建出具备强鲁棒性、高可解释性与低部署门槛的处理链路。该方法在嵌入式设备、实时系统及教学场景中具有不可替代价值——参数即原理,中间态全可视,故障可精准归因。尤其在课程设计与本科毕设中,它直击‘为什么能跑’而非‘能否跑通’的本质要求,成为夯实图像处理基础、训练工程化思维的关键路径。

weixin_34389926的博客 417

OpenCV3.0 Examples学习笔记(12)-houghlines.cpp-通过HoughLinesP函数实现直线检测

这个系列的目的是通过对OpenCV示例,进一步了解OpenCV函数的使用,不涉及具体原理。 简介 本文记录了对OpenCV示例houghlines.cpp的分析。 资料地址:http://docs.opencv.org/3.0.0/d2/d7b/houghlines_8cpp-example.html 这个示例主要演示了如何使用HoughLinesP对图像进行直线检测。 示例涉及到HoughLinesP。

我不是校长的博客 4502

Pycharm+OpenCV车牌识别实战:从环境配置到实时定位

车牌识别是计算机视觉中典型的图像处理应用,其核心在于图像预处理、目标定位与字符识别三步闭环。传统方法依托OpenCV实现轻量级部署,无需深度学习框架与标注数据,特别适合边缘设备与工程落地场景。关键技术包括HSV色彩空间定位、CLAHE局部增强、透视校正与模板匹配识别,强调鲁棒性与可调试性。Pycharm在此过程中不仅是代码编辑器,更通过断点调试、SciView图像可视化、解释器环境隔离等功能,构建端到端的开发-调试-验证闭环。本文聚焦真实监控场景下的蓝/黄牌识别,覆盖环境配置陷阱、参数物理意义、性能瓶颈优化

weixin_34241036的博客 348

OpenCV指针仪表读数识别:经典图像处理实现自动抄表

工业视觉中,指针式仪表读数识别长期依赖人工巡检,效率低且易漏读。传统方案常默认引入深度学习,但训练数据获取成本高、部署依赖GPU。OpenCV作为开源计算机视觉库,通过霍夫圆变换定位表盘、霍夫直线检测提取指针方向、角度映射计算数值,在CPU上即可完成毫秒级识别,无需训练样本,参数可解释、易调试。该方法在化工厂、水电站等结构规整、光照可控的表盘场景中,能以更低成本实现稳定的自动抄表,是经典图像处理在实际工程中高效落地的典型代表。本文基于OpenCV从预处理、圆检测、指针拟合到量程映射,完整拆解仪表读数识别系统

weixin_34268579的博客 412

OpenCV-标准霍夫变换cv::HoughLines

介绍了OpenCV中常用的特征检测方法-霍夫变换

翟天保的博客 2万+

字轮式水表识别:OpenCV+模板匹配+轻量CNN实战

字轮式水表识别是一种面向物理结构约束的专用视觉任务,区别于通用OCR,其核心在于建模数字轮的机械排列、进位逻辑与光学干扰特性。原理上融合图像预处理(抗反光/锈蚀)、几何定位(霍夫圆+同心环约束)和混合识别(模板匹配+NCC+ResNet微调),技术价值体现在低质量图像下的高鲁棒性与边缘部署可行性。典型应用场景包括老旧小区批量抄表、水务物联网终端嵌入及高校计算机视觉课程实践。本文聚焦字轮结构先验驱动的端到端方案,涵盖PreProcess.py预处理、det_test.py几何定位、rec_test.py混合识

weixin_34062469的博客 375

opencv HoughLine 理解

参考: opencv HoughLine Transform Tutorial https://guiqing.blog.youkuaiyun.com/article/details/8058336 https://www.cnblogs.com/lancer2015/p/6852488.html opencv HoughLine结果分析 opencv中,HoughLine的结果,是找到的所有直线的集合,...

mjsaka的博客 1846

vasp计算练习1-Si

si的vasp训练流程

qq_41074165的博客 3295

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决

/* 开启串口1中断 */ LL_USART_EnableIT_RXNE(LPUART1); /* 开启串口2中断 */ LL_USART_EnableIT_RXNE(USART2);

シ❤゛甜虾的个人博客 7686

读浅墨博客 十四 笔记

hougn变换检测直线: C++: void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0 )   第一个参数,InputArray类型的image,输入图像,即源图像,

还在路上的蒲公英 743

Megatron单机多卡Qwen2.5:pre-train+sft

英伟达:https://github.com/NVIDIA/Megatron-LM/releases/tag/core_r0.8.0阿里:https://github.com/alibaba/Pai-Megatron-Patch/releases/tag/v0.10.2。

weixin_46873015的博客 2178

OpenCV实战:5分钟搞定霍夫变换直线检测(附Python代码)

本文详细解析了霍夫变换在图像处理中的直线检测和圆形检测应用,通过OpenCV实战代码演示了参数调优和性能优化技巧。文章特别介绍了极坐标参数化和霍夫梯度法的核心原理,帮助开发者快速掌握几何形状检测技术,适用于车道线识别、工业检测等场景。

weixin_29063979的博客 409

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4023

StarRC:版本陈旧引发的多corner提取RC失败

运行StarRC提取多corner RC时会遇到提取失败的情况,当分次提取各个corner RC时却成功了,这种时候优先考虑nxtgrd版本陈旧的情况。解决办法是找到nxtgrd对应的itf文件,然后使用新版starrc去产生nxtgrd。debug方法也简单,在运行StarRC开始阶段会报告如下信息,就证明nxtgrd太老了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1826

【OpenCV霍夫变换直线检测】:深入解析HoughLines参数调优的5大核心技巧

掌握OpenCV的霍夫变换检测直线参数调优技巧,解决复杂场景下直线识别不准难题。涵盖HoughLines函数核心参数解析、适用场景及优化策略,提升检测精度与效率,值得收藏。

AlgoChat的博客 1011

Agent 智能体学习指南:从入门到求职的完整路线

AI Agent 不是更长的 prompt,而是一类系统设计——模型在受控环境里观察状态、选择动作、调用工具、接收反馈。本文系统梳理 Agent 的 5 个核心概念、7 个关键模块(Goal/State/Context/Tools/Loop/Guardrails/Eval)、三条学习路线(工程落地/研究算法/求职作品)、框架选型策略(LangGraph/OpenAI Agents SDK/Pydantic AI 等场景推荐),以及可执行的 7 天最小项目计划(从概念到简历 bullet)。

program哲学 229

Opencv实战(3)详解霍夫变换

霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。labels : labels是一个与image一样大小的矩形(labels.shape = image.shape),其中每一个连通区域会有一个唯一标识,标识从0开始。图像空间点——>参数空间线,图像空间点共线——>参数空间线交点, 参数空间点——>图像空间线。minDist :为霍夫变换检测到的圆的圆心之间的最小距离。

Star__01的博客 1513

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

灵境引路人 3227

高通SDX35:SGMII接口PHY RTL8211FSI-CG驱动适配

高通SDX35 RTL8211F SGMII

不秃头的程序猿Gabriel的博客 785

车道线检测实战:OpenCV传统视觉方案详解与调参经验

车道线检测是计算机视觉与无人驾驶感知领域的基础任务,也是入门图像处理管线的经典实践项目。其核心流程涵盖灰度化、高斯滤波、Canny边缘检测、ROI区域裁剪、霍夫变换直线检测与最小二乘拟合等关键步骤,每一步都涉及图像处理的基本原理与参数调优技巧。传统视觉方案无需GPU和深度学习框架,仅依赖OpenCV与NumPy即可构建实时可运行的车道线识别系统,尤其适合初学者快速建立对图像坐标变换、边缘提取和直线拟合的直观理解。在实际工程中,车道线检测广泛应用于辅助驾驶、车道偏离预警和路径规划等场景,同时也可作为理解语义分

weixin_33851177的博客 210

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Uber RIBs 与 Jetpack Compose 集成指南:从 Builder 到 SIRs(Scope、Interactor、Router)架构的 Compose Demo 深度解析

RIBs 是 Uber 开源的跨平台移动应用架构框架,其核心由 Router(路由)、Interactor(业务交互)、Builder(构建器)三部分组成。本文基于 Uber RIBs Android 仓库中的 `demos/compose` 示例(即 [demos/compose/README.md](https://link.gitcode.com/i/740a231db9f7b130a2a1

gitblog_00419的博客 227

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

行空板OpenCV边缘检测实战:从环境部署到Canny算法调优

边缘检测是计算机视觉的基础技术,其核心原理在于识别图像中像素灰度值发生突变的区域,这些区域通常对应物体的轮廓或边界。经典的Canny算法通过高斯滤波去噪、计算梯度、非极大值抑制和双阈值检测等步骤,实现了对边缘的精准定位与连接,在工业质检、自动驾驶等领域具有重要价值。本文聚焦于在嵌入式Linux设备(如行空板)上部署OpenCV并实现边缘检测功能,详细探讨了OpenCV的两种安装策略(预编译包与源码编译),并深入解析了Canny算法的参数调优与实时处理优化技巧,为嵌入式视觉原型开发提供了完整的工程实践路径。

weixin_34038293的博客 394

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OpenCV三大核心技术:图像金字塔、直方图与透视变换实战

计算机视觉中的图像处理技术是人工智能应用的重要基础。图像金字塔通过多尺度分析模拟人类视觉认知机制,直方图统计揭示图像的本质特征分布,而透视变换则实现几何形变的精确校正。这些核心技术支撑着工业质检、医疗影像、自动驾驶等关键场景的视觉任务。在OpenCV实践中,高斯金字塔构建需要严格遵循降采样规范,CLAHE直方图均衡化能有效增强低对比度图像,透视变换矩阵的求解则涉及线性代数原理。通过多尺度缺陷检测、X光片增强和文档扫描等典型应用案例,开发者可以掌握这些技术的工程实现要点与性能优化方法。

cuili5839的博客 305

工业视觉笔记快捷搜索---目录

工业视觉需要时可抄的代码---持续更新 一(1-28)目录1、批量访问图片,等待键盘1.2 批量访问图像(不用提前批量重命名)--访问文件夹底下所有同类型图像1.2.1 单独只有批量访问的1.3 批量访问图像(也是不用提前批量重命名)--访问文件夹底下所有同类型图像1.4 批量访问图像(也是不用提前批量重命名)--访问文件夹底下所有同类型图像1.5 批量访问图像(不用提前批量重命名)--单张和批量前面路径相同(jiefeng)1.6 批量访问图像(不用提前批量重命名)--单张和批量前面路径相同(bioake

weixin_47059239的博客 1531
上一篇: opencv GPU自带行人识别
下一篇: char数组如何强制转换为int类型
C_ROS
博客等级 码龄12年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值