新人学习opencv笔记(一)
2013-07-30 20:48
197 查看
这是我的第一篇博客论文,如果内容有错误,希望大家指出,我一定及时更正,有些知识还不是很明白,请见谅。
最近做项目,要用到OpenCV,也只能边学边做项目了,似乎工作后很多东西也要边学边做呢?这篇博客记录我学习OpenCV的一些笔记。有和我一样在学OpenCV的希望能一起交流。
记得于仕琪《学习OpenCV---布拉德斯基》里有说OpenCV是用C++写的,虽然里面有一些结构体struct等C风格语句,但整体是面向对象的。个人觉得面向对象代码的更容易看懂,而且我对C风格很陌生。。。
这两天在分析从CSDN上某大神分享的meanshift代码,下面主要记录一些用到的函数
cvCvtColor( image, hsv, CV_BGR2HSV );
//把图像从RGB表色系转为HSV表色系
cvCvtColor 色彩空间转换,把输入图像从一个色彩空间转换为另一个色彩空间。这里将RGB表色系转换为HSV表色系似乎是为了方便提取特征向量,HSV即指色调hue,饱和度saturation, 亮度value(程序最后只用了色调hue)。 HSV也称六角棱锥模型(这个似乎很深奥o(╯□╰)o),我就当它是一个坐标系,从RGB坐标系转换到HSV坐标系,怎么转换暂时不去探究了,下面是两张HSV的模型图片,来自百度百科。
cvInRangeS( hsv, cvScalar(0,smin,MIN(_vmin,_vmax),0),
cvScalar(180,256,MAX(_vmin,_vmax),0), mask );
//制作掩膜板,只处理像素值为H:0~180,S:smin~256,V:vmin~vmax之间的部分
cvInRangeS检查数组是否在两个数量之间,这里将数量之间。 掩膜板不太明白...我暂时理解为取某范围内的像素值吧,之后再做研究。
cvSplit( hsv, hue, 0, 0, 0 );
//分离H分量 cvSplit分割多通道数组成几个单通道数组或者从数组中提取一个通道,只要hue色调。
cvSetImageROI( hue, selection );
cvCalcBackProject( &hue, backproject, hist );
//计算hue的反向投影图 cvCalcBackProject( IplImage** image, CvArr* back_project, const CvHistogram* hist );
计算反向投影,输入图像image.反向投影图像back_project,hist直方图。反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式
(这个也要再研究) ,我觉得这里是为了匹配。
今天先写这么多。
最近做项目,要用到OpenCV,也只能边学边做项目了,似乎工作后很多东西也要边学边做呢?这篇博客记录我学习OpenCV的一些笔记。有和我一样在学OpenCV的希望能一起交流。
记得于仕琪《学习OpenCV---布拉德斯基》里有说OpenCV是用C++写的,虽然里面有一些结构体struct等C风格语句,但整体是面向对象的。个人觉得面向对象代码的更容易看懂,而且我对C风格很陌生。。。
这两天在分析从CSDN上某大神分享的meanshift代码,下面主要记录一些用到的函数
cvCvtColor( image, hsv, CV_BGR2HSV );
//把图像从RGB表色系转为HSV表色系
cvCvtColor 色彩空间转换,把输入图像从一个色彩空间转换为另一个色彩空间。这里将RGB表色系转换为HSV表色系似乎是为了方便提取特征向量,HSV即指色调hue,饱和度saturation, 亮度value(程序最后只用了色调hue)。 HSV也称六角棱锥模型(这个似乎很深奥o(╯□╰)o),我就当它是一个坐标系,从RGB坐标系转换到HSV坐标系,怎么转换暂时不去探究了,下面是两张HSV的模型图片,来自百度百科。
cvInRangeS( hsv, cvScalar(0,smin,MIN(_vmin,_vmax),0),
cvScalar(180,256,MAX(_vmin,_vmax),0), mask );
//制作掩膜板,只处理像素值为H:0~180,S:smin~256,V:vmin~vmax之间的部分
cvInRangeS检查数组是否在两个数量之间,这里将数量之间。 掩膜板不太明白...我暂时理解为取某范围内的像素值吧,之后再做研究。
cvSplit( hsv, hue, 0, 0, 0 );
//分离H分量 cvSplit分割多通道数组成几个单通道数组或者从数组中提取一个通道,只要hue色调。
cvSetImageROI( hue, selection );
cvResetImageROI(hue)cvSetImageROI设置感兴趣区域 cvResetImageROI去除感兴趣区域
cvCalcBackProject( &hue, backproject, hist );
//计算hue的反向投影图 cvCalcBackProject( IplImage** image, CvArr* back_project, const CvHistogram* hist );
计算反向投影,输入图像image.反向投影图像back_project,hist直方图。反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式
(这个也要再研究) ,我觉得这里是为了匹配。
今天先写这么多。
相关文章推荐
- OpenCV学习笔记(一)——软件配置详述
- 双目视觉学习笔记(一)--qtcreator下使用opencv读取并存储双摄像头图像
- OpenCV学习笔记_OpenCV 2.4.6.0.exe安装全过程
- opencv学习笔记10:机器学习
- OpenCV学习笔记(18):在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
- OpenCV--学习笔记01
- 基础学习笔记之opencv(6):实现将图片生成视频
- 【OpenCV学习笔记】五、实例应用一
- 基础学习笔记之opencv(20):OpenCV中的颜色空间(ing...)
- opencv学习笔记:特征点匹配函数使用注意
- Python3+OpenCV学习笔记(一):图像加载、显示和保存
- OpenCV学习笔记三:Mat构造函数 初始化 完全复制 获取指针 像素(灰度)值
- 13、opencv学习笔记1
- opencv学习笔记之三 IplImage结构体
- Opencv2系列学习笔记6(直方图的应用)
- OPENCV学习笔记3-6_RGB->HSV
- OpenCV学习笔记(二)——新版本模块结构
- OpenCV学习笔记3 OpenCV核心模块与核心功能Core Module & Core Functionality(二)
- opencv学习笔记(十五)——图像融合
- 【OpenCV学习笔记】【函数学习】二十(访问图像像素)