我正在寻找OpenCV中的C++相当于cvConvertImage
。C++相当于OpenCV的cvConvertImage
cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)
具体来说,我有翻转的红色和蓝色通道一cv::Mat
形象,我想换回来。在cvConvertImage中,您可以通过将标志设置为CV_CVTIMG_SWAP_RB
来完成此操作。
我正在寻找OpenCV中的C++相当于cvConvertImage
。C++相当于OpenCV的cvConvertImage
cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)
具体来说,我有翻转的红色和蓝色通道一cv::Mat
形象,我想换回来。在cvConvertImage中,您可以通过将标志设置为CV_CVTIMG_SWAP_RB
来完成此操作。
晚的答案,但如果你想交换R
和B
可以使用cv::cvtColor(...)
与选项CV_BGR2RGB
。
如果你想要更复杂的操作mixchannels
是要走的路
访问单个像素看Fastest way to extract individual pixel data?
然后,它只是一个交换红色/蓝色值
我不知道在C的任何方法++接口来做到这一点的问题,但如果你不”不想做手工交换像@马丁建议,您还可以转换到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);
我觉得mixChannels()是你在找什么。