Symbian c++调用opencv库进行图像处理

     毕论要在手机端利用sift算法提取图像特征值,而Lowa给出的sift是基于opencv库的,所以原来的思路是根据sift算法原理在手机上用symbian c++再实现一遍,这涉及到图像积分、求导,构建高斯金字塔,求梯度极值等一系列复杂计算,nokia官方给出了nokiacv的图像处理库,封装了图像转换、拉普拉斯算子卷积等函数,但毕竟功能有限,除此之外的函数都需自己实现,觉得有些郁郁

     随后找到了symbian上调用的openc库,此时突然想到如果能把opencv库直接移植到symbian平台下,这将给我带来巨大的方便,带着这个冲动进行了实验,激动的是竟然成功了,步骤如下:

     1.安装实验环境包括---opencv库、symbian sdk、jre、active perl、carbide c++

     2.将opencv安装目录下 /OpenCV/lib下所有lib拷贝到 symbian sdk安装目录 /Symbian/9.2/S60_3rd_FP1_2/Epoc32/release/winscw/udeb 下

     3.在carbide c++下新建openc console application,在mmp下导入cv.lib,cvaux.lib,cvcam.lib,cvcore.lib,cxts.lib,highgui.lib

然后拷贝opencv目录下头文件cv.h,cv.hpp,cvaux.h,cvcompat.h,cvtypes.h,cvver.h,cxcore.h,cxerror.h,cxmisc.h,cxtypes.h,highgui.h,util.h等拷贝到项目的inc目录下

     4.然后就可以使用opencv库了,下面是简单demo将图像转为8位灰度图像

 #include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

// This is a GCCE toolchain workaround needed when compiling with GCCE
// and using main() entry point
#ifdef __GCCE__
#include <staticlibinit_gcce.h>
#endif

 int main(void)
 {
     IplImage* img = cvLoadImage("C://test.bmp",1);
     IplImage* init_img;
    
     IplImage* gray8 = cvCreateImage(cvGetSize(img),8,1);
     IplImage* gray32 = cvCreateImage(cvGetSize(img),32,1);

     if(img->nChannels==1)
        gray8 = (IplImage*)cvClone(img);
    else
        cvCvtColor(img,gray8,7);
    cvConvertScale(gray8,gray32,1.0/255.0,0);
    cvSaveImage("C://rr.bmp",gray8);

    return 0;
 }

    

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值