opencv交叉编译记

这两天一直在编译opencv。确实很头疼。

1.用cmake 来交叉编译opencv样例时,(其实在交叉编opencv 时,可以通过设置,将源码里的sample都编译的 。当时不知道)

将源码里的sample/c 考到opencv的交叉编译的build目录里, 要修改下example_cmake 里的CMakeList.txt  的内容。要注掉package 那一行,加上安装的库目录和头文件目录。



2在交叉编译完opencv库后,将opencv 的lib 考在板子上的/lib 下,然后运行,仍旧出错

opencv交叉编译记_第1张图片

一开始,一直以为是自己编译出错,然后各种找原因。按照opencv源码的sample/c 下的程序测试,出现上面的错误。后来,找了另一个测试程序:



#include
#include


using namespace cv;


int main( int argc, char** argv )
{
 if(argc != 2)
 {
   printf("useage: %s \n ", argv[0]);
   return -1;
 }
 char* imageName = argv[1];


 Mat image;
 image = imread( imageName, CV_LOAD_IMAGE_COLOR);


 if( !image.data )
 {
   printf( " No image data \n " );
   return -1;
 }


 Mat gray_image;
 cvtColor( image, gray_image, CV_BGR2GRAY );




 imwrite( "../../images/Gray_Image.jpg", gray_image );


 namedWindow( imageName, CV_WINDOW_AUTOSIZE );
 namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );


 imshow( imageName, image );
 imshow( "Gray image", gray_image );


 waitKey(0);


------------------------------------------------------------------------------------------------------

发现报错,仍有结果:./test cat.jpg

   

网上查了下:GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。

cxcore包含数据结构,矩阵运算,一些基本的操作。cv主要是一些摄像头相关函数,图像处理函数。highgui是一个图像工具包。
我的理解是:arm交叉编译器貌似是不支持highgui?
后来,经过老师指导,我知道了 是因为arm 确实不支持 界面显示等操作。。。对于上面的程序需要将namewindow 和imshow 注掉。

你可能感兴趣的:(opencv,opencv)