【问题标题】:C++ equivalent of OpenCV's cvConvertImageC++ 等效于 OpenCV 的 cvConvertImage
【发布时间】:2012-09-27 16:53:38
【问题描述】:

我正在 OpenCV 中寻找与 cvConvertImage 等效的 C++。

cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)

具体来说,我有一个红色和蓝色通道翻转的cv::Mat 图像,我希望将它们交换回来。在 cvConvertImage 中,您可以通过将标志设置为 CV_CVTIMG_SWAP_RB 来做到这一点。

【问题讨论】:

    标签: c++ image-processing opencv


    【解决方案1】:

    迟到的答案,但如果您想交换RB,可以使用cv::cvtColor(...) 和选项CV_BGR2RGB

    如果你想要更复杂的操作mixchannels 是要走的路

    【讨论】:

      【解决方案2】:

      我认为mixChannels() 是您正在寻找的。​​p>

      【讨论】:

        【解决方案3】:

        要访问单个像素,请参阅Fastest way to extract individual pixel data?

        那么这只是交换红色/蓝色值的问题

        【讨论】:

          【解决方案4】:

          我不知道 C++ 接口中的任何方法可以做到这一点,但如果您不想像 @Martin 建议的那样进行手动交换,您仍然可以将 cv::Mat 转换为 IplImage 并使用 @987654323 @为你做这项工作:

          // Load image into: cv::Mat mat_img;
          ...
          
          // Convert cv::Mat to IplImage
          IplImage ipl_img = mat_img;
          
          cvConvertImage(&ipl_img , &ipl_img , CV_CVTIMG_SWAP_RB);
          

          【讨论】:

            猜你喜欢
            • 2017-11-29
            • 1970-01-01
            • 2020-03-04
            • 2021-05-15
            • 2020-10-08
            • 1970-01-01
            • 1970-01-01
            • 2016-03-05
            • 1970-01-01
            相关资源
            最近更新 更多