OpenCV
盏茶y
学习,是一生的事业。
展开
-
OpenCV基础(一) 数据类型及常用函数
基本数据类型OpenCV有很多基本数据类型,其中比较基本的有四种,CvPoint,是一个包含integer成员x和y的简单结构体,有两种变体类型CvPoint2D32f和CvPoint3D32f.CvSize,是一个包含integer成员width和height的简单结构体,如果希望使用浮点类型,可以选用其变体类型CvSize2D32f.CvRect类型派生于CvPoint和CvS...原创 2019-05-20 10:26:10 · 396 阅读 · 1 评论 -
OpenCV3.4.6 OpenCV_contrib win10教程
最近使用到了OpenCV扩展库contribute,踩了一点小坑整理了个教程,基本在OpenCV3.x.x版本通用,其他版本没有实践不好叙述,供后续使用者学习参考:1.前期准备需要准备三个内容,分别是OpenCV OpenCV contribute和CMake:在前期准备中,最重要的就是OpenCV的使用版本与OpenCV contrib的版本一致,需要特别注意,不要直接下载co...原创 2019-06-05 11:54:51 · 3115 阅读 · 3 评论 -
OpenCV 指针仪表盘参数读取(五) 参数计算
在得到圆心信息和直线信息后,需要通过这些信息把他们转化为角度信息,在转化为我们需要的参数信息,这里需要用到math.h头文件中的反切函数,即atan2(x, y)这个函数是以x,y相对于0,0点的位置在不同象限上进行计算的,输出范围为-pi,pi,因此需要对它的输出值进行一定的转化,在OpenCV中,图像坐标系和常用的坐标系如下图:故除第三象限,其他象限都为(3 * pi / 2...原创 2019-05-21 12:28:02 · 4735 阅读 · 9 评论 -
OpenCV 指针仪表盘参数读取(四) 指针定位
这一节是此方案设计的最核心部分,指针能否准确的定位出来是最关键的问题,在学习过程中,初步采用几种方案来尽可能的提高指针定位的精度:1.指针定位的方案: Hough直线检测 环向模板匹配法径向灰度求和法2.指针细化的方法(算法将放在文章最后提供测试与使用)对于指针定位,初步的设计思路是采用Hough直线检测的方法,而后通过直线上的点与圆的关系来将错误检测的直线进行过滤,此方案的难点在于...原创 2019-05-21 12:08:53 · 10087 阅读 · 3 评论 -
OpenCV 指针仪表盘参数读取(三) 圆检测
本文将进入方案设计的核心部分,我们在实现方案的过程中,仪表盘和指针的定位信息十分重要,因为我们需要指针的偏转角来进行参数计算,而仪表盘的圆心和弧度会在进行直线选择的过程中提供非常重要的阈值,对结果的正确性至关重要。方案选择在圆检测的方案中,主要考虑了两种方案:1.Hough圆检测算法2.随机采样圆检测算法其中Hough圆检测算法是普及程度较高的算法,在OpenCV的库中也有相应...原创 2019-05-21 11:41:45 · 5864 阅读 · 0 评论 -
OpenCV 指针仪表盘参数读取(二) 预处理
本文将从图像的预处理部分进行叙述,包括图片的读入,模板匹配,灰度化,中值滤波四个部分。图片读入为保证后续对图片的处理方便,这里的初步设计是希望在主程序入口对程序进行操作,故提前定义如窗口名,文件名等信息(图片的索引是在与cpp文件的同文件夹下),代码如下:// Define Window Namechar window_name[] = "Demo";// Define Fil...原创 2019-05-21 11:27:10 · 4274 阅读 · 2 评论 -
OpenCV 指针仪表盘参数读取(一) 方案设计
最近涉及到一个对指针式仪表盘通过图像处理的方式进行参数读取的工作,在此项工作中,比较重要的目的是 尽可能提高参数读取的准确率。确定两项主要工作内容:1.识别指针仪表盘的参数2.尽可能提高准确率网上相关的教程比较多,OpenCV中的python版本也提供了相关的教程,但想搭建一个适合于项目的工程,还是需要进行参数调节的,毕竟不是一个可以自动调节的黑箱工程,通过对指针式仪表的识别调研,...原创 2019-05-20 23:29:45 · 11694 阅读 · 1 评论 -
OpenCV 隐藏控制台
在使用OpenCV进行程序开发的过程中,会出现由于建立一个Console Project进行开发的原因,在运行程序时,出现imshow的图形后有如下控制台显示,解决思路是通过改变程序入口来达到屏蔽控制台显示的功能。方法一1.首先在main.cpp(主文件)的main函数前加:#pragma comment(linker, "/subsystem:windows /ENTRY:ma...原创 2019-05-20 14:20:10 · 608 阅读 · 0 评论 -
OpenCV 基础(二) 显示图片
HighGUI(high-level graphical user interface)库是OpenCV将操作系统、文件系统和摄像机之类的硬件进行交互的一些功能的库文件,通过HighGUI库,我们可以方便的打开窗口,显示图像,读出或者写入图片,视频等,处理简单的鼠标,光标和键盘事件,也可以做一些控件比如滑动条等。目的:将一张图片投影到窗口上创建窗口我们采用HighGUI中的cvName...原创 2019-05-20 11:31:30 · 508 阅读 · 0 评论 -
C++ 提取某一文件夹下的所有文件的名称
由于OpenCV添加lib项太多,使用C++处理产生同一文件夹下的所有文件名称,节省大量时间,需要注意的是在win64的系统下long hFile的文件名称会报错,这时采用ling long型来定义文件路径索引,还有就是用到字符串裁剪,在通过gefile读入的字符串是带有文件目录信息的,采用string.substr来对文件名称进行裁剪,达到希望的输出,具体代码如下:#include...原创 2019-06-06 16:13:08 · 431 阅读 · 0 评论