C ++相当于OpenCV的cvConvertImage

时间:2012-01-30 17:04:06

标签: c++ image-processing opencv

我在OpenCV中寻找与cvConvertImage相当的C ++。

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

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

4 个答案:

答案 0 :(得分:4)

延迟回答,但如果您要交换cv::cvtColor(...)CV_BGR2RGB,则可以使用R选项B

如果您想要更复杂的操作,mixchannels是最佳选择

答案 1 :(得分:2)

我认为mixChannels()正是您所寻找的。

答案 2 :(得分:0)

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

然后只需交换红/蓝值

答案 3 :(得分:0)

我不知道C ++界面中有任何方法可以执行此操作,但如果您不想像@Martin建议那样进行手动交换,您仍然可以将cv::Mat转换为IplImage并使用cvConvertImage为您完成这项工作:

// 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);