在 c 的 opencv 中,啥函数与 Mat::convertTo 和 cvtColor() 完全相同

Posted

技术标签:

【中文标题】在 c 的 opencv 中,啥函数与 Mat::convertTo 和 cvtColor() 完全相同【英文标题】:in opencv for c what function does the exact same thing as Mat::convertTo and cvtColor()在 c 的 opencv 中,什么函数与 Mat::convertTo 和 cvtColor() 完全相同 【发布时间】:2013-09-17 04:47:19 【问题描述】:

我试图理解 opencv 的 c 函数 cvSaveImage 并与此处的 2.4.6 文档有关:

函数 save-image 将图像保存到指定文件。图片格式为 根据文件扩展名选择(有关扩展名列表,请参阅 (load-image))。 只有 8 位(或在 PNGJPEG 2000TIFF 的情况下为 16 位无符号 (+16u+))单 通道或 3 通道(使用‘BGR’ 通道顺序)图像可以保存使用 这个功能。如果格式、深度或通道顺序不同,请使用 Mat::convertTo()cvtColor() 在保存前进行转换。或者,使用通用 XML I/O 函数将图像保存为 XML 或YAML 格式。

它说“如果格式、深度或通道顺序不同,请在保存前使用 Mat::convertTo()cvtColor() 进行转换。”

在 c 接口中哪些函数会做同样的事情。如果可能,请在您的回复中包含示例代码。

【问题讨论】:

docs.opencv.org/modules/imgproc/doc/… 【参考方案1】:

嗯.. 我认为您正在寻找 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 是来自捕获设备的帧,则不应释放它。

【讨论】:

但是 Mat::convertTo 的 c 等效项如何呢?文档中说 cvCvtColor“将图像从一种颜色空间转换为另一种颜色空间”。和 Mat::convertTo “将数组转换为另一种具有可选缩放比例的数据类型。”你能告诉我 Mat::convertTo 的 c 等价物吗 cvCvtColor 收到cvArr *,有时可以是IplImage*CvMat* 甚至CvSeq*。所以我认为它也应该起作用。查看文档,它似乎不是直接的Mat::convertTo() 替代品。 (cvMatMat 的“旧”版本,它们不一样) 另一方面,如果它不起作用,你总是可以自己做。您可以自定义“从 A 类 cvMat 转换为 B 类 cvMat”。 另外,cvConvertScale 函数可以方便地使用 cvMat * opencv.willowgarage.com/documentation/operations_on_arrays.html

以上是关于在 c 的 opencv 中,啥函数与 Mat::convertTo 和 cvtColor() 完全相同的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 中 Mat 对象的标头是啥意思?

OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量一起使用

opencv for android中mat的第4通道值用啥表示?

opencv中MatND和Mat的区别

Opencv3 Mat对象构造函数与常用方法

opencv学习笔记详解基本图像容器Mat以及常用数据结构和函数