1
4

1 回答 1

2

嗯..我认为您正在寻找cvCvtColor

void cvCvtColor(const CvArr *src, CvArr *dst, int code) 

将图像从一种颜色空间转换为另一种颜色空间。

http://opencv.willowgarage.com/documentation/c/miscellaneous_image_transformations.html

例如,如果您有一个 RGBA 图像并希望将其转换为 BGR 以进行保存:

cvCvtColor(rgba_src, bgr_dst, CV_RGBA2BGR)

在实际代码中,它会是这样的:

/* Create an IplImage with 3 channels and 8 bits per channel,
   with the same dimensions that rgba_src*/
IplImage *bgr_dst = cvCreateImage(cvGetSize(rgba_src), IPL_DEPTH_8U, 3);

cvCvtColor(rgba_src, bgr_dst, CV_RGBA2BGR);
cvReleaseImage(&rgba_src);

类似的东西。请记住,如果 rgba_src 是来自捕获设备的帧,则不应释放它。

于 2013-09-17T05:27:52.557 回答