在RV1103 Pico Plus 运行C++的可执行程序出现错误,求助。

  • 我猜是不是因为1103不支持硬件加速的JPEG解码, 你要不试试禁用硬件加速, 在代码里指定IMREAD_IGNORE_ORIENTATION。
    cv::Mat img = cv::imread("A0.jpg", cv::IMREAD_IGNORE_ORIENTATION);

    还有一种可能你的OpenCV或者设备驱动太旧了,需要升级一下!
    Last edited by richard_yuan on 2024-06-14 7:57, edited 1 time in total.
  • cv::IMREAD_IGNORE_ORIENTATION,这个代码在他这个官方提供的opencv-mobile-4.8.1-luckfox-pico.zip库里没有,用不了我opencv的版本用的是4.8的应该不至于吧。
  • 您好,是用opencv-mobile是作者专门为luckfox-pico 等资源受限的芯片裁剪优化过的opencv,打印this device is not whitelisted for jpeg decoder cvi是正常现象(在校验芯片类型和支持的硬件加速类型不匹配就会打印,opencv-mobile不止适配luckfox-pico这个平台),如果所有硬件加速类型都不支持(RV1106没有硬件解码功能)就会使用默认的软件解码方式,而添加cv::IMREAD_IGNORE_ORIENTATION的方式是在opencv主线上的用法,这个标注位可能在作者开发芯片硬件加速功能选择时删除了。
    我使用代码测试过在luckfox-pico上是可以正常读取-处理-保存 jpeg格式文件的

    Code: Select all

        cv::Mat image = cv::imread("A0.jpg"); // 读取原始图像
        cv::Point top_left(100, 100);
        cv::Point bottom_right(300, 300);
        cv::Scalar rectangle_color(255, 0, 0); // BGR格式
        int thickness = 2;
        cv::rectangle(image, top_left, bottom_right, rectangle_color, thickness);
        cv::imwrite("A1.jpg",image);
    
    你可以参考进行测试