强制cv::Mat使用RGB数据顺序

Force cv::Mat to use RGB data order

本文关键字:数据 顺序 RGB Mat cv 强制 使用      更新时间:2023-10-16

默认情况下,cv::imread按BGR顺序将数据读取到cv::Mat。我更喜欢RGB顺序。每次我阅读图像时,我都会进行转换:

cv::Mat image;
image = cv::imread("...",CV_LOAD_IMAGE_COLOR);
if(!image.data )
    ...
cvtColor(image, image, CV_BGR2RGB);

有没有办法告诉Matimread颜色顺序应该不同?类似于:

Cv::Mat image;
image.setOrder(CV_RGB) // ???
image = cv::imread("...",CV_LOAD_IMAGE_COLOR);

不,事实上,imread()没有这样的可配置性,也没有定义通道顺序的可能性。

我建议你把你的图像阅读和频道混合包装在一个小的实用函数中。