本次移植采用的是信迈AM5728 IDK开发板。公司项目用于电力工况环境监测,需要用到高清图像。项目基于AM5728 + Lattice FPGA。
Opencv4.4支持三维图像分析,而TI SDK自带的opencv3.1只能支持二维图像。
一.依赖 先安装SDK 里边包含有交叉编译工具。
SDK 安装目录 ,默认安装,如有选择的地方全选择。:
./ti-processor-sdk-linux-am57xx-evm-03.01.00.06.bin
二.
1.新建工具demo
arm-linux-gnueabihf-
/home/mxtech/ti-processor-sdk-linux-am57xx-evm-03.01.00.06/linux-devkit/sysroots/x86_64-arago-linux/usr/bin
Finish
输入代码
#include<opencv2/core.hpp>
#include<opencv2/imgcodecs.hpp>
#include<opencv2/imgproc.hpp>
using namespace cv;
int main() {
Mat pic;
pic=imread("1.jpg");
Mat gray;
cvtColor(pic,gray,COLOR_BGR2GRAY);
imwrite("gray.png",gray);
return 0;
}
2.在配置include 项目上右键 选择Properties并设置如图选项
Ok
说明:
①/home/mxtech/ti/opencv-4.4.0/build/install/是交叉编译执行make install后存放可执行文件的目录,也就我们提供的文件压缩包
②/home/mxtech/ti/opencv-4.4.0/build/install/include/opencv4 对应代码"#include<opencv2/core.hpp>"
,因为我的opencv4的下一级目录是opencv2,opencv2里面存放的是头文件。
3.在配置lib项目上右键 选择Properties并设置如图选项
4.添加C++11新特性
Project->Properties->C/C++ Build->Settings->GCC G++ Compiler->Miscellaneous->Other flags 将-c -fmessage-length=0 改为 -c -fmessage-length=0 -std=c++11
5. 项目Clean然后Build
Clean 是为了防止你中途没有配置完Properties就Build项目:
说明:Building file是原始我们的cpp文件,Building target指的是编译cpp文件生成的可执行文件。
6.导出可执行文件和so文件并执行
opencv4-example-gray可执行文件存放在生成的Debug目录下:
so文件就是我们刚刚指定的libraries依赖的path路径下的so文件 :
复制opencv4-example-gray可执行文件以及Exam.cpp程序所需的一张图片到arm平台的一个目录下,这里用到的图片名称为1.jpg
复制so文件到arm平台的/lib文件夹下。
进入opencv4-example-gray可执行文件和图片所在的目录,执行命令,就会生成一张gray.png图片:
./opencv4-example-gray
查看依赖库存
arm-linux-gnueabihf-readelf -a opencv4-example-gray | grep "Shared library:"
电脑上显示 图片