Lin-JM
这个作者很懒,什么都没留下…
展开
-
OpenCV学习笔记:MAT解析
在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建。为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料。但这种方法必须接受C语言所有的不足,这其中最大的不足要数手动内存管理,其依据是用户要为开辟和销毁内存负责。虽然对于小型的程序来说手动管理内存不是问题,但一旦代码开始变得越来越庞大,你需要越来越多地纠缠于这原创 2013-08-18 14:37:20 · 1770 阅读 · 0 评论 -
级联分类器训练全过程记录
摘要:本实验记录主要介绍如何训练分类器,这其中包括准备训练数据和运行训练程序。注意事项: OpenCV里面有两个现成的程序可以用来训练级联分类器,分别是opencv_haartraining和opencv_traincascade。opencv_traincascade是一个新程序,根据OpenCV2.x API用C++编写。 这二者主要的区别是opencv_trainca原创 2013-11-14 22:43:52 · 6598 阅读 · 0 评论 -
车牌识别系统开发记录(三) 字符识别
这篇博文来谈谈车牌的字符识别。目前,车牌字符识别算法主要是基于模板匹配、特征匹配或神经网络的方法。在本文中我们主要来说说基于神经网络的字符识别方法,采用的是OpenCV中的CvANN_MLP。关于神经网络的具体细节,可以参考我以前的博文:BP神经网络解析及Matlab实现更加细节的东西可以查看如下参考文献:Neural Networks【OpenCV Documentation】BackPropWikipedia【Wikipedia】现在我们确定了字符识别的总体框架,那么先来说说字符的特征提原创 2014-04-15 10:33:28 · 9401 阅读 · 1 评论 -
车牌识别系统开发记录(四) 国内车牌特点
前面谈的车牌图像是国外的,现在谈谈国内的车牌。目前,中国大陆主要有四种牌照,分别是民用蓝底白字牌照、民用黄底黑字牌照、军警用白底黑字或红字牌照以及国外驻华机构用黑底白字牌照。归纳起来,车牌图像主要有如下特点:(1)虽然牌照种类较多,但牌照的尺寸、字间距、字数和字体基本统一。前车牌水平排列的7字符是等大小的,均为45mm宽,90mm高,也就是说单个号码的宽高比是1:2,而对于整个车牌原创 2014-04-17 16:36:25 · 7529 阅读 · 4 评论 -
图像处理软件开发记录(一) 系统概述
专栏地址:http://blog.csdn.net/column/details/imagep.html本系列博客主要记录Image_Lin图像处理软件的开发记录。Image_Lin软件计划实现的功能包括:(一)、基本图像处理(黑白、锐化、柔化、补光)(二)、人像美容(人脸美肤)(三)、图像特效(素描、油画、浮雕、怀旧、Lomo)(四)、原创 2014-03-26 21:19:49 · 4885 阅读 · 3 评论 -
Flood Fill(漫水填充)算法
Floodfill算法即漫水填充法,是区域填充法的一种,其实质是种子填充法,这种方法适用于对内定义区域的填充。所谓内定义区域,是指区域内部所有像素具有同一颜色或亮度值,而区域外的所有像素具有另一种颜色或亮度值。Floodfill方法能将该区域中的全部像素都设置为新值,并通过一定的规则确定一组种子点(该种子点为区域内点),然后通过判断种子点的邻域像素是否和种子构成连通域,从而决定是否对其进行填充原创 2014-03-20 20:04:19 · 6008 阅读 · 0 评论 -
车牌识别系统开发记录(二) 车牌定位
这里面我要具体介绍的检测车牌方法的步骤如下:首先利用Sobel滤波器对灰度图像进行滤波,突出图像中的垂直边缘信息利用数学形态学方法: Close(先膨胀再腐蚀,填充内部空隙)利用findContours函数寻找车牌的潜在轮廓结合车牌的长宽比例的先验知识剔除不符合的轮廓利用floodfill算法结合车牌的颜色信息提取可能的车牌区域再次结合车牌的长宽比例的先验知识剔除不符合的轮廓根据上面初步提取出可能的车牌区域,下一步利用SVM进行判断是否是车牌好了,下面一步步来分析:原创 2014-04-09 18:29:00 · 8521 阅读 · 6 评论 -
OpenCV学习笔记:基于Haar特征的人脸检测
一、快速入门:跟着程序跑。下面我们直接从一个人脸检测的demo程序来建立感性认识。二、级联分类器接下来,我们从理论上来加深对人脸检测的认识:目标检测方法最初由Paul Viola提出,并由Rainer Lienhart 对这一方法进行了改善。首先,利用样本(大约几百幅样本图片)的harr特征进行分类器训练,得到一个级联的boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本(例如人脸或汽车等),反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,原创 2013-08-15 21:49:26 · 7277 阅读 · 8 评论 -
SIFT调用例程——VLFeat
SIFT是一个很好的特征检测器,它能够从一张图片中检测出一组不受光照、视线等影响的特征点。同时它本身就是一个很好的特征描述子,它能够充分反映特征点附近局部图像的形状和纹理结构特性,具有较好的鲁棒性和独特性。提取特征点区域和特征描述子检测特征点和获取特征描述子都是通过Matlab命令 vl_sift来实现的。打开Matlab,载入测试图像:翻译 2013-08-08 15:08:04 · 22045 阅读 · 0 评论 -
基于opencv的车牌识别解析与代码
车牌识别太出名了,我也就花几天来了解下这个系统,并结合opencv进行实现。下面是一些介绍:车辆牌照识别(License Plate Recognition,LPR)技术作为交通管理自动化的重要手段和车辆检测系统的一个重要环节,在交通监视和控制中占有很重要的地位。LPR系统可以广泛应用于高速公路电子收费站、出入控制、公路流量监控、失窃车辆查询、停车场车辆管理、公路稽查、检测黑牌机动车、监控违章车辆的电子警察等需要车牌认证的重要场合,尤其是基于车牌识别技术的高速公路收费系统中,相对于射频卡等技术,可以实现不原创 2014-01-02 17:38:13 · 52841 阅读 · 15 评论 -
VLFeat开源库入门
VLFeat是一个跨平台的开源机器视觉库,它囊括了当前流行的机器视觉算法,如SIFT, MSER, HOG, 同时还包含了诸如K-MEANS, Hierarchical K-means的聚类算法。它由C语言编写,并提供了Matlab接口及详细的文档。当前最新的版本是VLFeat 0.9.16 。LinJM @HQU翻译 2013-08-08 11:07:16 · 20127 阅读 · 1 评论 -
OpenCV中遇到Microsoft C++ 异常 cv::Exception
我在实现《OpenCV2计算机视觉编程手册》第2章 2.2 节 存取像素值 中的椒盐噪声例子中遇到的程序错误。程序出现的问题如下:#include #include #include //2.2节中的程序,但是出现问题using namespace cv;void salt(Mat & , int );int main(){ Mat image = imread("C:\\B原创 2013-09-09 21:21:40 · 27354 阅读 · 0 评论 -
OpenCV中的Ptr解析
OpenCV里面的Ptr的定义如下:Template class for smart reference-counting pointers,即智能指针模板类。The Ptr class is a template class that wraps pointers of the corresponding type. It is similar to shared_ptr that is p原创 2013-11-15 16:36:18 · 7147 阅读 · 0 评论 -
OpenCV学习笔记: 快速入门例程
先期基础:————————————————————————————Main函数参数argc,argv说明C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数 假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入原创 2013-08-14 20:26:39 · 3450 阅读 · 0 评论 -
OpenCV学习笔记:如何扫描图像、利用查找表和计时
目的我们将探索以下问题的答案:如何遍历图像中的每一个像素?OpenCV的矩阵值是如何存储的?如何测试我们所实现算法的性能?查找表是什么?为什么要用它? 测试用例这里我们测试的,是一种简单的颜色缩减方法。如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六原创 2013-08-18 16:51:16 · 1581 阅读 · 0 评论 -
OpenCV学习笔记:输入输出XML和YAML文件
你将得到以下几个问题的答案:如何将文本写入YAML或XML文件,及如何从OpenCV中读取YAML或XML文件中的文本如何利用YAML或XML文件存取OpenCV数据结构如何利用YAML或XML文件存取自定义数据结构?OpenCV中相关数据结构的使用方法,如 :xmlymlpers:FileStorage , FileNode 或 FileNodeIterator.原创 2013-08-18 21:22:21 · 1343 阅读 · 0 评论 -
OpenCV学习笔记:基本的图像处理
本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下:blurGaussianBlurmedianBlurbilateralFilter 原理Note 以下原理来源于Richard Szeliski 的著作 Computer Vision: Algorithms and Applications 以及 Learning原创 2013-08-19 09:18:27 · 1855 阅读 · 0 评论 -
关于QT的pro文件编写及英文文档
最近打算利用QT+OpenCV来学习图像处理,但是在编写一个简单的入门例程时遇到了编译问题(如下图),下面就来整理一下有关pro文件的写法。.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建原创 2013-09-08 16:59:41 · 1760 阅读 · 0 评论 -
Openc学习笔记:关于反投影直方图
直方图是图像内容的一个重要特性。如果一副图像的区域中显示的是一种独特的纹理或是一个独特的物体,那么这个区域的直方图可以看作是一个概念函数,它给出的是某个像素属于该纹理或物体的概率。基于上述想法,我们可以利用反向投影直方图来检测特定的图像内容。而所谓的反向投影就是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式。简单的讲, 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻原创 2013-09-14 11:06:56 · 2121 阅读 · 0 评论 -
为什么VS提示SurfFeatureDetector不是cv的成员函数
surf和sift算法都是在头文件#include 中,但在新的opencv版本出来后,如果仍然使用这个头文件就会出现编译错误如下: 'SurfFeatureDetector' : is not a member of 'cv' 原因:没有把 opencv_nonfree243d.lib 加入lib库中。原创 2013-09-21 23:38:31 · 7425 阅读 · 1 评论 -
OpenCV中4个人脸级联分类器
OpenCV下的data\haarcascades中有4个haar特征训练的级联分类器:它们之间的区别如下:1:haarcascade_frontalface_alt.xmlStump-based 20x20 gentle adaboost frontal face detector.2:haarcascade_frontalface_alt2.xml原创 2013-11-08 16:14:16 · 7724 阅读 · 0 评论 -
OpenCV学习笔记:人脸检测(级联分类器)
在这节教程中您将学到: 使用 CascadeClassifier 类来检测视频流中的物体. 特别地, 我们将使用函数:load 来加载一个 .xml 分类器文件. 它既可以是Haar特征也可以是LBP特征的分类器.detectMultiScale 来进行图像的多尺度检测. 原理 代码本教程的代码如下所示. 你也可以 点这里 下载. 第二转载 2013-08-19 10:10:52 · 3693 阅读 · 1 评论 -
OpenCV 编码样式指南
OpenCV 编码样式指南前言 本文档是对OpenCV中代码风格的简短说明,因为OpenCV的核心库(cv,cvaux)是用C和C++编写的,所以本文档仅对用C和C++代码的编写有效。 文件命名 所有cv和cvaux库文件的命名必须服从于以下规则:所有的CV库文件名前缀为cv混合的C/C++接口头文件扩展名为 .h纯C++接口头文件扩展名为转载 2013-08-14 22:05:50 · 2006 阅读 · 0 评论 -
最新OpenCV2.4.6和VS2010的配置过程
1、配置环境变量如果你是第一次安装,那么你需要配置环境变量。环境变量选项在下图的4中在环境变量的path中添加对应的build\x86\vc10\bin2、工程配置在配置好环境变量后,就需要对一个建好的工程进行配置。工程配置有如下几步:首先添加包含目录:然后添加库目录:最后是添加附加依赖项:debug下库名称:open原创 2013-11-09 21:38:53 · 1580 阅读 · 0 评论 -
OpenCV学习笔记:如何训练级联分类器
级联分类器训练使用级联分类器工作包括两个阶段:训练和检测。 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍。当前的指南描述了如何训练分类器:准备训练数据和运行训练程序。重点注意事项OpenCV中有两个程序可以训练级联分类器: opencv_haartraining和 opencv_traincascade 。转载 2013-08-20 21:35:12 · 1882 阅读 · 0 评论 -
createsamples.cpp全过程解析
createsamples.cpp的作用是创建训练样本。这个程序的代码如下:这个程序的特点就是有一堆参数需要去理解、填写。下面捡重要的讲讲。第一是-img <image_file_name>,-img表示输入图像文件名(例如一个公司的标志)。第二个是-vec <vec_file_name>,-vec表示 输出文件,内含用于训练的正样本。第三个是-bg <background_file_name>,-bg背景图像的描述文件,文件中包含一系列的图像文件名,这些图像将被随机选作物体的背景。第四个是-nu原创 2013-11-09 22:56:03 · 2610 阅读 · 0 评论 -
Opencv问题:Bad argument can not get new positive sample
出现的问题如下:Traincascade Error: Bad argument (Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file.解决办法:The problem is that your vec-f原创 2013-11-11 21:59:16 · 9168 阅读 · 2 评论 -
关于traincascade的一些问题
Hi all.Firs of all I want to tell, my question contain many sub questions, answers to which already exist, but they are not complete or ambiguous.So first - maxFalseAlarmRate - I have most pro原创 2013-11-11 22:50:43 · 4112 阅读 · 0 评论