![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
poiiy333
这个作者很懒,什么都没留下…
展开
-
opencv中的矩阵解释,包括CvMat IplImage 、MAT 类型之间的转化
真实世界中获取数字图像有很多方法,比如数码相机、扫描仪、CT或者磁共振成像。无论哪种方法,我们(人类)看到的是图像,而让数字设备来“看“的时候,则是在记录图像中的每一个点的数值。图像,在标出的镜子区域中你见到的只是一个矩阵,该矩阵包含了所有像素点的强度值。如何获取并存储这些像素值由我们的需求而定,最终在计算机世界里所有图像都可以简化为数值矩以及矩阵信息。IplImage Ip原创 2013-05-13 14:20:08 · 1357 阅读 · 0 评论 -
在VS中通过MFC图片控件显示视频
在opencv2.0以上版本之后,就没有对CvvImage类的使用,所以在有VS编程实现MFC显示视频或者图像时候,必须找到CvvImage类头文件,以及源文件加入到编程的文件中,并且添加到工程中去。之后便可以使用CvvImage类了。下面是CvvImage.h#pragma once#ifndef CVVIMAGE_CLASS_DEF#define CVVIMAGE_CLASS_DEF原创 2013-05-13 14:33:50 · 3345 阅读 · 0 评论 -
opencv学习心得(一)鼠标响应事件绘制轮廓
//#include "gaosi.h"#include #include #include using namespace cv;using namespace std;//声明全局变量/******************************鼠标选取矩形框变量初始化*******************/CvRect rect;//矩形框CvPoint origin;/原创 2013-05-13 21:16:52 · 1282 阅读 · 0 评论 -
卡尔曼滤波学习
1、 什么是卡尔曼滤波器(What is the Kalman Filter?)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获原创 2013-05-13 21:34:46 · 1498 阅读 · 0 评论 -
颜色直方图
转自:http://baike.baidu.com/view/2438797.htm颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。直方图中的数值都是统计而来,描述了该图像中关于颜色的数量特征,可以反映图像颜色的统计分布转载 2013-05-13 21:46:42 · 7900 阅读 · 0 评论 -
CamShift+Kalman跟踪[转载]
// CamShift+Kalman.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//#include #include #include #include //*************************************//调整矩形框B,使其在A的范围CvRect my_ChangeRect(CvRe转载 2013-05-14 09:12:51 · 6172 阅读 · 5 评论 -
Oopencv学习心得(二)——绘制直方图
在图像处理中我们会常常遇到绘制直方图,其中包括颜色直方图、梯度直方图。直方图广泛应用与许多计算机视觉应用中,通过标记帧与帧之间的边缘和颜色的统计变化,直方图用于检测场景变化。通过对每个兴趣点设置一个有相近特征的直方图作为标记,用以确定图像中的兴趣点。简单说来,直方图就是对数据进行统计,将统计值组织到之前组织好一系列的bin中。bin的分配自己设定,其中bin中的数值为从数据中计算出的特征统计量,直原创 2013-05-15 15:18:02 · 1320 阅读 · 0 评论 -
opencv学习心得(三)——opencv中经常用的的函数解释
InRangeS检查数组元素是否在两个数量之间 void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst );src 第一个原数组 lower 包括进的下边界. upper 不包括进的上边界 dst 输出数组必须是 8u 或 8s 类型. 函数 cv原创 2013-05-15 15:20:38 · 1011 阅读 · 0 评论 -
opencv学习心得(四)——opencv提取截获图像
首先确定选区区域,这里利用鼠标选取区域具体操作看opencv学习心得(一)。下面就是从感兴趣区域选取图像。第一:创建图像空间,大小与rect相同。第二:利用setroi选取区域。第三:一定要复制图像。之后就是显示,很简单。上代码:IplImage *dst=cvCreateImage(cvSize(rect.width,rect.height),8,3);cvSetIm原创 2013-05-13 14:09:48 · 2199 阅读 · 0 评论 -
如何用摄像头来测距(opencv)
最近一直忙着找工作,blog都长草了,今天把以前作的一个东西放上来充充门面吧。记得在哪看到过老外做的这个东西,觉得很好玩,就自己也做了一个。在摄像头下面固定一个激光笔,就构成了这个简易的测距装置。看一下图吧。 原 理 假设激光束是与摄像头的光轴完全平行,激光束的中心落点在在摄像头的视域中是最亮的点。激光束照射到摄像头视域中的跟踪目标上,那么摄像头可以捕捉到这个转载 2013-06-13 16:29:00 · 16758 阅读 · 2 评论 -
反向投影图
在Camshift算法应用跟踪中原理是应用根据目标颜色特征与背景颜色特征差异大,形成跟踪。所以我们需要统计目标颜色特征,以及背景颜色特征,利用颜色直方图统计颜色特征,再通过反向投影图得到颜色概率分布图。我们在实验中会看到反向投影图是一个灰度图,当目标的颜色与背景不一样时候,跟踪效果最好(目标是白色,背景是黑色)。其中在Cvinrange函数中Vmax,vmin,smin中作用就是调整数值,使目标颜原创 2013-06-07 21:59:35 · 10232 阅读 · 0 评论 -
关于轮廓的各种使用
注解:楼主现在处于学习中,大部分是转载。#include "cv.h" #include "highgui.h" #include "cvaux.h"#include "cxcore.h"#include #include using namespace std;using namespace cv;#define PI 3.14159fvoid DrawBox(CvBox2D转载 2013-05-13 14:02:02 · 1049 阅读 · 0 评论 -
CamShift 常用函数解释。
CvBox2Dtypedef struct CvBox2D { CvPoint2D32f center; /* 盒子的中心 */ CvSize2D32f size; /* 盒子的长和宽 */ float angle; /* 水平轴与第一个边的夹角,用弧度表示*/ }CvBox2D; CvConnectedComptypedef struct CvConn原创 2013-05-13 15:30:25 · 1258 阅读 · 0 评论 -
opencv学习心得(六)新版本绘制外形轮廓。
最近在研究opencv2.3.1版本函数,因为函数结构使用C++类型的,所以在一些函数调用上有很多差别,但是在运行速度上提高不少,所以还是新版本好用。其实在新版本发布是,会有相关的使用手册,很多例子会在其中找到。这个程序和例程有所不同,只绘制最外侧的轮廓,为后来的提取图像,有很大帮助。#include #include #include #include #include using原创 2013-05-16 16:10:40 · 2086 阅读 · 0 评论 -
CV牛人事件
牛人和牛mm的照片见:http://www.sigvc.org/bbs/thread-548-1-1.htmlCV人物1:Jianbo Shi史建波毕业于UC Berkeley,导师是Jitendra Malik。其最有影响力的研究成果:图像分割。其于2000年在PAMI上多人合作发表”Noramlized cuts and image segmentation”。这是图像分割领域内最转载 2013-05-17 14:49:22 · 1911 阅读 · 0 评论 -
粒子滤波
之前一直在做移动机器人定位算法。查来查去,发觉粒子滤波算法(又叫MC算法)应该算是最流行的了。因此开始学习使用之。入手的是本英文书叫 “probalistic robotic” 很不错,我所见到的讲得最好的一本书。花了大量时间去研读。在这里我想谈谈我对粒子滤波的一点认识。因为在这一领域算是个新手。希望有前辈或者达人来指正 我的想法。也希望我的这篇文章对新手有理解他有所帮助(当初我就很是苦于它难于理转载 2013-05-17 13:50:01 · 1545 阅读 · 0 评论 -
CamShift源代码编程实现原理解释
CamShift算法,即"Continuously Apative Mean-Shift"算法,是一种运动跟踪算法。今年来在目标跟踪方面应用很广,可以尝试结合Camshift算法结合其他优化算法进行预测,将目标跟踪的实时性提高。本身它主要通过视频图像中运动物体的颜色信息(最近有人提出用HOG特征直方图作为目标实现跟踪初始化)来达到跟踪的目的。我把这个算法分解成三个部分,便于理解:1) Back原创 2013-05-13 15:26:02 · 1412 阅读 · 0 评论 -
图像在屏幕显示时注意的问题
当图像尺寸大于屏幕尺寸时,在利用函数,通过鼠标点击获得图像坐标系中时候,会出现误差,返回数值是错误的。因为而且整幅图片是选点坐标与实际回显的坐标会随着离坐标原点的距离不同误差不同,呈现一个乘数系数特点。如当图像大小是768*880,而桌面屏幕分辨率大小是1280*768时,有鼠标事件点击图像坐标某点如(442,465)时,实际上回显的点坐标为(442,551),其关系大概是880/原创 2013-05-13 14:23:25 · 984 阅读 · 0 评论 -
OpenCV矩阵运算
一、矩阵Mat I,img,I1,I2,dst,A,B;double k,alpha;Scalar s;1.加法I=I1+I2;//等同add(I1,I2,I);add(I1,I2,dst,mask,dtype);scaleAdd(I1,scale,I2,dst);//dst=scale*I1+I2;2.减法absdiff(I1,I2,I);//I=|I1-I2转载 2013-05-13 15:32:24 · 781 阅读 · 0 评论 -
opencv学习笔记-入门(7)单通道的图像数据访问
4) 基于指针的直接访问: (简单高效)对于单通道字节型图像:int height = img->height;int width = img->width;int step = img->widthStep;uchar* data = (uchar *)img->imageData;data[i*step+j] = 111;对于多通道字节型图转载 2013-05-13 15:36:40 · 1287 阅读 · 0 评论 -
opencv中camshiftdemo源代码剖析
1、cvInRangeS函数的使用 cvInRangeS函数可用于检查一个矩阵中的像素灰度值是否属于某一指定范围。并且可以输出一个单通道矩阵来进行标识。 void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst );src 第一个原数组lower 包括进的下转载 2013-05-13 20:07:23 · 1970 阅读 · 0 评论 -
使用CvStartfindcontours画出轮廓。
//用于提取轮廓,同时要挑选最大轮廓画出 scanner=cvStartFindContours(pFrImg,storage,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_NONE,cvPoint(0,0)); int aera; while (contour=cvFindNextContour(scanner)) {原创 2013-05-13 16:14:50 · 6046 阅读 · 1 评论 -
Hog+Camshift的人体跟踪
#include #include #include #include #include #include #include #include #include #include "cvaux.h"#include #include #include #include using namespace cv;using namesp转载 2013-05-13 13:59:05 · 1969 阅读 · 1 评论 -
【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19809337作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442邮箱: happylifemxy@163.com知乎:http://www.转载 2014-10-29 09:25:25 · 2838 阅读 · 0 评论