如何把opencv的函数封装到java

如何把opencv的函数封装到java,第1张

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11600738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存