- 博客(25)
- 收藏
- 关注
原创 OpenCV 3.0自身带的人脸识别训练模型数据进行人脸识别
一、利用opencv自带训练文件检测人脸 1. 创建级联分类器 2. 加载训练数据 3. 使用detectMultiScale方法检测人脸 4. 在人脸检测的基础上检测人眼 二、代码 #include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/calib3d/calib3...
2018-12-07 20:19:49 1940
原创 身份证识别训练器
一.tesseract-ocr简单使用与训练一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。1、...
2018-11-29 19:51:54 989 1
原创 身份证识别
一.图像处理灰度化图像。 二值化图像。 利用 AdaptiveThresholdType 全局化阈值,blockSize = 55时,效果最好。public static Image<Gray,byte> BinImg(Image <Bgr ,byte> img) { return img.Convert<Gray, ...
2018-11-29 16:38:46 484
原创 利用opencv绘制图形
1.代码//---------------------------------【头文件、命名空间包含部分】----------------------------// 描述:包含程序所使用的头文件和命名空间//--------------------------------------------------------------------------------------...
2018-06-21 20:22:57 854
原创 opencv3点追踪
1.点追踪程序运行后会启动摄像头,按键盘上的r键来启动自动点的追踪,在摄像头下移动物体可以看到物体上的点这物体一起运动2.源代码//---------------------------------【头文件、命名空间包含部分】----------------------------// 描述:包含程序所使用的头文件和命名空间//----------------------------------...
2018-06-08 19:36:48 757 1
原创 光流法进行运动物体的追踪
1.光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:(1)基于区域或者基于特征的匹配方法;...
2018-05-31 21:03:51 3766
原创 高斯滤波及其实现
1.滤波算法简介 图像处理中,常用的滤波算法有均值滤波、中值滤波以及高斯滤波等。均值滤波使用模板内所有像素的平均值代替模板中心像素灰度值,这种方法易收到噪声的干扰,不能完全消除噪声,只能相对减弱噪声;中值滤波计算模板内所有像素中的中值,并用所计算出来的中值体改模板中心像素的灰度值,这种方法对噪声不是那么敏感,能够较好的消除椒盐噪声,但是容易导致图像的不连续性。高斯滤波对图像邻域内像素进...
2018-05-17 20:10:55 6130
原创 条形码的识别
1.要定位首先要检视这种条形码的特点,这种图像在X方向上的梯度肯定很明显,同时,Y方向的梯度就没这么明显,所以第一步,我们应该将图像的灰度图像分别计算梯度,用X方向梯度减去Y方向梯度,这样可以保留X方向特征并且去除Y方向的干扰2.在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,"w")。而对于fopen_s来说,还得定义另外一个变量errno_t er...
2018-05-04 17:32:33 1704
翻译 opencv学习笔记
函数说明int getOptimalDFTSize(int vecsize)该函数是为了获得进行DFT计算的最佳尺寸。因为在进行DFT时,如果需要被计算的数字序列长度vecsize为2的n次幂的话,运行速度是非常快的。如果不是2的n次幂,但能够分解成2,3,5的乘积,则运算速度也非常快。这里的getOptimalDFTSize()函数就是为了获得满足分解成2,3,5的最小整数尺寸。如果是多维矩阵需...
2018-04-20 19:33:03 323
原创 opencv滑动条的创建和使用
滑动条的创建和使用 1--滑动条(Trackbar)是OpenCv动态调节参数特别好的一种工具,它依附于窗口而存在 2--创建滑动条createTrackbar()函数: 1.createTrackbar函数用于创建一个可以调节整数值的滑动条,并将滑动条附加到指定 的窗口上,使用起来很方便。但需要记住,它往往会和一个回调...
2018-04-10 19:29:04 1095
原创 opencv3.0识别并提取图形中的矩形
利用opencv来识别图片中的矩形。 其中遇到的问题主要是识别轮廓时矩形内部的形状导致轮廓不闭合。 1. 对输入灰度图片进行高斯滤波 2. 做灰度直方图,提取阈值,做二值化处理 3. 提取图片轮廓 4. 识别图片中的矩形 5. 提取图片中的矩形1.对输入灰度图片进行高斯滤波 cv::Mat src = cv::imread("F:\\t13.bmp",CV_BGR2GRAY); cv:...
2018-03-30 10:42:16 33232 3
原创 利用opencv、vs2015自带的矫正功能矫正车牌
旋转RGB图像的主要函数:选择变换:图像绕原点逆时针旋转a角,其变换矩阵及逆矩阵(顺时针选择)为:1.打开VS2015选择文件,然后新建项目,选择新建一个Win32控制台应用程序,并选择空项目并在源文件中添加一个名为rotate的CPP文件 在该rotate.cpp文件中输入一下代码#include "cv.h" // OpenCV 文件头...
2018-03-23 19:54:42 1738
转载 车牌倾斜矫正
在车牌识别系统中, 车牌字符能够正确分割的前提是车牌图像能够水平,以至于水平投影和垂直投影能够正常进行。如果车牌倾斜没有矫正,那么水平投影和垂直投影,甚至铆钉都无法正常处理。所以,当车辆信息中获取车牌的第一步,应该是检查倾斜角度,做倾斜矫正。1、倾斜角度检测: 霍夫变换2、倾斜矫正: 图像旋转1、提取车牌整体图片数据, 根据第一步结果,提取出,车牌在辆大体位置信息。关于车牌定位,我使用两...
2018-03-15 18:40:25 13089
原创 车牌字符分割—投影法
车牌字符的分割—投影1.首先,定义一个数组用来储存每一列像素中白色像素的个数。 int perPixelValue;//每个像素的值 int* projectValArry = new int[width];//创建一个用于储存每列白色像素个数的数组 memset(projectValArry, 0, width*4);//必须初始化数组1232.然后,遍
2018-01-31 14:54:01 7043 1
原创 人脸检测部分代码
1.用opencv实现人脸检测2.加载Haar分类器一般来说分类训练器的xml文件路径如下:....\sources\data\haarcascades\haarcascade_frontalface_alt.xml,opencv3.0,需要将该xml文件复制到当前工程目录下 3.载入图片4.利用前面加载的Haar检测器检测对象(人脸)将彩色图转换为
2017-12-22 16:50:48 407
原创 opencv行人跟踪检测
#include #include #include #include #include #include #include using namespace std;using namespace cv;int main(){Mat src = imread("3123.jpg");HOGDescr
2017-12-14 19:13:49 4002 1
原创 根据坐标抠图
#include #include #include IplImage* src = 0;IplImage* dst = 0;void on_mouse(int event, int x, int y, int flags, void* ustc){static CvPoint pre_pt = { -1,-1 };//初始坐标sta
2017-12-06 18:59:02 2053
原创 opencv3.0中一个窗口显示多个图像
1.注意:imshowMany()函数ROI法,要求各图片的颜色通道数目一直,次数为三通道 要显示单通道灰度图或二值图图片需要转换颜色空间cvtcolor() 模糊处理内核的选择和霍夫变换时精度选择对最终结果影响较大 图像处理之霍夫变换(直线检测算法)霍夫变换是图像变换中的经典手段之一,主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆
2017-11-30 19:17:17 6449
原创 opencv3.0车牌号字符分割—通过字符的四点定位
在车牌号字符分割时,固定坐标来分割字符会产生一些误差,#include #include #include IplImage* src = 0;IplImage* dst = 0;void on_mouse(int event, int x, int y, int flags, void* ustc){static CvPoi
2017-11-15 16:43:28 1958
翻译 opencv3.0 车牌号字符的分割
1.车牌号字符的分割第一步要解决的问题是去除车牌的边框。方法:对车牌二值化图像行和列扫描。当行扫描时跳变小于某个阈值时,则认为这行数据中不包含字符信息,这行的像素直接置0。这样去除掉上、下边框和铆钉的影响。当扫描完行之后,直接在前端和末端抹掉两列信息。这是为了去掉左右边框的影响。2.一些函数的用法(1)cvCvtColor()色彩空间转换函数。格式:cvCvtColor(源图像,输出图
2017-10-26 20:37:45 599 1
opencv3.0 车牌号字符的分割
1.车牌号字符的分割对车牌二值化图像行和列扫描。当行扫描时跳变小于某个阈值时,则认为这行数据中不包含字符信息,这行的像素直接置0。这样去除掉上、下边框和铆钉的影响。当扫描完行之后,直接在前端和末端抹掉两列(经验值)信息。这是为了去掉左右边框的影响。左图为含有边框噪声之图像,右图为消除边框噪声之后的图像,但是还有少量#include #include #include
2017-10-26 19:18:45 1096
翻译 物体最小包围矩形,最小包围圆
1: opencv产生随机数 RNG 是一个类,它可以压缩一个64位的i整数。并可以得到scalar和array的随机数。首先要产生一个对象。uniform函数可以返回指定范围的随机数 注意不能写成rng.uniform(0,1),因为输入为int类型,会调用uniform(int,int),结果为0。2:程序代码// ConsoleApplication12
2017-10-19 16:40:02 2240
原创 网页的制作
To change this license header, choose License Headers in Project Properties.To change this template file, choose Tools | Templatesand open the template in the editor.--> TODO 国庆
2017-09-29 16:43:43 402
翻译 矩阵的创建
摘要:矩阵的创建有许多创建方法。最常见的方法是用cvCreateMat(),它是由多个原函数组成cvCreateMatHeader()函数创建cvMat结构,不为数据分配内存,cvCreateData()函数只负责内存的分配。还可以用函数cvCloneMat,它依据一个现有的矩阵创建一个新的矩阵。当这个矩阵不需要时,可以调用函数cvReleaseMat释放它。关键字:矩阵的创建 #incl
2017-09-21 17:03:06 734
翻译 矩阵数据的读取
摘要:当使用OpenCV时,会经常使用IplImage类型,该类型是OpenCV的基础图像类型。图像可能是灰度图彩色图四通道图(RGB+Alpha)等,而每个通道可能是整数或浮点数类型。OpenCV提供了对图像的大量处理操作函数。 在我们讨论IplImage之前需要看另一个数据类型CvMat,即OpenCV的矩阵类型。尽管OpenCV是用C语言实现的,但是CvMat和IplImage的关系其实就类
2017-09-20 16:48:07 1451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人