
OpenCV专题
文章平均质量分 77
凌风探梅
这个作者很懒,什么都没留下…
展开
-
ubuntu 16.04 编译 opencv_contrib 3.4, nonfree
由于专利原因,3.0以后,opencv中的某些功能做了默认的剔除,如果需要安装需要自己单独编译。Part I 3.0 以下版本对于低版本的比如2.4.x, ubuntu 下可以直接安装,方法如下:sudo apt-get updatesudo add-apt-repository --yes ppa:xqms/opencv-nonfreesudo apt-get update...原创 2018-09-13 16:47:22 · 1534 阅读 · 0 评论 -
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 · 2236 阅读 · 0 评论 -
OpenCV Mat 简介
OpenCV Mat 简介原创 2016-10-20 16:21:38 · 1707 阅读 · 0 评论 -
IplImage简介
IplImage简介。IplImage是OpenCV中CxCore部分基础的数据结构,用来表示图像,其中Ipl是Intel Image Processing Library的简写。原创 2016-10-20 16:20:57 · 6757 阅读 · 0 评论 -
使用OpenCV进行人脸关键点检测
使用OpenCV进行人脸关键点检测原创 2016-10-09 22:21:55 · 5331 阅读 · 2 评论 -
基于OpenCV进行相机标定
相机已经存在了很长一段时间。 随着二十世纪末廉价针孔相机的推出,相机已经在日常生活中普及。虽然价格便宜,但是成像存在严重的畸变。不过,这些畸变是固定的形式,基于标定和重映技术可以纠正畸变。此外,基于标定,可以确定相机的自然单位(像素)和现实世界单位(例如毫米)之间的关系。理论对于畸变, OpenCV 中考虑径向和切向的因素. 对于径向的畸变因素使用如下公式:xdistorte原创 2016-11-10 10:52:54 · 4690 阅读 · 0 评论 -
基于摄像头使用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 · 3375 阅读 · 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 · 4074 阅读 · 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 · 1550 阅读 · 0 评论 -
基于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 · 7595 阅读 · 0 评论 -
自定义线性滤波器
目标:使用OpenCV中的函数cv::filter2D 自定义线性滤波器。理论:卷积在一个非常普遍的意义上,卷积是一个图像的每一个部分和一个核之间的操作。什么是核?一个核实质上是一个固定大小矩阵,中心点被称为锚点,如下图所示。如何利用卷积核进行卷积 ?假设您想知道图像中某个特定位置的结果值。卷积的值以下列方式计算:1) 将核的锚点(中原创 2016-11-09 23:59:02 · 1418 阅读 · 0 评论 -
OpenCV基本的阈值操作
目的:使用OpenCV 中的函数cv::threshold实现阈值操作理论:阈值?1) 最简单的分割方法2) 应用实例:从图像中分割出我们要分析的对象区域。这种分离基于对象的像素和背景像素之间的强度的变化实现。3) 为了区分我们感兴趣的像素(which will eventually be rejected),我们将用每一个像素的值和threshold比较(依据要解原创 2016-11-09 22:25:52 · 5165 阅读 · 0 评论 -
OpenCV实现图像金字塔
目的:使用OpenCV中的函数 cv::pyrUp 和 cv::pyrDown 对给定的图像下采样和上采样(downsample 和 upsample).理论一般需要把图像的尺寸调整为和原图不一样的大小。有两种方法:Upsize(扩大) the image (zoom in) orDownsize(缩小) it (zoom out).OpenCV 中存也有一原创 2016-11-09 00:16:28 · 1952 阅读 · 0 评论 -
基于形态学操作提取水平和垂直线条(五线谱中音符和乐谱线的分离)
结合自定义核,应用两个非常常见的形态学算子(例如,扩张和侵蚀),提取水平和垂直方向的线条。将会用到以下OpenCV函数: cv::erode cv::dilate cv::getStructuringElement接下里的例子是从乐谱中提取音符(五线谱中音符和乐谱线的分离)理论Morphology Operations形态学是一组图像处理操作, 基于预定义的stru原创 2016-11-08 23:11:05 · 9027 阅读 · 4 评论 -
膨胀和腐蚀之外的其他形态学变换
目的: 基于OpenCV 函数 cv::morphologyEx 实现如下形态学变换: Opening(开运算) Closing(闭运算) Morphological Gradient(形态学梯度) Top Hat(顶帽变换) Black Hat()原理Opening操作步骤原创 2016-11-08 21:17:37 · 1297 阅读 · 0 评论 -
基于OpenCV的膨胀和腐蚀
本博客讲解形态雪中的膨胀和腐蚀操作。使用的函数为: cv::erode cv::dilate原创 2016-11-07 23:59:24 · 2401 阅读 · 0 评论 -
OpenCV 3.0又一个革命性版本,它会带来哪些改变
大体上保留了OpenCV 2经典的C++和Python编程接口风格。其中,Python接口大大增强,也加入了Python 3.x的支持。一般来说,以前版本的程序只要做少数修改,就可以使用OpenCV 3了。另外还改善了Java接口,并且加入了MATLAB支持。架构调整。图片、视频编解码从highgui模块分离出来,组成了imgcodecs和videoio。原先的OpenCL模块ocl事转载 2016-10-20 20:54:54 · 2105 阅读 · 0 评论 -
OpenCV 1.x & 2.x 编程简介(矩阵/图像/视频的基本读写操作)
OpenCV 编程简介(矩阵/图像/视频的基本读写操作)Introduction to programming with OpenCVOpenCV编程简介作者: Gady AgamDepartment of Computer ScienceJanuary 27, 2006Illinois Institute of TechnologyURL:转载 2016-10-20 21:01:04 · 1222 阅读 · 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 · 1892 阅读 · 0 评论 -
图像拼接和图像融合技术
from: OpenCV探索之路(二十四)图像拼接和图像融合技术图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。再举一个身边的例子吧,你用你的手机对某一场景拍照,但是你没有办法一次将所有你要拍的景物全部拍下来,所以你对该场景从左往右依次拍了好几张图,来把你要拍的所有景物转载 2017-11-26 12:33:15 · 4540 阅读 · 2 评论 -
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 · 21400 阅读 · 10 评论 -
使用OpenCV开发机器视觉项目
每过几天就去看看OpenCV.org的更新,今天突然发现了一个有趣的东西。http://opencv.org/mastering-opencv-with-practical-computer-vision-projects.html。弄opencv的人出版了一个Mastering OpenCV with Practical Computer Vision Projects的书,也就是用Open转载 2017-08-03 13:25:21 · 7699 阅读 · 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 · 10305 阅读 · 5 评论 -
纹理对象的实时姿态估计
如今,增强现实技术是计算机视觉和机器人领域的热门研究课题之一。本文是基于ORB特征的实时纹理对象的姿态估计,匹配基于快速最近邻算法 Flann实现,姿态估计基于PnP 方法+ Ransac 实现,线性卡尔曼滤波去除错误的姿态估计。原创 2016-11-10 11:26:43 · 3588 阅读 · 5 评论 -
opencv-视频处理-实时的前景检测-Vibe算法
vibe算法是一种像素级的前景检测算法,实时性高,内存占有率低,前景检测准确率高。但是会出现“鬼影”,当然基于对鬼影的处理,也会有相应的对vibe算法的改进。把下面三篇文章看明白,基本就会掌握vibe算法的过程:《 ViBe: a powerful random technique to estimate the background in video sequences》《Backg转载 2017-02-13 11:29:39 · 2617 阅读 · 0 评论 -
A guide to connecting Matlab with OpenCV
A guide to connecting Matlab with OpenCVfrom: https://sites.google.com/site/georgeevangelidis/matlab_opencvThis webpage provides a short guide to connecting Matlab wi转载 2017-01-10 12:56:27 · 1072 阅读 · 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 · 8627 阅读 · 14 评论 -
Camera Calibration and 3D Reconstruction(opencv 2.4)
Camera Calibration and 3D Reconstruction¶The functions in this section use a so-called pinhole camera model. In this model, a scene view is formed by projecting 3D points into the image plane using转载 2016-12-21 15:53:59 · 4522 阅读 · 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 · 1642 阅读 · 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 · 4237 阅读 · 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 · 5375 阅读 · 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 · 1210 阅读 · 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 · 3777 阅读 · 0 评论 -
基于OpenCV平滑图像
基于OpenCV平滑图像也就是图像模糊,本博文介绍使用OpenCV的不同函数通过线性滤波进行图像平滑。cv::blurcv::GaussianBlur (高斯模糊)cv::medianBlur (中值模糊)cv::bilateralFilter (双边滤波)理论进行图像平滑的目的有很多,本文的目的是减少噪音。线性滤波为最常用滤波方式, 输出像素的值原创 2016-11-07 23:48:16 · 1643 阅读 · 0 评论 -
双目视觉简介
from: http://blog.sina.com.cn/s/blog_4a540be60102v44s.html1. 双目视觉算法简介1.1. 双目视觉简介双目视觉广泛应用在机器人导航,精密工业测量、物体识别、虚拟现实、场景重建,勘测领域。什么是双目视觉?双目视觉是模拟人类视觉原理,使用计算机被动感知距离的方法。从两个或者多个点观察一个物体,获取在不同视角下的图像,根据转载 2016-10-16 00:36:18 · 4847 阅读 · 0 评论 -
OpenCV相机标定
from: OpenCV相机标定相机标定是图像处理的基础,虽然相机使用的是小孔成像模型,但是由于小孔的透光非常有限,所以需要使用透镜聚焦足够多的光线。在使用的过程中,需要知道相机的焦距、成像中心以及倾斜因子(matlab的模型有考虑,实际中这个因子很小,也可以不考虑)。为了增加光照使用了透镜,而使用透镜的代价是会产生畸变,现在市面上买到的相机,都存在着或多或少的畸变。畸变的种类比较多,这里介绍转载 2016-10-16 00:05:37 · 1236 阅读 · 0 评论 -
OpenCV在ARM上的移植
OpenCV在ARM上的移植与X86 Linux类似,请参考: Linux 下编译安装OpenCV 本文在此基础上进行进一步操作。网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错,我的方法是尽可能的利用现成的工具,尽量图形化界面配置操作,方便编译配置。软硬件环境宿主机:Ubuntu 12.04 32bit开发板:OK转载 2016-06-01 09:36:32 · 1718 阅读 · 0 评论 -
OpenCV实现USM锐化
OpenCV实现USM锐化【转】http://www.programdevelop.com/4964391/USM (Unsharp masking) is a common operation of image processing. From the Internet search a bit, there are basically three different ways.转载 2016-04-22 16:01:00 · 4146 阅读 · 1 评论 -
眨眼检测
http://blog.youkuaiyun.com/kastolo/article/details/14111901眨眼检测算法有很多种,但准确率都有很大提高空间。此摘录几种简单的判断方法:一:基于阀值的http://www.cpe.ku.ac.th/~jeab/papers/chinnawat_JCSSE2009.pdf当眼完全闭上时、需要更高的阀值才能找到一个联通转载 2016-04-21 10:31:10 · 6477 阅读 · 0 评论 -
kalman 滤波 演示与opencv代码
在机器视觉中追踪时常会用到预测算法,kalman是你一定知道的。它可以用来预测各种状态,比如说位置,速度等。关于它的理论有很多很好的文献可以参考。opencv给出了kalman filter的一个实现,而且有范例,但估计不少人对它的使用并不清楚,因为我也是其中一个。本文的应用是对二维坐标进行预测和平滑 使用方法:1、初始化const int stateNum=4;/转载 2016-04-21 10:28:07 · 1508 阅读 · 0 评论