
OpenCV
文章平均质量分 78
masikkk
北航计算机系研究生
展开
-
OpenCV中IplImage, CvMat, Mat 的关系和相互转换
opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于“图像”,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在opencv2.0之前,opencv是完全用C实现的,但是,IplIm转载 2013-05-07 13:13:25 · 1477 阅读 · 0 评论 -
OpenCV2.4.4实现Harris角点检测
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using namespace cv;using namespace std;//全局变量Mat src, src_gray;//源图和灰度图int thresh = 20原创 2013-05-28 18:51:19 · 3231 阅读 · 2 评论 -
从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本
进行行人检测的分类器训练时,负样本是从完全不包含人体的图片中随机剪裁出来的,下面程序的目的就是这个原创 2013-11-13 22:13:59 · 11054 阅读 · 17 评论 -
利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件
PASCAL VOC目标检测数据集(The PASCAL Visual Object Classes)所以如果想用这个数据集做某种目标识别的训练集的话,需要先从中裁出需要的目标。下面这个程序就是这个目的,其中用到了TinyXML这个简单易用的XML解析器原创 2013-11-13 22:04:20 · 5601 阅读 · 9 评论 -
OpenCV读入图片序列进行HOG行人检测并保存为视频
OpenCV读入图片序列进行HOG行人检测并保存为视频原创 2013-11-13 21:42:58 · 7750 阅读 · 21 评论 -
OpenCV2.4.4实现HOG行人检测
利用OpenCV中默认的SVM参数进行HOG行人检测,默认参数是根据Dalal的方法训练的。原创 2013-11-13 21:09:19 · 5922 阅读 · 0 评论 -
OpenNI2获取华硕XtionProLive深度图和彩色图并用OpenCV显示
使用OpenNI2打开XtionProLive时有个问题,彩色图分辨率无论如何设置始终是320*240,深度图倒是可以设成640*480,而OpenNI1.x是可以获取640*480的彩色图的。彩色图配准到彩色图后的深度图1:1融合图代码:#include #include #include #include原创 2014-07-02 15:41:10 · 10565 阅读 · 0 评论 -
OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示
华硕XtionPro类似Kinect,都是体感摄像机,可捕捉深度图和彩色图,如图:原创 2014-07-02 11:46:14 · 7147 阅读 · 0 评论 -
用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
难例(Hard Example)就是分错类的负样本,将难例加入负样本集合进行二次训练就是告诉分类器:“这些是你上次分错类的,要吸取教训,改正错误”原创 2013-11-14 10:35:26 · 23969 阅读 · 24 评论 -
自己训练SVM分类器进行HOG行人检测
正样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素,截取中间的64*128大小的人体。负样本是从不包含人体的图片中随机裁取的,大小同样是64*128。SVM使用的是OpenCV自带的CvSVM类。首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵,对应的要有一个指定每个特征向量的类别的类标向量,输入SVM中进行训练。训练好的SVM分类器保存为XML文件,然后根据其中的支持向量和参数生成OpenCV中的HOG描述子可用的检测子参数,再调用OpenCV中的多原创 2013-11-13 22:51:37 · 57171 阅读 · 196 评论 -
利用RANSAC算法筛选SIFT特征匹配
关于RANSAC算法的基本思想,可从网上搜索找到,这里只是RANSAC用于SIFT特征匹配筛选时的一些说明。RANSAC算法在SIFT特征筛选中的主要流程是:(1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对(2) 根据这4个匹配点对计算变换矩阵M(3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数(4原创 2013-06-21 15:10:51 · 69496 阅读 · 54 评论 -
OpenCV2.4.4中利用直方图均衡化增强图像对比度(Mat结构实现)
直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin(直方图中的柱子)中。bin中的数值是从数据中计算出的特征的统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。无论如何,直方图获得的是数据分布的统计图。灰度图像的直方图的性质:(1) 直方图是一幅图像中各像素灰度出现频次的统计结果,它只反映图像中不同灰度值出现的次数,而没反映某一灰度所在的位置。也就是说,它只包原创 2013-05-20 19:44:48 · 11431 阅读 · 0 评论 -
Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
Qt中利用OpenCV显示图片和视频时,需要将OpenCV中的Mat或IplImage结构转换为Qt中QImage结构,转换时需要注意的地方是OpenCV中和Qt中关于三原色的排列的不同:OpenCV中是以BGR的顺序排列,Qt中是以RGB的顺序排列,两种格式在转换时如果没注意到这点,就会出现问题,如下图:上图是读取的美剧《总统一家》中的一集,mkv格式的(OpenCV2中增加原创 2013-04-21 18:43:04 · 6327 阅读 · 1 评论 -
Qt Creator中无法使用OpenCV2中新函数的解决办法
按上篇文章《Qt4.8下应用OpenCV2.4.4搭建环境详细步骤(win7系统)》http://blog.youkuaiyun.com/masikkk/article/details/8693793在Qt Creator中配置了OpenCV2.4.X,但是只能使用opencv1.0的函数,opencv2中的函数,例如:imread(),Mat结构等都不能使用。找原因:(1)看头文件有没有问题原创 2013-04-01 22:24:47 · 9326 阅读 · 7 评论 -
OpenCV2.4.4实现Shi-Tomasi角点检测(goodFeaturesToTrack)
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using namespace cv;using namespace std;//全局变量Mat src1, src1_gray, src2, src2_gray;原创 2013-05-28 20:13:27 · 10617 阅读 · 0 评论 -
OpenCV2.4.4 图像旋转和缩放
旋转变换公式的推导:如下图, 在2维坐标上,有一点p(x, y) , 直线op的长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) 则有s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos原创 2013-06-03 22:30:39 · 12358 阅读 · 5 评论 -
QT框架中快速应用OpenCV
和MFC比较起来,QT的信号槽机制比MFC的信号机制慢,但是因为能很好的实现跨平台,所以我在这里总结一下可能对一些人有点用。OpenCV.China论坛上有一个帖子叫做《在MFC框架中快速应用OpenCV》看了后就想结合QT写一下。0.搭建环境:OpenCV + QT 4.6我的实验是基于VS2008来做的,QT官方虽然提供了VS2008-add-in的插件,我没有用。直接下载器编转载 2013-03-30 17:01:39 · 1899 阅读 · 0 评论 -
利用OpenCV在picture控件中显示图片
(1)首先要保证OpenCV的头文件已包含进程序,并且已在工程中正确lib等文件目录。(2)添加一个picture控件(3)在对话框初始化函数(或者某按钮响应函数)中 CWnd* pwnd = GetDlgItem(图片控件的ID);//由控件ID获得控件句柄 CDC* pDC = pwnd->GetDC();//再原创 2012-07-13 15:28:14 · 2860 阅读 · 1 评论 -
Qt4.8下应用OpenCV2.4.4搭建环境详细步骤(win7系统)
今天,研究了下Qt 中如何应用OpenCV的问题。与VC6.0环境下MFC只能应用OpenCV1.0版本不同,Qt 中可以应用最新的OpenCV2.4.x版本(又一个Qt 的好处)。搭建环境:操作系统:Win7Qt版本:Qt4.8 开发环境:Qt Creator 2.4.1 Open转载 2013-03-19 21:32:19 · 3678 阅读 · 1 评论 -
图像处理中的直方图应用(通过直方图均衡化增强图像对比度)
直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin(直方图中的柱子)中。bin中的数值是从数据中计算出的特征的统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。无论如何,直方图获得的是数据分布的统计图。灰度图像的直方图的性质:(1) 直方图是一幅图像中各像素灰度出现频次的统计结果,它只反映图像中不同灰度值出现的次数,而没反映某一灰度所在的位置。也就是说,它只包含了原创 2012-08-14 17:07:47 · 16386 阅读 · 1 评论 -
基于拉普拉斯算子的图像锐化
对于求一个锐化后的像素点(sharpened_pixel),这个基于拉普拉斯算子的简单算法主要是遍历图像中的像素点,根据领域像素确定其锐化后的值计算公式:sharpened_pixel = 5 * current – left – right – up – down ;见下图:当一个运算是通过领域像素进行的时候,我们通常用一个矩阵来表示这种运算关系,也就是我们经常所说的 核 (Ke转载 2013-05-19 20:20:56 · 11969 阅读 · 0 评论 -
OpenCV混合高斯模型前景分离
运动检测的一般方法 目前,运动物体检测的问题主要分为两类,摄像机固定和摄像机运动。对于摄像机运动的运动物体检测问题,比较著名的解决方案是光流法,通过求解偏微分方程求的图像序列的光流场,从而预测摄像机的运动状态。对于摄像机固定的情形,当然也可以用光流法,但是由于光流法的复杂性,往往难以实时的计算,所以我采用高斯背景模型。因为,在摄像机固定的情况下,背景的变化是缓慢的,而且大都是光照,风等等的影转载 2012-07-30 13:20:50 · 5296 阅读 · 3 评论 -
SIFT算法原理与OpenCV源码分析6:OpenCV实现SIFT算法,特征检测器FeatureDetector
OpenCV提供FeatureDetector实现特征检测及匹配[cpp] view plaincopyclass CV_EXPORTS FeatureDetector { public: virtual ~FeatureDetector(); void detect( const Mat& image转载 2013-05-30 13:34:16 · 8025 阅读 · 8 评论 -
OpenCV直方图图像增强算法
原文地址:http://blog.youkuaiyun.com/abcjennifer/article/details/7401921本code通过直方图变换增强了图像对比度,实现了单通道图像增强。将图像灰度阈值拉伸到0-255,图像检测结果见底部Keywords: 图像增强 增强对比度 直方图变换[cpp] view plaincopyprint?int ImageS转载 2012-08-14 12:58:49 · 3940 阅读 · 0 评论 -
从摄像头获得图像的坐标原点是在左下角(OpenCV中IplImage结构中的origin成员)
以前总是不知道为什么,从摄像头录入的视频帧,显示在窗口上很正常,但是用来进行数据计算时总要先垂直翻转一下。为此,在涉及图像中坐标的计算中,出过不少错。 现在终于明白了,OpenCV中的图像结构有个很重要的成员origin,它指明了图像的原点位置,可以有两种取值:IPL_ORIGIN_TL和IPL_ORIGIN_BL,其中TL意思是:TopLeft,即左上;BL意思是:Bottom原创 2012-08-02 11:16:21 · 6217 阅读 · 2 评论 -
基于SIFT特征的全景图像拼接
主要分为以下几个步骤:(1) 读入两张图片并分别提取SIFT特征(2) 利用k-d tree和BBF算法进行特征匹配查找(3) 利用RANSAC算法筛选匹配点并计算变换矩阵(3) 图像融合SIFT算法以及RANSAC算法都是利用的RobHess的SIFT源码,前三个步骤RobHess的源码中都有自带的示例。(1) SIFT特征提取直接调用RobHess源原创 2013-07-04 21:43:18 · 48522 阅读 · 103 评论 -
OpenCV中Mat类的图像如何设置ROI
Mat类表示的图像进行ROI操作有两种方法(1)使用拷贝构造函数Mat(constMat& m, const Rect& roi ),矩形roi指定了兴趣区例如:Mat src = imread(“xx.jpg”);Mat srcROI( src, Rect(0,0,src.cols/2,src.rows/2));srcROI的数据与源图像src共享存储区,所以此后在srcROI原创 2013-06-03 21:45:57 · 44046 阅读 · 4 评论 -
OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
OpenCV中一些相关结构说明:特征点类: class KeyPoint { Point2f pt; //坐标 float size; //特征点邻域直径 float angle; //特征点的方向,值为[0,360),负值表示不使用 flo原创 2013-05-31 03:32:16 · 29876 阅读 · 33 评论 -
OpenCV2.4.4 图像仿射变换
#include#include#includeusing namespace std;using namespace cv;int main(){ Mat src = imread("pic3.png"); Mat dst_warp,dst_warpRotateScale; Point2f srcPoints[3];//原图中的三点 Point2f原创 2013-06-04 10:34:08 · 3783 阅读 · 0 评论 -
OpenCV imshow()之后没有waitKey()无法显示图像
OpenCV imshow()之后没有waitKey()无法显示图像原创 2013-11-10 15:58:18 · 14227 阅读 · 1 评论