【发布时间】:2012-08-30 17:56:29
【问题描述】:
我有 24 位 RGB 格式的图像缓冲区。这个缓冲区被复制到 cv::Mat 使用
cv::Mat mat = cv::Mat(image->height, image->width, CV_8UC3, image->data);
由于这个缓冲区是 RGB 格式,而 OpenCV 使用 BGR 格式,我将mat转换为 BGR
cv::cvtColor(mat, mat, CV_RGB2BGR);
这可行,但是当我检查原始图像时,它的通道也被反转(因此它们变得错误),我不希望这种情况发生。
我想反转 mat 频道顺序,使 image-data(我的图像缓冲区)保持不变。我该怎么做?
【问题讨论】:
-
在颜色转换之前硬拷贝矩阵或者只是 cv::cvtColor(mat, mat2, CV_RGB2BGR); ?
-
我不这么认为。会不会对性能影响太大?