cvCvtColor(...),是Opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。
函数原型:void cvCvtColor( const CvArr* src, CvArr* dst, int code )
参数:
src 输入的 8-bit,16-bit或 32-bit单倍精度浮点数影像。
dst 输出的8-bit, 16-bit或 32-bit单倍精度浮点数影像。
code
色彩空间转换的模式,该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将RGB值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。
例子:
IplImage *src = cvLoadImage("4085_1.jpg",1)//原图IplImage *dst_gray = cvCreateImage(cvGetSize(src),src->depth,1)//灰度图
IplImage *dst_image = cvCreateImage(cvGetSize(src),32,src->nChannels)
IplImage *src_image_32 = cvCreateImage(cvGetSize(src),32,src->nChannels)
//这两个图需要是32浮点位的,因为对原图进行<a href="https://www.baidu.com/s?wd=%E5%BD%92%E4%B8%80%E5%8C%96&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBnhcdmhDzmHb3rjTLnvcs0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWDkPH6znWbLrHcdn1b4P1bYPs" target="_blank" class="baidu-highlight">归一化</a>后得到的是<a href="https://www.baidu.com/s?wd=%E6%B5%AE%E7%82%B9%E6%95%B0&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBnhcdmhDzmHb3rjTLnvcs0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWDkPH6znWbLrHcdn1b4P1bYPs" target="_blank" class="baidu-highlight">浮点数</a>
cvCvtColor(src,dst_gray,CV_BGR2GRAY)//得到灰度图
cvConvertScale(src,src_image_32,1.0/255.0,0)//将原图RGB<a href="https://www.baidu.com/s?wd=%E5%BD%92%E4%B8%80%E5%8C%96&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBnhcdmhDzmHb3rjTLnvcs0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnWDkPH6znWbLrHcdn1b4P1bYPs" target="_blank" class="baidu-highlight">归一化</a>到0-1之间
cvCvtColor(src_image_32,dst_image,CV_BGR2HSV)//得到HSV图
如何在vc 6.0下配置 opencv 1.0最近在学opencv,先用vc6.0+opencv1.0,可以根据opencv论坛上的步骤配置完成,下面记录了配置过程。
但是用相同的方法配置vc6.0+opencv2.0(及以上版本)就会失败,查询错误原因,说是vc6.0版本太低,一会试试vs2010+opencv2.0能否成功。
在vc 6.0下配置 opencv 1.0
一 在VC编译器下,在Project菜单下选择setting,d出对话框。
1 设置预编译的头文件
选择C/C++ 【Category】,在下拉菜单中选择Preprocessor,然后在Additional Include directories 中输入以下几项:
C:\Program Files \OpenCV\cv\include (根据本人机器上OpenCV的安装路径进行设置,如在D盘,则写D: ,以下同)
C:\Program Files \OpenCV\otherlibs\highgui
C:\Program Files \OpenCV\cxcore\include(新版本需要)
C:\Program Files \OpenCV\otherlibs\cvcam\include
每一条之间用逗号隔开。其中C:\Program Files\Intel\opencv 为OpenCV的安装路径,这是通用的安装路径,建议最好采用这种设置,以方便大家交流;不然,每次都要重新设置路径,比较麻烦。
2 设置链接库
在 Link按键下的 Category下拉菜单中选择 Input选项(指定要连接的库文件,放弃连接的库文件hao ),在Additional library path中,输入:
C:\Program Files \OpenCV\lib
最后在 Setting For下拉菜单中依次选择 Win32 Debug和 Win32 Release,分别在Object /library modules 输入:
cv.lib highgui .lib cxcore.lib cvcam.lib
注意每个库之间用一个空格隔开。
或者直接在all configurations中的Object /library modules 输入:cv.lib highgui.lib cxcore.lib(新版本需要) cvcam.lib
(cxcore.lib highgui.lib 是几乎所有OpenCV程序都要用到的函数库,分别封装了基本的函数和图形界面接口,cv.lib中封装了大量的图像处理函数,cvcam.lib中封装了很多针对视频流的处理函数)
当前工程就可以使用OpenCV的函数了。
二 如果一直要使用OpenCV的函数,把其路径设置到系统目录下
在Tools 菜单下选择 Options 子菜单,在d出的对话框中选择Directory,将用到的几个库的路径添加进去。以后只需将所用的库在Object /library modules下输入就可以了,不用再每次指定路径。
在Show directories for 下拉菜单中选择Include files,输入:
C:\Program Files \OpenCV\cv\include
C:\Program Files \OpenCV\otherlibs\highgui
C:\Program Files \OpenCV\cxcore\include(新版本需要)
C:\Program Files \OpenCV\otherlibs\cvcam\include
在Show directories for 下拉菜单中选择Library files,输入:
C:\Program Files \OpenCV\lib
注意:(防止每次都拷贝.dll文件)
我的电脑—属性—高级—环境变量—path—C:\Program Files\OpenCV\bin
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)