c++ - 将一个 channel 数据复制到Opencv中的另一个 channel

标签 c++ opencv c++11 opencv3.0

如何使用 opencv 将 mat 图像的红色 channel 值复制到蓝色 channel 。 提前致谢。

最佳答案

cv::Mat Image =cv::imread("image.jpg");
uint8_t * orig_ptr = (uint8_t*)Image.data;
for (int y = 0; y < Image.rows; y++)
{
    for (int x = 0; x < Image.cols; x++)
    {
        int R = orig_ptr[x * 3 + y*Image.step + 2];
        orig_ptr[x * 3 + y*Image.step + 1] = R;
        orig_ptr[x * 3 + y*Image.step] = R;
    }
}

关于c++ - 将一个 channel 数据复制到Opencv中的另一个 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938554/

相关文章:

c++ - OpenCV:去噪图像/视频帧

c++ - 两个不同大小的硬编码数组到一个二维 vector 中

opencv - 如何比较二值图案图像的两个轮廓?

ios - 如何快速将灰度图像转换为二值图像?

c++ - 多态智能指针的使用

c++ - std::map :使用自定义运算符时更新 key

OpenCV:矩阵迭代

c++ - 引用性与模板函数中的类型无关

c++ - 在模板函数 C++ 中的 F&&,Args &&... 参数之后添加另一个函数作为参数

C++ malloc 从 `void*' 到 struct 的无效转换