rv1103b编译opencv

opencv-3.4.16,png的neon会报错,如果想开可以参考
https://blog.csdn.net/m0_60827485/article/details/137561429

rm -rf build
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_C_COMPILER=xxx/arm-rockchip831-linux-uclibcgnueabihf/bin/arm-rockchip831-linux-uclibcgnueabihf-gcc \
-DCMAKE_CXX_COMPILER=xxx/arm-rockchip831-linux-uclibcgnueabihf/bin/arm-rockchip831-linux-uclibcgnueabihf-g++ \
-DBUILD_LIST=core,imgproc,imgcodecs \
-DWITH_GTK=OFF \
-DWITH_QT=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_CUDA=OFF \
-DWITH_VTK=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_opencv_apps=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_JPEG=ON \
-DWITH_PNG=off \
-DPNG_ARM_NEON=off \
-DBUILD_PNG=OFF \
-DCMAKE_INSTALL_PREFIX=../install \
..
make -j8
make install

cmake

cmake_minimum_required(VERSION 3.10)

project(Resizedemo)

set(OPENCV_PATH "xxx/") #cv路径

# 设置编译选项和包含路径
include_directories(${OPENCV_PATH}/include)

# 指定目标
add_executable(resizedemo main.cpp)

# 链接库
target_link_libraries(resizedemo
    ${RKNN_RT_LIB}
)

target_link_libraries(resizedemo 
    ${OPENCV_PATH}/lib/libopencv_core.so
    ${OPENCV_PATH}/lib/libopencv_imgproc.so
    ${OPENCV_PATH}/lib/libopencv_imgcodecs.so

)

set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_yolov5_demo_${CMAKE_SYSTEM_NAME})
install(TARGETS resizedemo DESTINATION ./)

install(FILES
    ${OPENCV_PATH}/lib/libopencv_core.so
    ${OPENCV_PATH}/lib/libopencv_imgproc.so
    ${OPENCV_PATH}/lib/libopencv_imgcodecs.so
    DESTINATION ./lib
)

main.cpp

#include <opencv2/opencv.hpp>
using namespace cv;

int main() {
    Mat img = imread("input.jpg");  // 读取图像
    if (img.empty()) return -1;
    
    Mat resized;
    resize(img, resized, Size(640, 480));  // 调整大小
    imwrite("output.jpg", resized);  // 保存图像
    return 0;
}
### RV1126 平台 OpenCV 与 Qt 结合的交叉编译方法 #### 准备工作 为了成功完成RV1126平台上的OpenCV与Qt结合的交叉编译,需准备如下环境: - Ubuntu 18.04 LTS (x64) - 安装有适当版本的CMake(建议至少为3.10) - 已经安装好适用于RV1126的目标板的交叉编译工具链 - 下载并准备好要使用的OpenCV源码包以及Qt库文件[^1] #### 配置 CMake 文件支持 Qt 和 OpenCV 的集成 对于希望将OpenCV功能嵌入到基于Qt的应用程序中的开发者来说,在`CMakeLists.txt`中正确设置模块路径至关重要。具体操作包括但不限于定义必要的变量来指向Qt和OpenCV的位置。 ```cmake set(OpenCV_DIR /path/to/opencv/build) # 设置OpenCV构建目录位置 find_package(OpenCV REQUIRED) if(NOT OpenCV_FOUND) message(FATAL_ERROR "Failed to find OpenCV") endif() include_directories(${OpenCV_INCLUDE_DIRS}) link_directories(${OpenCV_LIBRARY_DIRS}) add_executable(myapp main.cpp) target_link_libraries(myapp ${OpenCV_LIBS} Qt5::Widgets) ``` 上述代码片段展示了如何通过指定`OpenCV_DIR`让CMake找到之前已经交叉编译过的OpenCV库,并将其链接至项目之中;同时也指定了需要连接哪些Qt组件,这里以Widgets为例[^2]。 #### 修改 `arm-gnueabi.toolchain.cmake` 针对ARM架构下的特定需求调整toolchain文件也是必不可少的一环。这通常涉及到更新一些全局性的编译选项以便更好地适配目标硬件特性。 ```cmake SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc) SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) ``` 这段脚本设定了用于编译C/C++代码的具体命令行工具名称,并告知CMake仅在指定根路径内查找依赖项,从而确保所有外部资源都来自预配置好的交叉编译环境中[^3]。 #### 编译过程概述 一旦完成了以上准备工作,则可以按照常规流程执行实际的编译任务了。先进入创建出来的build子目录,再运行相应的CMake指令启动整个工程的构建过程。 ```bash mkdir build && cd build cmake .. -DWITH_QT=ON \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release make -j$(nproc) ``` 此段shell命令序列实现了对项目的初始化配置及多线程加速模式下的最终组装打包动作。特别注意的是启用了QT支持开关(`-DWITH_QT=ON`)并且选择了静态库形式进行输出(`-DBUILD_SHARED_LIBS=OFF`),这对于减少部署复杂度很有帮助.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值