OpenCV专栏
文章平均质量分 77
基于OpenCV的图像处理,基础知识,框架介绍,基于OpenCV的项目:图像处理,特征提取,机器学习,图像识别,分类,Object 检测等。
凌风探梅
这个作者很懒,什么都没留下…
展开
-
纹理对象的实时姿态估计
如今,增强现实技术是计算机视觉和机器人领域的热门研究课题之一。本文是基于ORB特征的实时纹理对象的姿态估计,匹配基于快速最近邻算法 Flann实现,姿态估计基于PnP 方法+ Ransac 实现,线性卡尔曼滤波去除错误的姿态估计。原创 2016-11-10 11:26:43 · 3548 阅读 · 5 评论 -
基于OpenCV给图片添加边框
目标:基于OpenCV的函数cv::copyMakeBorder给图像添加边框函数简介:copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );参数:src: 原图像dst: 目标图像top, bottom, left, right: 每一个边界方向上像素的宽度.在这原创 2016-11-10 08:59:21 · 7565 阅读 · 0 评论 -
基于OpenCV进行相机标定
相机已经存在了很长一段时间。 随着二十世纪末廉价针孔相机的推出,相机已经在日常生活中普及。虽然价格便宜,但是成像存在严重的畸变。不过,这些畸变是固定的形式,基于标定和重映技术可以纠正畸变。此外,基于标定,可以确定相机的自然单位(像素)和现实世界单位(例如毫米)之间的关系。理论对于畸变, OpenCV 中考虑径向和切向的因素. 对于径向的畸变因素使用如下公式:xdistorte原创 2016-11-10 10:52:54 · 4654 阅读 · 0 评论 -
OpenCV中XML文件和YAML文件的读写
OpenCV中XML文件和YAML文件的读写 代码如下:#include #include #include using namespace cv;using namespace std;static void help(char** av){ cout << endl << av[0] << " shows the usage of the O原创 2016-11-02 23:17:50 · 1527 阅读 · 0 评论 -
自定义线性滤波器
目标:使用OpenCV中的函数cv::filter2D 自定义线性滤波器。理论:卷积在一个非常普遍的意义上,卷积是一个图像的每一个部分和一个核之间的操作。什么是核?一个核实质上是一个固定大小矩阵,中心点被称为锚点,如下图所示。如何利用卷积核进行卷积 ?假设您想知道图像中某个特定位置的结果值。卷积的值以下列方式计算:1) 将核的锚点(中原创 2016-11-09 23:59:02 · 1383 阅读 · 0 评论 -
OpenCV基本的阈值操作
目的:使用OpenCV 中的函数cv::threshold实现阈值操作理论:阈值?1) 最简单的分割方法2) 应用实例:从图像中分割出我们要分析的对象区域。这种分离基于对象的像素和背景像素之间的强度的变化实现。3) 为了区分我们感兴趣的像素(which will eventually be rejected),我们将用每一个像素的值和threshold比较(依据要解原创 2016-11-09 22:25:52 · 5126 阅读 · 0 评论 -
膨胀和腐蚀之外的其他形态学变换
目的: 基于OpenCV 函数 cv::morphologyEx 实现如下形态学变换: Opening(开运算) Closing(闭运算) Morphological Gradient(形态学梯度) Top Hat(顶帽变换) Black Hat()原理Opening操作步骤原创 2016-11-08 21:17:37 · 1271 阅读 · 0 评论 -
基于形态学操作提取水平和垂直线条(五线谱中音符和乐谱线的分离)
结合自定义核,应用两个非常常见的形态学算子(例如,扩张和侵蚀),提取水平和垂直方向的线条。将会用到以下OpenCV函数: cv::erode cv::dilate cv::getStructuringElement接下里的例子是从乐谱中提取音符(五线谱中音符和乐谱线的分离)理论Morphology Operations形态学是一组图像处理操作, 基于预定义的stru原创 2016-11-08 23:11:05 · 8858 阅读 · 4 评论 -
OpenCV实现图像金字塔
目的:使用OpenCV中的函数 cv::pyrUp 和 cv::pyrDown 对给定的图像下采样和上采样(downsample 和 upsample).理论一般需要把图像的尺寸调整为和原图不一样的大小。有两种方法:Upsize(扩大) the image (zoom in) orDownsize(缩小) it (zoom out).OpenCV 中存也有一原创 2016-11-09 00:16:28 · 1935 阅读 · 0 评论 -
基于OpenCV的膨胀和腐蚀
本博客讲解形态雪中的膨胀和腐蚀操作。使用的函数为: cv::erode cv::dilate原创 2016-11-07 23:59:24 · 2382 阅读 · 0 评论 -
OpenCV实现基于傅里叶变换(FFT)的旋转文本校正(文字方向检测)
OpenCV实现基于傅里叶变换的旋转文本校正from: http://johnhany.net/2013/11/dft-based-text-rotation-correction/发布于 2013年11月25日 作者: John Hany11,222次阅读 代码 先给出代码,再详细解释一下过程:#include #include #inc转载 2016-11-03 09:57:43 · 10160 阅读 · 5 评论 -
OpenCV边缘检测专题
基于OpenCV的边缘检测的各种微分算子(Sobel,Robert,Prewitt,Laplacian,Canny)原创 2016-11-04 11:07:07 · 1788 阅读 · 0 评论 -
基于OpenCV平滑图像
基于OpenCV平滑图像也就是图像模糊,本博文介绍使用OpenCV的不同函数通过线性滤波进行图像平滑。cv::blurcv::GaussianBlur (高斯模糊)cv::medianBlur (中值模糊)cv::bilateralFilter (双边滤波)理论进行图像平滑的目的有很多,本文的目的是减少噪音。线性滤波为最常用滤波方式, 输出像素的值原创 2016-11-07 23:48:16 · 1625 阅读 · 0 评论 -
OpenCV alpha(权因子) 融合举例
基于函数cv::addWeighted实现线性融合,目标公式如下:g(x)=(1−α)f0(x)+αf1(x) 公式(1)其中g(x)为目标(结果)图像,f0(x) 和 f1(x)为两个待融合图像。α 的范围为 0→1函数:void cv::addWeighted ( InputArray src1,double alpha,InputArray src2,d原创 2016-11-02 20:20:16 · 1592 阅读 · 0 评论 -
基于OpenCV调整图像的对比度和亮度
亮度和对比度的调整原理 公式原理: new_image = a*image + beta 即 g(x)=αf(x)+β 其中,α>0 , β 通常被称为 gain 或者 bias 参数,通常这两个参数可以独立的分别控制图像的对比度和亮度。 f(x) 为原图像的像素值,g(x) 为输出图像的像素值。比较直白的表达式为:g(i,j)=α⋅f(原创 2016-11-02 20:44:23 · 4203 阅读 · 0 评论 -
OpenCV在图像上画线、矩形、椭圆、多边形、填充的多边形、圆、显示文字
OpenCV在图像上随机画直线、椭圆、多边形、圆、显示文字代码如下:/** * @file Drawing_2.cpp * @brief Simple sample code */#include #include #include #include #include using namespace cv;/// Global Variablesco原创 2016-11-02 21:11:43 · 5349 阅读 · 0 评论 -
图像的打开、修改、显示和保存示例(>OpenCV 2.0)
代码如下:#include using namespace cv;int main( int argc, char** argv ){ char* imageName = argv[1]; char* outName = argv[2]; Mat image; image = imread( imageName, 1 );//打开 if( arg原创 2016-11-01 21:58:56 · 1858 阅读 · 0 评论 -
OpenCV图像数据访问,查询表和时间消耗测试
OpenCV图像数据访问, 查询表和时间消耗测试代码示例#include #include #include "opencv2/imgcodecs.hpp"#include #include #include using namespace std;using namespace cv;static void help(){ cout原创 2016-11-01 22:45:24 · 1182 阅读 · 0 评论 -
矩阵的掩模操作(锐化举例)
矩阵的掩模操作非常简单。本文的中心思想是基于掩模矩阵(也称为内核)重新计算图像每个像素的值。此掩模矩阵的值定义了当前像素和相邻像素对新像素值进行影响的值。从数学的角度来看,基于掩模矩阵指定的值进行mask操作后再进行加权平均。具体(实现锐化效果的)描述如下:第一个是公式的形式; 第二个是基于掩模矩阵的版本。两个等价。I(i,j)=5∗I(i,j)−[I(i−1,j)+I(i+1,j)+I(i,j−1)+I(i,j+1)]⟺I(i,j原创 2016-11-01 23:26:58 · 3734 阅读 · 0 评论 -
opencv图片全景拼接详解
基本的拼接方式参见: 《opencv实现图像的拼接功能》 本博文基于取景模式讲解图像拼接。API全面基本的介绍介绍参见: opencv官网:http://docs.opencv.org/modules/stitching/doc/stitching.html在opencv源代码中stitching.cpp 是简单版图像拼接实例,参见《opencv实现图像的拼接功能》。stitching_detailed.cpp 复杂全面版图像拼接实例。原创 2016-03-23 10:47:01 · 21221 阅读 · 10 评论 -
基于摄像头使用Cascade Classifier做人脸检测的方法及例程
参考文档:http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html目标:使用CascadeClassifier(Opencv中的级联分类器)类在视频流中进行Object(例如,人脸)检测。使用的函数如下:1) load 加载一个 .xml 分类器文件. 可以是Haar分类器或者LBP分类器2) detectMultiScale 执行检测功能原创 2015-03-12 15:10:42 · 3338 阅读 · 0 评论 -
OpenCV知识和项目列表
相关项目和效果会在合适时间补充 Part I 知识列表 1 编译安装1.1 Linux 下编译安装 1)How to install OpenCV 3.x in Linux 2) Ubuntu 安装 OpenCV-nonfree 3) ubuntu 16.04 编译 opencv_contrib 3.4, nonfree 1.2 安卓下的环境配置...原创 2016-09-26 22:16:27 · 4025 阅读 · 0 评论 -
opencv实现图像的拼接功能
opencv图像拼接。 代码来自版本2.4.9 stitching.cpp "Rotation model images stitcher.\n\n" "stitching img1 img2 [...imgN]\n\n" "Flags:\n" " --try_use_gpu (yes|no)\n" " Try to use GPU. The default value is 'no'. All default valu原创 2015-09-29 15:23:20 · 8560 阅读 · 14 评论 -
How to install OpenCV 3.x in Linux
Installation in LinuxThese steps have been tested for Ubuntu 10.04 but should work with other distros as well.Required PackagesGCC 4.4.x or laterCMake 2.6 or higherGitGTK+2.x or higher原创 2016-09-04 20:13:30 · 3388 阅读 · 0 评论 -
使用OpenCV进行人脸识别的三种方法
OpenCV从版本2.4开始,加入了一个类FaceRecognizer,使用它可以方便的地进行人脸识别(源代码,在OpenCV的opencv\modules\contrib\doc\facerec\src下)。目前支持三种算法(BSD license):Eigenfaces特征脸: createEigenFaceRecognizer()Fisherfaces: createFisherFaceRecognizer()LocalBinary Patterns Histograms(局部二值直方图):c原创 2016-10-09 22:18:34 · 21922 阅读 · 1 评论 -
使用OpenCV进行人脸检测(Viola-Jones人脸检测方法)
参考文献:Paul Viola, Michael J. Jones. Robust Real-Time Face Detection[J]. International Journal of Computer Vision,2004,57(2):137-154.优点:1.积分图像(integral image)快速计算Haar-like特征。2.利用Adaboost算法进行特征选择和分类器训练,把弱分类器组合成强分类器。3.采用分类器级联提高效率。原创 2016-10-09 22:19:55 · 8240 阅读 · 1 评论 -
使用OpenCV进行人脸关键点检测
使用OpenCV进行人脸关键点检测原创 2016-10-09 22:21:55 · 5300 阅读 · 2 评论 -
OpenCV相机标定
OpenCV相机标定原创 2016-10-09 22:23:08 · 3692 阅读 · 3 评论 -
Ubuntu 安装 opencv-nonfree
Ubuntu 安装 opencv-nonfreesudo apt-get updatesudo add-apt-repository --yes ppa:xqms/opencv-nonfreesudo apt-get updatesudo apt-get install libopencv-nonfree-dev原创 2016-10-13 22:24:59 · 5900 阅读 · 2 评论 -
OpenCV 3.x Lib 源码结构简介
OpenCV 3.x 与之前版本的不同1)以C++ 风格API为主,C 风格的API 最终可能会取消。2)C++ API 更加简洁,引入很多C++面向对象的特性3) 算法都将继承自 cv::Algorithm 接口。4) 模块分类细化,意义和功能明显。源代码结构1)3rdparty/,OpenCV 依赖的第三方库,比如:ffmpeg,jpg、png、tiff等原创 2016-10-20 15:24:20 · 2199 阅读 · 0 评论 -
IplImage简介
IplImage简介。IplImage是OpenCV中CxCore部分基础的数据结构,用来表示图像,其中Ipl是Intel Image Processing Library的简写。原创 2016-10-20 16:20:57 · 6730 阅读 · 0 评论 -
OpenCV Mat 简介
OpenCV Mat 简介原创 2016-10-20 16:21:38 · 1658 阅读 · 0 评论