opencv for arm

Hello everyone, here is Shi Kankan's blog. This article introduces the process of porting opencv on the arm development board

Virtual machine: Ubuntu16.04 64 bit

Single board: jz2440 

Compiler: arm-linux-gcc 4.4.3

opencvbanbopencv2.4.9

安装cmake-gui
	输入命令$cmake-gui后,会出现下面的提示,尚未安装cmake-gui,即没有安装图形界面。
	sudo apt-get install cmake-qt-gui。安装过程需要联网
    sudo su 
    cmake-gui 
	配置 
	去掉WITH_CUDA
	CMAKE_INSTALL_PREFIX变量改为/usr/local/arm-opencv/
	勾上 BUILD_JPEG、BUILD_PNG
	去掉WITH_TIFF
	build_opencvxr和with_opencvxr去掉
	去掉build_opencv_ocl和with_opencl
	点两次config  点一次Generate
	sudo vi /usr/local/arm-opencv/CMakeCache.txt 
   打开文件夹下的CmakeCache.txt进行修改
   //Flags used by the linker.(大概在194行附近)
   CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt 
	make -j4
	sudo su
	make install
	未拷贝库编译 
	arm-linux-g++ -o test test.cpp -I /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/include/  -L /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib -I/usr/local/arm-opencv/include/opencv  -I/usr/local/arm-opencv/include/opencv2  -L/usr/local/arm-opencv/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lpthread  -Wno-psabi  -lrt
成功 下面拷贝库 
cd /usr/local/arm-opencv/lib
sudo cp *so* /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib
cd /usr/local/arm-opencv/include
sudo cp -r opencv opencv2  /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/include/
arm-linux-g++ -o test test.cpp -I/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/include/opencv -I/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/include/opencv2  -L /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lpthread  -Wno-psabi  -lrt

执行会报错 :
	OpenCV 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 cvWaitKey, file /mnt/hgfs/share/opencv-2.4.9/modules/highgui/src/window.cpp, line 562
	terminate called after throwing an instance of 'cv::Exception'
	  what():  /mnt/hgfs/share/opencv-2.4.9/modules/highgui/src/window.cpp:562: error: (-2) 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 function cvWaitKey

	Aborted
	
因为我们没有安装gtk,所以我们不能调用和显示有关的函数 :
  一个简单的测试程序如下 :
   	#include<iostream>  
	#include <opencv2/core/core.hpp>  
	#include <opencv2/highgui/highgui.hpp>  
	using namespace cv;  
	int main()  
	{  
		// 读入一张图片(游戏原画)  
		Mat img=imread("pic.jpg");  
		// 创建一个名为 "游戏原画"窗口  
		//namedWindow("游戏原画");  
		// 在窗口中显示游戏原画  
		//imshow("游戏原画",img);  
		// 等待6000 ms后窗口自动关闭  
		//waitKey(6000);  
	} 
	
我们可以通过framebuffer在lcd上显示一副图片来替代gtk


Guess you like

Origin blog.csdn.net/zxpcus/article/details/80186623