gpt4 book ai didi

c++ - 在 opencv for c 中,什么函数做与 Mat::convertTo 和 cvtColor() 完全相同的事情

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:39 28 4
gpt4 key购买 nike

我试图了解 opencv 的 c 函数 cvSaveImage 以及与此处的 2.4.6 文档相关的内容:

The function save-image saves the image to the specified file. The image format is
chosen based on the filename extension (see (load-image) for the list of extensions). Only 8-bit (or 16-bit unsigned (+16u+) in case of PNG,JPEG 2000, and TIFF) single- channel or 3-channel (with ‘BGR’ channel order) images can be saved using this function. If the format, depth or channel order is different, use Mat::convertTo() , and cvtColor() to convert it before saving. Or, use the universal XML I/O functions to save the image to XML orYAML format.

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

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

最佳答案

嗯..我想你正在寻找cvCvtColor:

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

Converts an image from one color space to another.

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。

关于c++ - 在 opencv for c 中,什么函数做与 Mat::convertTo 和 cvtColor() 完全相同的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18841480/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com