X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] Yuzuki Lizard 全志V851S开发板 –编译 OPENCV 4.5.4
aleksib
2023-5-8 09:23
楼主
**1.主要参考教程地址,实际操作结合多个教程。** [https://blog.csdn.net/Flag_ing/article/details/109508374](https://blog.csdn.net/Flag_ing/article/details/109508374) **2.放从OPENCV RELEASE 下载的解压出来的文件,里面还要放对应版本的contribute 解压文件** ```gow /root/opencv-4.5.4 /root/opencv-4.5.4/build6 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/34872af0d9fa42ca86c276f6f2e0cc5f.png#pic_center) ![在这里插入图片描述](https://img-blog.csdnimg.cn/6af815bd4bfd4142a9f589d2e4f244b9.png#pic_center) ![在这里插入图片描述](https://img-blog.csdnimg.cn/d37a8a50c40d46e0b065f3864e60206c.png#pic_center) 在这里要找到三个地方进行修改; 1、勾选上BUILD_opencv_world 2、在CMAKE_BUILD_TYPE后填上:RELEASE **3、在OPENCV_EXTRA_MODULES_PATH后填上opencv-contrib/modules的路径** 比如我是:/home/wsx/opencv/opencv/opencv_contrib/modules 完成之后再次点击Configure按钮,稍等片刻,之后在点击Generate按钮 (所有红色报错,全部关掉即可) 交叉编译工具链地址: ``` /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-gcc /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-g++ /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/bin/ ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/47cae7e3a96944e09fbdae419d62f0a0.png#pic_center) 注意: * 取消WITH_GTK 取消WITH_TIFF , PNG ,JPG 所有红色报错的功能,都不要勾选,或者自己搞定。 * 如果点击configure提示处理器未识别 那么执行vi /root/opencv-4.5.4/cmake/OpenCVDetectCXXCompiler.cmake 可以在第47行,写入 set(CMAKE_SYSTEM_PROCESSOR arm) (一定会提示,一定要这么做。) ![在这里插入图片描述](https://img-blog.csdnimg.cn/59628d101eaa455ca34a98ea66225a7b.jpeg#pic_center) **4、 如果要修改默认的install文件夹,要在点击Generate之前修改,修改方式如下** `vi /root/opencv-4.5.4/build6/CMakeCache.txt` 修改CMAKE_INSTALL_PREFIX:PATH=/root/opencv-4.5.4/build6 **5、进入目录** /root/opencv-4.5.4/build6/ 执行 cmake . 执行 export STAGING_DIR=/root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin 执行 make -j20 (看自己的线程数,设定) ![在这里插入图片描述](https://img-blog.csdnimg.cn/66092a3be3e44d0295231899f1ad2c17.jpeg#pic_center) 到此编译成功 **6、编译出来的文件** 动态库文件 /usr/local/lib/ 文件库 /usr/local/include/opencv4/ 注意下面步骤中成功编译出来的固件,是不含动态库的,所以还需要编译时所用的动态库,同步复制到板子的/usr/lib/ 里面去。否则报错找不到动态库 **7、编译一个opencv example** 首先 执行 ``` export STAGING_DIR=/root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin ``` 任意目录下创建3个文件 1.CMakeLists.txt ``` cmake_minimum_required(VERSION 3.10) set (ARM_LINUX_GCC_PATH /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/) # 改成你的路径 set (CMAKE_C_COMPILER ${ARM_LINUX_GCC_PATH}arm-openwrt-linux-gcc) set (CMAKE_CXX_COMPILER ${ARM_LINUX_GCC_PATH}arm-openwrt-linux-g++) project(Test_OpenCV_Mobile) set(CMAKE_CXX_STANDARD 11) set(OpenCV_DIR "/root/opencv-4.5.4/") # 改成你的路径 find_package(OpenCV REQUIRED) FIND_PACKAGE(OpenMP REQUIRED) add_executable(Test_OpenCV_Mobile main.cpp) target_link_libraries(Test_OpenCV_Mobile pthread) target_link_libraries(Test_OpenCV_Mobile dl) target_link_libraries(Test_OpenCV_Mobile -fopenmp) target_link_libraries(Test_OpenCV_Mobile ${OpenCV_LIBS}) ``` 2.makefile ``` OPENCV_DIR := /root/opencv-4.5.4/ THIRD_PART_INCLUDE := -I$(OPENCV_DIR)include/opencv4 -I$(OPENCV_DIR)include/opencv4/opencv2 THIRD_PART_LIBRARY := $(OPENCV_DIR)lib/libopencv_highgui.a $(OPENCV_DIR)lib/libopencv_features2d.a $(OPENCV_DIR)lib/libopencv_imgproc.a $(OPENCV_DIR)lib/libopencv_photo.a $(OPENCV_DIR)lib/libopencv_video.a $(OPENCV_DIR)lib/libopencv_core.a TARGET = Test_OpenCV_Mobile START:
@echo
START rm -rf $(TARGET) /root/tina-v853-docker/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-g++ -O2 -std=c++11 -lpthread -fopenmp -ldl $(CFLAGS) $(THIRD_PART_INCLUDE) -o $(TARGET) ./main.cpp $(THIRD_PART_LIBRARY) .PHONY:clean clean: rm -rf $(BINDIR) ``` 3.main.cpp ``` #include
#include
int main() { cv::Mat mat = cv::Mat::zeros(256,256, CV_8UC1); { cv::rectangle(mat, cv::Rect(40, 45, 51, 65), cv::Scalar(255), -1, cv::LINE_8, 0);//绘制填充矩形 cv::rectangle(mat, cv::Rect(180, 180, 85, 21), cv::Scalar(255), -1, cv::LINE_8, 0);//绘制填充矩形 std::cout << "mat.rows = " << mat.rows << std::endl; std::cout << "mat.cols = " << mat.cols << std::endl; } return 0; } ``` **8.编译 opencv example** 在创建的目录里面,执行 ``` cmake . make ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/30293615318e44d19c4403331c30154d.jpeg#pic_center) **9、将文件推进板子,并添加权限执行** **10、推送相应的动态库进入 /usr/lib** 比如 world,core…. **11、最后终端执行,推送进来的文件。** ./Test_OpenCV/example 到此 opencv 4.5.4 编译成功,并运行opencv example成功。 本文转载自全志在线开发者论坛
点赞
回复评论 (1)
沙发
Jacktang
编译出来的固件,是不含动态库的,所以还需要编译时所用的动态库,同步复制到板子的/usr/lib/ 里面去。否则报错找不到动态库
谢谢分享
点赞
2023-5-8 22:59
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
可以卷起的灯——多用型
做WINCE开发两年了,郁闷......
keil与proteus联调谁会
峰值保持电路的储能电容值怎么确定?
RK3288项目定制评估过程分享
wince 中使用CHtmlView的时候报错
2007 IBM中国大学生程序设计对抗赛开始报名了!!!
求高人指点,如何在WINCE下显示DIB图像
TL431的用法
傻傻的提个问,关于小信号放大电路
感谢论坛
stm32f103无刷直流电机控制程序
寻开发视频信号控制系统
电信短信猫 解析接收短信
[GD32E231 DIY大赛]第二篇:动态二维码显示
四轴飞行器能不能用51做?
双网卡热备份(双网卡冗余备份)如何设计与实现呢(2)?
功率太大,功率管应该怎么放置
一个定时器生成多路PWM波形的原理和方法
LM3S9B96 图片转换成数组
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复