新人学习opencv笔记(一)

这篇博客记录了作者学习OpenCV过程中关于色彩空间转换和阈值操作的理解。通过cvCvtColor函数将RGB图像转换为HSV,以便于特征提取,然后使用cvInRangeS进行像素值的筛选。作者分享了学习过程中的思考,并希望与同样学习OpenCV的人交流。
摘要由CSDN通过智能技术生成

    这是我的第一篇博客论文,如果内容有错误,希望大家指出,我一定及时更正,有些知识还不是很明白,请见谅。

    最近做项目,要用到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直方图。 反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式
(这个也要再研究) ,我觉得这里是为了匹配。


    今天先写这么多。






   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值