
OpenCV
GroupHuang
这个作者很懒,什么都没留下…
展开
-
OpenCV findContours导致程序崩溃和相关使用问题
OpenCV新手上路,官网下载了一个OpenCV3.2.0版本,在VS2013上编程。安装各种教程配置好环境后开始研究。第一个任务是数码管数字识别。找了一张图片,开始读取灰度图,二值化,膨胀(数码管数字笔画是不连的,为了轮廓提取方便需要进行膨胀使得数字笔画相连),轮廓提取,数组分割,识别。。。 但是在轮廓提取过程发生了问题,主要是findContours()函数惹的祸,一运行到这个函数程序就崩溃,原创 2017-03-17 15:10:32 · 4770 阅读 · 0 评论 -
Cmake 找不到OpenCVConfig.cmake文件
在利用Cmake-gui配置Visual studio2013的OpenCV工程时,遇到如下报错: 这说明Cmake不能自动找到OpenCV库所在路径,解决方案是在GUI界面中手动添加OpenCVConfig.cmake以及opencv-config.cmake所在的文件夹,即配置在下图标出的绿色圈所在位置。 这两个文件的所在位置一般是在OpenCV安装路径下的bin文件夹内。原创 2017-11-06 15:37:57 · 12687 阅读 · 0 评论 -
VS2013配置64位ZBar、OpenCV
本人想利用OpenCV与ZBar实现二维码扫描功能。PC上已经配置好了OpenCV3.1.0,并且VS2013配置为64位的开发环境。按照教程:二维码解码器Zbar+VS2012开发环境配置,配置了ZBar0.10,后利用如下代码测试:#include <iostream> #include<opencv2/opencv.hpp>#include <opencv2/core/core.hp原创 2017-09-06 22:05:34 · 6124 阅读 · 7 评论 -
OpenCV根据矩形轮廓进行倾斜校正
本文将介绍如何利用OpenCV,提取图片中的矩形轮廓特征并进行图片的倾斜校正。完成demo程序可以至:OpenCV根据矩形轮廓进行倾斜校正下载。本demo所处理的图片是一张PCB电路板(如下图),欲实现的功能是将图片中倾斜的PCB校正为水平。基本的思路是检测PCB的边缘直线,而后根据边缘直线的斜率旋转图片。但是由于PCB上布满了各种原件,所以图片在经过轮廓提取直线检测后,会误检出很多条直线。demo原创 2017-09-14 16:41:56 · 18991 阅读 · 1 评论 -
Visual Studio2013配置OpenCV3.1.0
Step1. BUILD -> Configuration Manager 窗口,将 Active solution platform 栏目内容改为x64 Step2. 在Solution Explorer窗口内,右键项目名称 -> Properties 打开属性页面 Step3. 属性页面下, 打开 Configuration Properties -> VC++ Directories 窗原创 2017-09-15 18:58:30 · 622 阅读 · 0 评论 -
OpenCV + Java(Android) 设置ROI
在处理图像时, 我们经常需要提取图片中的重要部分进行分析,滤除不重要的噪声背景。通常的操作是设置感兴趣区域(Region of Interest, ROI),然后分割图片。由于操作对象形状的不同,ROI也会具有不同的形状。从简单的矩形,到稍复杂的圆形、椭圆,以及更为复杂的不规则形状。网上有很多关于C++版本的OpenCV设置ROI的博文,但是Java语言版的颇少,本文就着重介绍一下在Java或者An原创 2017-07-04 18:48:01 · 4920 阅读 · 3 评论 -
绘制灰度直方图(OpenCV + Java)
本文介绍一下如何使用Java语言绘制灰度图的直方图。由于Java环境下OpenCV不提供Mat图像的显示方法,如imshow(),因此需要使用SWing组件自己编写显示方法。同时,OpenCV的Jar包也并没有提供相关的抽象数据类型和方法,比如CvHistogram等。一、灰度直方图简介 灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表原创 2017-06-20 15:59:49 · 5241 阅读 · 4 评论 -
OpenCV图像拷贝方法与注意点(=、copy、clone)
下面介绍三种OpenCV复制图像的方法:方法1:直接赋值使用用赋值运算符“=”进行的拷贝是一种浅拷贝,虽然它们有不同的矩阵头,但是二者共享相同的内存空间,二者内容相互关联,任何一个变量变化的同时另一个变量也随之改变。/*OpenCV v1版本*/IplImage img_origin = cvLoadImage(".\\picture.jpg", CV_LOAD_IMAGE_COLOR); //原创 2017-04-07 16:09:57 · 20413 阅读 · 0 评论 -
基于OpenCV的数码管数字识别
利用OpenCV可实现工业仪表设备的读数识别。仪表一般可分为两:数字式仪表和指针式仪表,本博文主要介绍一下数字式仪表识别的关键技术。下图是用软件模拟的数码管图片,本文识别的也就是图中的数字。一、图像定位 在实际的应用场景中,拍摄到的仪表区域很有可能会包含多余的背景部分,一个比较简单的解决方法是在拍摄时先行设定一个边界区域,提醒拍摄者将待识别的内容限制在区域中。后期识别时直接提取边界区域内的信息进行原创 2017-06-13 14:01:38 · 11421 阅读 · 5 评论 -
OpenCV图像读取与灰度化
在OpenCV中,图像的读取可以通过imread()函数实现: Mat imread( const String& filename, int flags = IMREAD_COLOR ); 读取后的数据存储格式由第二个形参flags决定。flag的值可以从枚举类型cv::ImreadModes中选取:enum ImreadModes { IMREAD_UNCHANGED = -1, /原创 2017-06-19 13:18:55 · 4000 阅读 · 0 评论 -
自定义类重载运算符<< >>,并用FileStorage保存和读取xml文件
OpenCV在2.0以后的版本中提供了FileStorage类,供用户将数据保存为xml或者YAML文件。本文的内容就是介绍如何自定义类,而后重载> 运算符,并通过FileStorage保存和读取xml文件。自定义一个数据类,想要保存的数据为一张图像,以及std::vector和std::vector > 两类点集。自定义类的头文件mydata.h#pragma once#inclu原创 2018-01-08 19:56:38 · 1326 阅读 · 3 评论