![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv图像知识
文章平均质量分 72
liulina603
治疗对未来焦虑的良药就在今天你自己的所为
展开
-
OpenCV坐标体系的初步认识
实验基础 本次实验通过一个简短的例子,主要来说明下面4个问题: 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。(虽然网上有学着说OpenCV中有些数据结构的坐标原点是在图片的左下角,但是我暂时还没碰到过)。 2. 在使用image.at(x1, x2)来访问转载 2013-07-19 09:20:16 · 27814 阅读 · 8 评论 -
计算机视觉(图像处理)相关的比较全面的好网站
计算机视觉在生活和工业应用等领域越来越广泛。在科学研究中,常常需要借鉴和参考巨人的IDEA和资料,这里总结了一些常用的网站供大家参考,世界很大,这只是小部分。如果你有什么补充,发email给我,补充。http://www.bernardotti.it/ http://www.ohloh.net/tags/recognitionhttp://www.diphernet.com/h转载 2013-07-22 08:35:10 · 5557 阅读 · 3 评论 -
读取YU12文件中的Y分量内容,并一桢一桢的保存下来
FILE *fp = fopen("E:\\aa.yv12","rb"); unsigned char * pBuffer = new unsigned char [704*576]; int len = 0; int i = 0; CString str; IplImage *pIplImage=cvCreateImage(cvSize(704,576),IPL_DEPT原创 2013-09-18 16:09:34 · 1382 阅读 · 0 评论 -
图像处理与识别学习小结
图像处理与识别学习小结 数字图像处理是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。此外,基于光学理论的处理方法依然占有重要的地位。 数字图像处理是信号处理的子类, 另外与计算机科学、人工智能等领域也有密切的关系。 传统的一维信号处理的方法和概念很多仍然可以转载 2013-03-25 11:07:15 · 33181 阅读 · 0 评论 -
cvNormalize函数
Normalize根据某种范数或者数值范围归一化数组.void cvNormalize( const CvArr* src, CvArr* dst,double a=1, double b=0, int norm_type=CV_L2,const CvArr* mask=NULL );src输入数组dst输出数组,支持原地运算a输出数组的最小/最大值或者转载 2012-10-29 09:05:51 · 4719 阅读 · 4 评论 -
HeapAlloc与malloc的区别
malloc是在CRT的内存堆上分配的,这个堆的存在一般来说你是不会关心的HeapAlloc则不同,你需要给它指定你想从哪个堆上分配,而这个堆是从HeapCreate创建出来的HeapAlloc大多是用于自己管理堆的情况malloc可以移植是因为在不同的操作系统上有各自的实现,而所有平台上就叫这个名字。比如在Widnows上,VC中调用malloc时,其实在malloc内部就是通过原创 2014-01-08 09:23:45 · 17901 阅读 · 5 评论 -
RbgtoHsi
// RbgtoHsi.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include #include int miny(int a, int b, int c);转载 2014-01-28 15:08:17 · 1158 阅读 · 0 评论 -
关于二值化函数cvAdaptiveThreshold和cvThreshold的一些发现
1、函数cvAdaptiveThreshold的确可以将灰度图像二值化,但它的主要功能应该是边缘提取,并且参数param1主要是用来控制边缘的类型和粗细的,这些在软件自带的参考手册中均未提及。cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int adaptive_method CV_DEFAULT(原创 2013-10-12 10:06:02 · 6393 阅读 · 2 评论 -
OpenCV - Mat、CvMat、IplImage类型浅析
OpenCV中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage。 一、Mat类型:矩阵类型,Matrix。 在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。 Mat有3个重要的方法: 1、Mat mat = imread(const String* filename转载 2012-11-08 16:48:32 · 1269 阅读 · 0 评论 -
【OpenCV入门教程之二】 OpenCV 2.4.8组件结构全解析
我们进入到D:\ProgramFiles\opencv\build\include目录,可以看到有opencv和opencv2这两个文件夹。显然,opencv这个文件夹里面包含着旧版的头文件。而opencv2这个文件夹里面包含着具有时代意义的新版OpenCV2系列的头文件。 在opencv这个文件夹里面,也就是D:\Program Files\opencv\build\in转载 2015-01-23 13:02:40 · 2061 阅读 · 0 评论 -
opencv 2.0以上版本 图像的载入,显示和输出
这篇文章中,我们主要来详细看一看入门OpenCV2最基本的问题,那就图像的载入,显示和输出。 一、开胃菜之一 • 关于OpenCV的命名空间 OpenCV中的C++类和函数都是定义在命名空间cv之内的,有两种方法可以访问。第一种是,在代码开头的适当位置,加上usingnamespace cv;这句。另外一种是在使用OpenCV类和转载 2015-01-23 13:19:45 · 3225 阅读 · 1 评论 -
OpenCV-----分离颜色通道 & 多通道图像混合
一、分离颜色通道就让我们来详细介绍一下这两个互为冤家的函数。首先是进行通道分离的split函数。split函数详解将一个多通道数组分离成几个单通道数组。ps:这里的array按语境译为数组或者阵列。 这个split函数的C++版本有两个原型,他们分别是: [cpp] view转载 2015-01-23 14:24:40 · 3535 阅读 · 1 评论 -
OpenCV------创建Trackbar & 图像对比度、亮度值调整
这篇文章中我们一起学习了如何在OpenCV中用createTrackbar函数创建和使用轨迹条,以及图像对比度、亮度值的动态调整。文章首先详细讲解了OpenCV2.0中的新版创建轨迹条的函数createTrackbar,并给上一个详细注释的示例。然后讲解图像的对比度、亮度值调整的细节,最后放出了一个利用createTrackbar函数创建轨迹条来辅助进行图像对比度、亮度值调整的程序转载 2015-01-23 14:31:42 · 2038 阅读 · 0 评论 -
xml文件转换
opencv 中将级联分类器数据存储为xml文件,读取时非常复杂,为了降低复杂度我将haar分类器数据按最简单的格式存储,只包含纯的数据,不含任何其它冗余信息存储的顺序就是按cascade结构体中个成员的定义顺序来存储的。具体的存储代码: int SaveCascade(CvHaarClassifierCascade *cascade)函数// testtest.cpp :原创 2015-08-11 14:40:12 · 3092 阅读 · 2 评论 -
OpenCV2.0 ——PCA算法实现core
PCA(principal component analysis,主成分分析),又称为k-l变换,我想是大家用的最多的降维手段,对于PCA的理解,我想大神们都各有各的绝招,可以应用的场合也非常多。下面就介绍一下OpenCV中PCA这个类,因为常用,所以这个类相对OpenCV而言显得比较独立,放在了core这部分中。PCA类的成员函数包括构造函数、运算符重载()、project、backProj转载 2012-11-08 10:08:20 · 4433 阅读 · 0 评论 -
(六)计算机视觉的知识、CamShitf算法、运动分析和物体跟踪Video
1、先简单回顾一下计算机视觉的知识。这里研究生的摄像机模型都是针孔摄像机,摄像机的标定问题是CV领域的一个入门级的问题,初学摄像机标定时会被各种坐标系弄晕,这里再介绍一下,常提到的坐标系有四个:世界坐标系(Ow,以空间一点为原点)、摄像机坐标系(Oc以小孔即光心为原点)、图像物理坐标系(O1以像平面中心为原点)、图像像素坐标系(O以像平面左下角为原点)。这样再看相关资料的时候就不会混了吧,这里转载 2012-11-08 14:06:02 · 6088 阅读 · 1 评论 -
(十二)opencv开发的一点经验
学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那里演示一下,一定要选择静态库使用mfc,而不是选择动态链接库,否则在人家电脑里没有对应的dll文件,是无法运行起来的。可见老师在这方面吃过亏啊。昨天用OpenCV写了个东西,发过去让人家测试,可人家告诉我:“你这土鳖程序在我这无法运行“,好囧啊。这里把我的解决过程记录一下。希望能对大家遇到类似的问题有所帮助。转载 2012-11-08 14:21:34 · 6320 阅读 · 0 评论 -
(九)OpenCV精髓部分
这部分内容应该是OpenCV高深精髓的一部分。给OpenCV插上了翅膀,可以使它实现更强大的功能,而不是简单的做一些基本的图像处理。文采太差,就不描绘machine learning的强大了。直接剖析之。大部分的分类器和识别的算法都封装在了c++的类中。有些类有一些共同的基础,都被定义在CvStatModel类中了。那就先介绍这个统计模型类CvStatModel,它是机器学习统计模转载 2012-11-08 14:13:05 · 1699 阅读 · 0 评论 -
(四)opencv 核滤波器、直方图相关的类
1、先介绍几个最基本的核滤波器相关的类2D图像滤波器基础类BaseFilter:dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相关的调用函数为getLinearFilter、getMorphologyFilter单行核滤波器基础类B转载 2012-11-08 13:55:08 · 2624 阅读 · 0 评论 -
(七)图像的各种变换(cvtColor*+)imgproc
1、图像的各种变换(cvtColor*+)imgprocimgproc是OpenCV一个比较复杂的lib,我是分开介绍的,之前介绍过了滤波器、直方图、结构分析和形状描述三节,这次介绍一下图像的变换,OpenCV对于图像的变换又可分为几何变换和其他的变换,我这节先介绍一下其他的变换。这部分的函数包括adaptiveThreshold,对图像进行自适应的阈值操作。相应的也有转载 2012-11-08 14:08:27 · 4751 阅读 · 0 评论 -
(五)OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用
1、OpenCV提供一个功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用,甚至不需要其他的平台。新版本的HighGUI接口包括:创建并控制窗口,该窗口可以显示图片并记录其内容为窗口添加了trackbars控件,可以方便利用鼠标进行控制而不是之前版本的只能利用键盘读写硬盘和内存的图片读取摄像头的视频、读写视频文件先来介绍UI,包转载 2012-11-08 14:01:02 · 5497 阅读 · 0 评论 -
(二)opencv2.0版本对OpenCV可是进行了大刀阔斧的改革
一、2.0版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括:core——定义了基本数据结构,包括最重要的Mat和一些其他的模块imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等video——该模块包括运动估计,背景分离,对象跟踪calib3d——基本的多视角几何算法,单个立转载 2012-11-08 13:46:34 · 4139 阅读 · 0 评论 -
(三)2.0版本对之前版本的进行了哪些修改
2.0版本对之前的OpenCV数据结构进行了大幅度的修改。但对之前版本的兼容是一个很重要的事情。这节就主要讨论这个问题首先来看一下2.0版本对之前版本的进行了哪些修改1.采用了新的数据结构Mat作为图像的容器,取代了之前的CvMat和lplImage,这个改动不是太复杂,只需适应一下新东西,而且可以自由转换view plainMat I; IplImage pI = I;转载 2012-11-08 13:49:54 · 1328 阅读 · 0 评论 -
(一)OpenCV(开源计算机视觉库介绍)
OpenCV(开源计算机视觉库介绍)OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库. 无论你是做科学研究,还是商业应用,opencv都可以作为你理想的工具库,因为,对于这两者,它完全是免费的。该库采用C及C++语言编写,可以在windows, linux, mac OSX系统上面运行。该库的所有代码都经过优化,计算效率很高,因为,它更专注于设计成为一种用于实时系统的开源库。转载 2012-11-08 13:36:47 · 16183 阅读 · 0 评论 -
OpenCV2.1之PCA、CvvImage、IplImage和CvMat的相互转化
1、PCA Class Introduction----C++ class PCA{public: // default constructor PCA(); // computes PCA for a set of vectors stored as data rows or columns. PCA(const Mat& data, cons转载 2012-11-07 16:39:23 · 2870 阅读 · 0 评论 -
OpenCV2.2.0版本的更改
12月新发布的OpenCV2.2.0在库结构上进行了较大幅度的改动。主要体现在新的模块组织形式和新的头文件形式;相对应的一些功能函数归类到了更细致的模块中。注意:我一开始下载了zip的源码包,但是发现include中opencv2内的头文件不全;暂时我不清楚为何没有拷贝,我直接选择将各个模块中的include下的opencv2中的头文件拷贝至底层include/opencv2目录下即可。虽然老转载 2012-10-30 13:27:38 · 1800 阅读 · 0 评论 -
(十三)kalman滤波
kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方差最小。具体它的原理和实现,我想也不用我在这里费口舌,但这个理论基础必须的有,必须得知道想用kalman滤波做跟踪,必须得先建立运动模型和观察模型,不是想用就能用的。如果不能建立运动模型,也就意味着你所要面对的问题不转载 2012-11-08 14:23:01 · 1411 阅读 · 0 评论 -
(十)Qt对OpenCV支持效果很好
一直对MFC对OpenCV的支持不好而耿耿于怀,了解了Qt对OpenCV支持很好,但网上这方面的资料很少。大部分的图形交互的设计都是基于OpenCV2.0之前的数据结构lpImage进行的。最近得到了一本好书《OpenCV 2 Computer Vision Application Programming Cookbook》,下载的链接为http://ishare.iask.sina.com.cn转载 2012-11-08 14:15:00 · 2132 阅读 · 0 评论 -
(八)绘图函数
在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数。OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的。这里就介绍一下相关的函数。在绘图函数中都会用到颜色,这里用Scalar结构表示颜色参数。作图相关的函数有circle、clipLine、ellipse、ellipse2Poly、line、rectangle、polylines、类LineIterator转载 2012-11-08 14:10:40 · 1323 阅读 · 0 评论 -
LoadBitmap加载位图资源、LoadImage从文件加载位图
1、LoadBitmap: 函数功能:该函数从模块的可执行文件中加载指定的位图资源。如下图:IDB_TEST 是加载好的位图图片CBitmap bitmap;if(bitmap.LoadBitmap(IDB_TEST)) { int index = m_imageList.Add(&bitmap, nullptr); bitmap.DeleteObject();原创 2017-04-11 10:42:52 · 23275 阅读 · 0 评论