Opencv程序移植时问题及解决,移植成功啦,哈哈

Opencv移植方法:http://blog.csdn.net/b5w2p0/article/details/8976665

我用的是Cmake,最终成功,把路径下生成的so文件拷到开发板的  /lib文件下。

在这之前也可能要移植ffmpge:http://blog.csdn.net/b5w2p0/article/details/38455071

遇到问题多看文章,多试几次最终一定会成功。

现在就可以编译程序啦:

<span style="font-size:18px;">#include <cv.h>
#include <cxcore.h>
#include <highgui.h>  

int main(int argc,char **argv)
{
    CvCapture* capture = NULL;
    IplImage* pImg = NULL;
    fprintf(stderr, "123");
    pImg = cvLoadImage("1.jpg",1);
     fprintf(stderr, "456");
    cvNamedWindow("video", 1);
     fprintf(stderr, "789");   

    cvShowImage("video", pImg);
    fprintf(stderr, "109");
    cvWaitKey(-1);
    cvDestroyWindow("video");
    cvReleaseImage( &pImg );   

    return 0;
} </span>

编译命令:

arm-none-linux-gnueabi-g++
opencv_chuli.cpp -o opencv_testchuli  -I/usr/local/opencv-arm/OpenCV/include/opencv -L/usr/local/opencv-arm/OpenCV/lib -lml -lcvaux -lhighgui -lcv
-lcxcore  -lpthread -lrt

注意:1、这是一个命令,是一行,当然不同指令中间要加空格。

2、opencv_chuli.cpp 是你的程序文件,把上面的程序复制到文档里再重命名成这个名字就可以了。

3、opencv_testchuli  
这是最终生成的二进制文件名,可以修改,到时要拷到开发板上。

4、/usr/local/opencv-arm/OpenCV/include/opencv 
这是编译成功的OpenCV路径,/usr/local/opencv-arm/OpenCV/lib也一样。

在终端运行,注意要用root权限。

最终就成功啦,把程序拷到开发板上运行就可啦。

运行错误:

123456OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure
script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100

terminate called after throwing an instance of ‘cv::Exception‘

Aborted

GTK是一种GUI库,参考:http://blog.csdn.net/b5w2p0/article/details/38644795

我以后要用QT 所以就不移植啦。

第二个程序:

<span style="font-size:14px;">#include <cv.h>
#include <cxcore.h>
#include <highgui.h>  

int main(int argc,char **argv)
{
    CvCapture* capture = NULL;
    IplImage* pImg = NULL;
    IplImage* pImg1 = NULL;
    fprintf(stderr, "123");
    pImg = cvLoadImage("1.jpg",1);
     fprintf(stderr, "456");
    pImg1 = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1);
   fprintf(stderr, "456");
    cvCvtColor(pImg,pImg1,CV_RGB2GRAY);
     fprintf(stderr, "789");   

   cvSaveImage("1_1.jpg",pImg1);

    fprintf(stderr, "109");  

    cvReleaseImage( &pImg );
    cvReleaseImage( &pImg1 );
    return 0;
}  </span>

运行问题:

123456Segmentation fault

解决:http://blog.csdn.net/b5w2p0/article/details/38656323,可能是我没有移植libjpeg的原因,改变后程序:

<span style="font-size:14px;">#include <cv.h>
#include <cxcore.h>
#include <highgui.h>  

int main(int argc,char **argv)
{
    CvCapture* capture = NULL;
    IplImage* pImg = NULL;
    IplImage* pImg1 = NULL;
    fprintf(stderr, "123");
    pImg = cvLoadImage("1.bmp",1);
     fprintf(stderr, "456");
    pImg1 = cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1);
   fprintf(stderr, "456");
    cvCvtColor(pImg,pImg1,CV_RGB2GRAY);
     fprintf(stderr, "789");   

   cvSaveImage("1_1.bmp",pImg1);

    fprintf(stderr, "109");  

    cvReleaseImage( &pImg );
    cvReleaseImage( &pImg1 );
    return 0;
}  </span>

运行结果:

123456456789109

原始图片:

处理后图像:

证明移植成功!

Opencv程序移植时问题及解决,移植成功啦,哈哈

时间: 2024-10-16 16:20:19

Opencv程序移植时问题及解决,移植成功啦,哈哈的相关文章

ShareSDK向iOS平台移植时问题及解决办法

问题 此前,我的开发环境是Windows7(64bits)+VMware 9.0+Mac OS 8.5+Xcode 4.5,结果在测试游戏中集成目前最新的ShareSDK(ShareSDK For iOS 2.10.3,而ShareSDK For COCOS2D-X也是目前最新的)时失败.出现如下图所示的编译错误: 而第二个错误如下图: 显然,这两个错误都来自ShareSDK官方文件.注意:在基于Cocos2d-x框架开发的游戏中集成ShareSDK实现iOS版本时需要两个部分(其中也要加入上面

opencv在arm和x86上的移植

一.开发环境 操作系统:fedora14 Opencv版本:2.0 Qt版本:4.7 arm:mini6410 交叉编译工具:arm-linux-gcc-4.5.1 二.安装与配置 Linux系统的安装,交叉Qt-creator的安装还有交叉编译工具的安装,网上说的基本都没什么问题,测试后都可以用.这里安装Qt-Creator遇到了一点小问题,按照网上的和mini6410开发手册上的安装方法太复杂了,用QtSdk-offline-linux-x86-v1.2.1.run安装方便又准确. 这篇文章

OpenCV 64位时 应用程序无法正常启动0x000007b 问题解决

这问题根本不是DirectX问题,不知道网上怎么这么这样的回复.而且也不亲自验证一下.下面将自己花很多时间才解决的方式整理一下. 因为一般情况下你配置的OpenCV加入系统环境变量的都是X86下的bin,所以当你将Visual Stdio工程改为X64时,当然会在程序运行时,由于.exe无法找到合适的动态链接库而出现问题. 解决办法是,将你的OpenCV的X64下的bin文件夹,加入系统环境变量.如笔者的电脑时OpenCV 2410, 配置时将 D:\Program Files\opencv\b

excel2003出现“向程序发送命令时出现错误”解决方法

电脑已经预装了office2010,因为想要学习 <Excel 图标之道>,安装了Excel2003,刚刚安装好,打开出现“向程序发送命令时出现错误”,虽然点击确定就可以用了,可总是觉得不爽,网上找了相关方法, 1. 在资源管理器中进入“C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates”目录,删除其中的“Normal.dot”公用模板文件(可能还有个隐藏的编辑中的文件,一并删除),再重新启动

解决复杂应用程序问题时要考虑的首要问题

1.对于反应性事件:“将工程师带到现场,因为这样可以更容易地隔离问题.” 这是我听到的最常见的误解.让我解释一下:大多数复杂的问题都需要深入的调试会话.收集必要的信息是很容易的,可以远程或由客户完成.但是,调试转储文件可能需要几个小时或几天.由于我们可能无法访问我们的私有符号,也无法与具有特定技术知识的同事协作访问,因此在现场工作实际上会减慢进程.很多时候,在现场工作的一个重要价值是充当远程工程师的耳目,或者更好地理解我们无法通过电子邮件或电话很好理解的复杂问题. 2.“我们需要代码检查,因为我

Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法

在android应用程序启动时抛出下面异常导致启动失败:07-09 17:12:35.709: ERROR/AndroidRuntime(3866): Uncaught handler: thread main exiting due to uncaught exception 07-09 17:12:35.719: ERROR/AndroidRuntime(3866): java.lang.RuntimeException: Unable to instantiate activity Com

是什么在.NET程序关闭时阻碍进程的退出?

在平时使用软件或是.NET程序开发的过程中,我们有时会遇到程序关闭后但进程却没有退出的情况,这往往预示着代码中有问题存在,不能正确的在程序退出时停止代码执行和销毁资源.这个现象有时并不容易被察觉,但在另一些情况下却会产生影响软件功能的Bug.本文列举可能影响.NET程序进程退出的因素,并用几个小例子说明这些因素如何导致Form Application和Windows Service的Bug. 一.进程不能退出对于某些Windows Form程序的影响 在传统C/S结构的系统中,客户端会通过Soc

【转】程序崩溃时自动记录minidump的c++类

原帖:程序崩溃时自动记录minidump的c++类 封装了一个C++类,当程序意外崩溃的时候可以生成dump文件,以便确定错误原因. 头文件: //crash_dumper_w32.h #ifndef _CRASH_DUMPER_H_ #define _CRASH_DUMPER_H_ #include <windows.h> class CrashDumper { public: CrashDumper(); ~CrashDumper(); static bool _PlaceHolder()

” &#39;ipconfig&#39; 不是内部或外部命令,也不是可运行的程序。。。“的解决方法

之前有在练习完成基于TCP/IP的Socket的客户端与服务器间的通信,但是每次打开Dos框,输入ipconfig来查询本机的IP信息时, 总是显示” 'ipconfig' 不是内部或外部命令,也不是可运行的程序...“这样的错误.起初以为是电脑问题,重启好几次电脑,发现结果还是如此, 因此在网上查询原因,功夫不负有心人,终于找到解决的办法了,下边就将其分享,以供有相同疑惑的小伙伴们参考. 在控制台中输入命令ipconfig的时候,会出现“‘ipconfig’不是内部或外部命令,也不是可运行的程