Opencv学习笔记
文章平均质量分 83
仗剑走海角
豪爽!乐观开朗!
展开
-
精确检测角点函数cvFindCornerSubPix的demo
转载自:http://blog.csdn.net/moc062066/article/details/6634961cvFindCornerSubPix利用cvGoodFeaturesToTrack检测出来的角点的基础上,能够将角点位置精确到亚像素级精度。cvGoodFeaturesToTrack的使用可以参考这里。[cpp] view plai转载 2014-03-14 10:26:17 · 5767 阅读 · 1 评论 -
腐蚀与膨胀(Eroding and Dilating)
目标本文档尝试解答如下问题:如何使用OpenCV提供的两种最基本的形态学操作,腐蚀与膨胀( Erosion 与 Dilation):erodedilate原理Note 以下内容来自于Bradski和Kaehler的大作: Learning OpenCV .形态学操作简单来讲,形态学操作就是基于形状的一系列图像处原创 2014-03-25 21:25:28 · 1578 阅读 · 0 评论 -
离散傅立叶变换——opencv实现
目标本文档尝试解答如下问题:什么是傅立叶变换及其应用?如何使用OpenCV提供的傅立叶变换?相关函数的使用,如: copyMakeBorder(), merge(), dft(), getOptimalDFTSize(), log() 和 normalize() .源码你可以 从此处下载源码 或者通过OpenCV源码库文件samples/cpp/tutori原创 2014-03-24 19:35:36 · 5006 阅读 · 0 评论 -
Sobel 导数
目标本文档尝试解答如下问题:如何使用OpenCV函数 Sobel 对图像求导。如何使用OpenCV函数 Scharr 更准确地计算 核的导数。原理Note 以下内容来自于Bradski和Kaehler的大作: Learning OpenCV .上面两节我们已经学习了卷积操作。一个最重要的卷积运算就是导数的计算(或者近似计算)原创 2014-03-25 21:32:13 · 1124 阅读 · 0 评论 -
计算轮廓矩
目标在这节教程中您将学到:使用OpenCV函数 moments 计算图像所有的矩(最高到3阶)使用OpenCV函数 contourArea 来计算轮廓面积使用OpenCV函数 arcLength 来计算轮廓或曲线长度原理代码下面是本节教程源码. 你也可以从 这里 下载.#include "opencv2/highgui/highg原创 2014-03-25 22:00:36 · 2022 阅读 · 0 评论 -
使用二维特征点(Features2D)和单映射(Homography)寻找已知物体
目标在本教程中我们将涉及以下内容:使用函数 findHomography 寻找匹配上的关键点的变换。使用函数 perspectiveTransform 来映射点.理论代码这个教程的源代码如下所示。你还可以从 以下链接下载到源代码#include #include #include "opencv2/core/core.hpp"原创 2014-03-25 22:09:20 · 1583 阅读 · 0 评论 -
实现自己的线性滤波器
目的本篇教程中,我们将学到:用OpenCV函数 filter2D 创建自己的线性滤波器。原理Note 以下解释节选自Bradski and Kaehler所著 Learning OpenCV 。卷积高度概括地说,卷积是在每一个图像块与某个算子(核)之间进行的运算。核是什么?核说白了就是一个固定大小的数值原创 2014-03-25 21:29:25 · 745 阅读 · 0 评论 -
Canny 边缘检测
目标本文档尝试解答如下问题:使用OpenCV函数 Canny 检测边缘.原理Canny 边缘检测算法 是 John F. Canny 于 1986年开发出来的一个多级边缘检测算法,也被很多人认为是边缘检测的 最优算法, 最优边缘检测的三个主要评价标准是:低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。高定位性: 标识出的原创 2014-03-25 21:53:37 · 1052 阅读 · 0 评论 -
创建包围轮廓的矩形和圆形边界框
目标在这节教程中您将学到:使用OpenCV函数 boundingRect 来计算包围轮廓的矩形框.使用OpenCV函数 minEnclosingCircle 来计算完全包围已有轮廓最小圆.原理代码下面是本节教程源码. 你也可以从 这里 下载.#include "opencv2/highgui/highgui.hpp"#inclu原创 2014-03-25 21:59:22 · 1681 阅读 · 0 评论 -
直方图对比
目标本文档尝试解答如下问题:如何使用OpenCV函数 compareHist 产生一个表达两个直方图的相似度的数值。如何使用不同的对比标准来对直方图进行比较。原理要比较两个直方图( and ), 首先必须要选择一个衡量直方图相似度的 对比标准 () 。OpenCV 函数 compareHist 执行了具体的直方图对比的任务。该函数原创 2014-03-25 21:55:54 · 4183 阅读 · 3 评论 -
在图像中寻找轮廓
目标在这个教程中你将学到如何:使用OpenCV函数 findContours使用OpenCV函数 drawContours原理例程教程的代码在下面给出. 你也可以从 这里 下载#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"原创 2014-03-25 21:57:19 · 1193 阅读 · 0 评论 -
用OpenCV创建视频
目标你可能已经不满足于读取视频,还想要将你产生的一系列结果保存到一个新建的视频文件中。使用OpenCV中的 VideoWriter 类就可以简单的完成创建视频的工作。在接下来的教程中,我们将告诉你:如何用OpenCV创建一个视频文件用OpenCV能创建什么样的视频文件如何释放视频文件当中的某个颜色通道为了使例子简单,我就仅仅释放原始视频RGB通道中的一个,并把它放入新视频文原创 2014-03-25 22:02:50 · 1819 阅读 · 0 评论 -
图像处理中数据归一化
在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。即该函数在(-∞,+∞)的积分为1例如概率中的密度函数就满足归一化条件归一化函数举例:线性函数转换如下y=(x-MinValue)/(MaxValue-MinValue)说明:x、y分别为转换前、后的值,MaxValu原创 2014-04-23 11:01:37 · 5136 阅读 · 0 评论 -
Opencv函数总结
用到的一些函数,今后方便查询。(本文将不断更新) cvPyrDown函数:缩放图像为源图像的一半void cvPyrDown(const CvArr*src,CvArr*dst,int filter=CV_GAUSSIAN_5x5);参数:src 输入图像。dst 输出图像,其宽度和高度应是输入图像的一半。filter 卷积滤波器类型,目前仅转载 2014-05-14 19:03:00 · 979 阅读 · 0 评论 -
VS2008+MFC+opencv 显示视频图像/捕捉摄像头视频界面
转载:http://blog.csdn.net/chenyusiyuan/article/details/4744097原始版本下载页面(仅显示图像): http://download.csdn.net/source/1779188 P.S.:后面又添加了播放视频和捕获摄像头画面的功能,其中播放视频的功能只有 'Play' 和 'Stop',不能实现暂停,《转载 2014-05-17 10:49:35 · 9199 阅读 · 2 评论 -
光流法与opencv实现
转贴请注明:http://blog.csdn.net/crzy_sparrow/article/details/7407604转载 2014-05-13 16:00:10 · 3494 阅读 · 1 评论 -
学习OpenCV——PCA主成分分析
机器学习方面的降维讲解(PCA原理,奇异值分解):http://blog.csdn.net/abcjennifer/article/details/8002329 在图形识别方面,主成分分析(Principal Comonents Analysis,PCA)算是比较快速而且又准确的方式之一,它可以对抗图形平移旋转的事件发生,并且藉由主要特征(主成分)投影过后的数据做数据的比对,在多转载 2014-06-26 13:28:39 · 1585 阅读 · 0 评论 -
混合高斯背景模型及opencv实现
一、理论混合高斯背景建模是基于像素样本统计信息的背景表示方法,利用像素在较长时间内大量样本值的概率密度等统计信息(如模式数量、每个模式的均值和标准差)表示背景,然后使用统计差分(如3σ原则)进行目标像素判断,可以对复杂动态背景进行建模,计算量较大。在混合高斯背景模型中,认为像素之间的颜色信息互不相关,对各像素点的处理都是相互独立的。对于视频图像中的每一个像素点,其值在序列图像中的变原创 2014-12-09 17:20:45 · 23316 阅读 · 4 评论 -
Opencv2.3.1与Opencv 1.0 同时使用
目的对于OpenCV的开发团队来说,持续稳定地提高代码库非常重要。我们一直在思考如何在使其易用的同时保持灵活性。新的C++接口即为此而来。尽管如此,向下兼容仍然十分重要。我们并不想打断你基于早期OpenCV库的开发。因此,我们添加了一些函数来处理这种情况。在以下内容中你将学到:相比第一个版本,第二版的OpenCV在用法上有何改变如何在一幅图像中加入高斯噪声什么事查找表及如何使用原创 2014-03-25 17:32:27 · 3503 阅读 · 1 评论 -
直方图均衡化
目标在这个教程中你将学到:什么是图像的直方图和为什么图像的直方图很有用用OpenCV函数 equalizeHist 对图像进行直方图均衡化原理图像的直方图是什么?直方图是图像中像素强度分布的图形表达方式.它统计了每一个强度值所具有的像素个数.直方图均衡化是什么?直方图均衡化是通过拉伸像素强度分布范围来增强图原创 2014-03-25 21:54:42 · 1251 阅读 · 0 评论 -
GPU上的相似度检测(PNSR 和 SSIM)
学习目标在 OpenCV的视频输入和相似度测量 教程中我们已经学习了检测两幅图像相似度的两种方法:PSNR和SSIM。正如我们所看到的,执行这些算法需要相当长的计算时间,其中SSIM(结构相似度)的算法代价相当高昂。然而,OpenCV现在支持Nvidia的CUDA加速,如果你有一块支持CUDA的的Nvidia显卡。您可以将算法改为使用GPU计算从而大幅提高效率。本教程将提供一个很好的示例来原创 2014-03-25 22:16:16 · 2973 阅读 · 1 评论 -
CV codes代码分类整理合集
CV codes代码分类整理合集(http://www.sigvc.org/bbs/thread-72-1-1.html)一、特征提取Feature Extraction: SIFT [1] [Demo program][SIFT Library] [VLFeat] PCA-SIFT [2] [Project] Affine-SIFT [3] [Project]转载 2013-12-25 22:41:40 · 6860 阅读 · 0 评论 -
cvGoodFeaturesToTrack()与goodFeaturesToTrack()进行harris角点检测
1、角点检测函数和参数说明cvGoodFeaturesToTrack()函数主要是处理IplImage数据格式的图像,而goodFeaturesToTrack()函数主要是处理Mat数据格式的图像。参数quality_level :特征值最大值最小值乘法因子;参数minDistance:角点之间最小距离;均对图像中harris角点检测的个数有影响。2、具体代码如下(1)harris角点原创 2014-03-14 15:24:40 · 12478 阅读 · 0 评论 -
PCA算法与Opencv实现
转载: http://blog.sina.com.cn/s/blog_4b9b714a0100hc8o.html对于PCA,一直都是有个概念,没有实际使用过,今天终于实际使用了一把,发现PCA还是挺神奇的。在OPENCV中使用PCA非常简单,只要几条语句就可以了。1、初始化数据//每一行表示一个样本CvMat* pData = cvCreateMat(原创 2014-03-18 10:46:30 · 2310 阅读 · 0 评论 -
CvMat、Mat、IplImage之间的转换详解及实例
转载:http://blog.csdn.net/liulina603/article/details/11800623OpenCV学习之CvMat的用法详解及实例 CvMat是OpenCV比较基础的函数。初学者应该掌握并熟练应用。但是我认为计算机专业学习的方法是,不断的总结并且提炼,同时还要做大量的实践,如编码,才能记忆深刻,体会深刻,从而引导自己想更高层次迈进。1.初始转载 2014-03-18 10:06:28 · 1232 阅读 · 0 评论 -
cvSVM及trainSVM参数详解
CvSVM 支持矢量机class CvSVM : public CvStatModel //继承自基类CvStatModel{public: // SVM type enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };//SVC是SVM分类器,S原创 2014-03-18 15:39:53 · 17636 阅读 · 0 评论 -
将视频文件转化为图片——批量读写图像
1、AVItoImage实现在图像处理中经常需要将视频文件转化为图片文件格式,以便于我们一帧一帧地分析图像,得到我们需要的有用信息。以下程序实现以上功能,VC6.0平台,采用opencv1.0库。#include "cv.h"#include "highgui.h"#include #include #include using namespace std;char ima原创 2014-03-18 20:15:59 · 2280 阅读 · 0 评论 -
归一化图像
在做样本训练的时候,常常会遇到归一化图像的情况,在训练之前需要将正负样本归一化为统一的尺寸大小,以便在训练的时候提高效率。以下是归一化的代码:#include "cv.h"#include "highgui.h"#include #include #include using namespace std;#define NUM 837int main(){ char fi原创 2014-03-18 23:17:33 · 6230 阅读 · 2 评论 -
OpenCV如何扫描图像、利用查找表和计时
目的我们将探索以下问题的答案:如何遍历图像中的每一个像素?OpenCV的矩阵值是如何存储的?如何测试我们所实现算法的性能?查找表是什么?为什么要用它?测试用例这里我们测试的,是一种简单的颜色缩减方法。如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值。但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六百原创 2014-03-23 22:44:02 · 1138 阅读 · 1 评论 -
共享收集的图像处理方面的一些资源和网站
首先,共享在软件编写过程访问和收集到的一些与图像或优化有关的网站和博客。 http://blog.csdn.net/housisong/category/325273.aspx 图像处理的相关技术博客 http://www.cnblogs.com/xiaotie/category/145078.html 图像处理的转载 2014-04-01 14:26:27 · 1225 阅读 · 1 评论 -
opencv中计算程序运行时间
Opencv1.0中时间频率为us,故在计算时注意与2.0以上版本的区别。能运行的例子如下: double t=(double)cvGetTickCount(); MaxEntropy(dst, segImage); t=((double)cvGetTickCount() - t)/(cvGetTickFrequency()*1000); cout 该例子为统计最原创 2014-03-31 20:36:42 · 6644 阅读 · 1 评论 -
Opencv 直方图使用
OpenCV直方图的使用目录(?)[+]主要涉及两个函数:CvHistogramcvCalcHist[cpp] view plaincopy#include #include #include int main() { int hist_size[]={16,16,16}; float range[]={0,255}转载 2014-04-01 14:29:52 · 3806 阅读 · 0 评论 -
Mat - 基本图像容器
目的从真实世界中获取数字图像有很多方法,比如数码相机、扫描仪、CT或者磁共振成像。无论哪种方法,我们(人类)看到的是图像,而让数字设备来“看“的时候,则是在记录图像中的每一个点的数值。比如上面的图像,在标出的镜子区域中你见到的只是一个矩阵,该矩阵包含了所有像素点的强度值。如何获取并存储这些像素值由我们的需求而定,最终在计算机世界里所有图像都可以简化为数值矩以及矩阵信息。作为一个计算机视原创 2014-03-23 17:02:48 · 811 阅读 · 0 评论 -
矩阵的掩码操作
矩阵的掩码操作矩阵的掩码操作很简单。其思想是:根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。测试用例思考一下图像对比度增强的问题。我们可以对图像的每个像素应用下面的公式:上面那种表达法是公式的形式,而下面那种是原创 2014-03-24 15:08:47 · 877 阅读 · 0 评论 -
使用OpenCV对两幅图像求和(求混合(blending))
目的在这节教程中您将学到线性混合 (linear blending) 是什么以及有什么用处.如何使用 addWeighted 进行两幅图像求和原理Note 以下解释基于Richard Szeliski所著 Computer Vision: Algorithms and Applications在前面的教程中,我们已经了解一点 像素原创 2014-03-24 16:01:00 · 1103 阅读 · 0 评论 -
改变图像的对比度和亮度
目的本篇教程中,你将学到:访问像素值用0初始化矩阵saturate_cast 是做什么用的,以及它为什么有用一些有关像素变换的精彩内容原理Note 以下解释节选自Richard Szeliski所著 Computer Vision: Algorithms and Applications图像处理一般来说,图像处原创 2014-03-24 16:28:26 · 2854 阅读 · 0 评论 -
形态学变换
目标本文档尝试解答如下问题:如何使用OpenCV函数 morphologyEx 进行形态学操作:开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat)原理Note 以下内容来自于Bradski和Kaehler的大作 Learn原创 2014-03-25 21:26:42 · 1000 阅读 · 0 评论 -
基本的阈值操作
目标:本节简介:OpenCV中的阈值(threshold)函数: threshold 的运用。基本理论:注意:本节的解释出自Bradski与Kaehler的书籍 Learning OpenCV 。什么是阈值?最简单的图像分割的方法。应用举例:从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体)原创 2014-03-25 21:28:01 · 1767 阅读 · 0 评论 -
金字塔上采样和下采样原理、区别及opencv实现
图像金字塔图像金字塔是通过将原始图像经过平滑、下采样所生成一系列具有不同分辨率的图像的集合。金字塔结构(Pyramid)适于多分辨率处理的一种图像存储数据结构。最常用的生成图像金字塔的方法是采用高斯函数平滑图像,每次将分辨率降低为原来的一半,由此得到一个图像序列{ML,ML-1,……,M0},图像金字塔的存储量为N^2*(1+1/4+1/16+...)=(4*N^2)/3。原创 2014-12-11 17:06:59 · 15493 阅读 · 0 评论