gpt4 book ai didi

c++ - 从网络摄像头迁移到 Raspicam 时 OpenCV 的颜色问题

转载 作者:行者123 更新时间:2023-11-28 05:20:04 25 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 开发应用程序。我现在有一个 Raspberry Pi Camera 3 (Raspicam 3)。我正在尝试使用在 https://www.uco.es/investiga/grupos/ava/node/40 找到的 API 将我的代码从带有网络摄像头的标准版本迁移到 Raspicam 版本.

我所做的只是转换:

cv::Mat image;

VideoCapture cap(0); // open the default camera

cap >> image;

cap.release();

进入

cv::Mat image;

raspicam::RaspiCam_Cv Camera;
Camera.set( CV_CAP_PROP_FORMAT, CV_8UC3 );

Camera.grab();
Camera.retrieve ( image);

Camera.release();

现在,当我尝试用

cv::imwrite("myimg.jpg",image);

我注意到的区别是树莓派相机 API 设置了这个值:

Camera.set( CV_CAP_PROP_FORMAT, CV_8UC1 );

但是这个值会导致程序崩溃,

enter image description here

所以我要么用

Camera.set( CV_CAP_PROP_FORMAT, CV_8UC3 );

Camera.set( CV_CAP_PROP_FORMAT, CV_BGR2HSV );

然后,它不会崩溃,但颜色看起来很奇怪。 (例如橙色是蓝色)

问题是,如何防止这种颜色变化?如何使用正确的参数设置相机以拍摄正常照片?

我应该让你知道我并不了解 OpenCV 的细节,只是想弄清楚这些事情。

在此先感谢您的帮助。干杯,

编辑:当我评论该行时

Camera.set( CV_CAP_PROP_FORMAT, CV_8UC1 );

一切都是蓝色的。所以我想这与它没有任何关系。

编辑:添加了错误详细信息。

最佳答案

你检查过你的Raspberry Pi的色彩空间是否和Open CV一样吗?

Open CV 使用蓝绿红 (BGR) 约定,这种约定并不常见。它可能符合您的“蓝色”描述...

如果是这样,只需交换第一个和最后一个 channel 以获得 RGB 值:)

关于c++ - 从网络摄像头迁移到 Raspicam 时 OpenCV 的颜色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41698271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com