在 opencv for c 中,什么函数与 Mat::convertTo 和 cvtColor() 完全相同
in opencv for c what function does the exact same thing as Mat::convertTo and cvtColor()
我试图理解opencv的c函数cvSaveImage,并与这里的2.4.6文档有关:
函数保存图像将图像保存到指定的文件。图像格式为
根据文件扩展名选择(有关扩展名列表,请参阅(加载图像))。 只有 8 位(或 16 位无符号(+16u+)在PNG
、JPEG 2000
和TIFF
的情况下)单 通道或 3 通道(‘BGR’
通道顺序)图像可以使用 此函数。如果格式、深度或频道顺序不同,请使用Mat::convertTo()
,cvtColor()
保存前对其进行转换。或者,使用通用 XML I/O 函数,用于将映像保存为 XML 或YAML
格式。
它说"如果格式、深度或通道顺序不同,请使用 Mat::convertTo()
和 cvtColor()
在保存之前进行转换。
哪些函数会在 C 接口中做同样的事情。 如果可能,请在您的回复中包含示例代码。
嗯。我想你正在寻找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是捕获设备中的帧,则不应释放它。
相关文章:
- OpenCV Native Android cvtColor crash
- 在我的测试程序中,为什么 cv::resize 不能执行,而 cvtColor 可以?
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 断言失败(scn == 3 || scn == 4)void cv :: cvtcolor(cv :: inputArr
- CUDA OPENCV CVTCOLOR调用不会将图像转换为不同的格式
- OpenCV cvtColor,无需知道源类型
- openCV 错误:断言失败 (scn == 3 || scn == 4) 在 cvtColor 函数中
- OPENCV:第一个CVTColor在不同的机器上要慢得多
- cvtColor 断言失败(带有 C++ 的 OpenCV )
- 如何使用cv :: mat :: convertto
- OpenCV:convertTo返回白色图像(有时)
- OpenCV:cvtColor函数导致Raspberry Pi出现错误
- 使用convertTo从CV_16SC1转换为CV_32FC1
- OpenCV - 在cvtColor之后使用ROI
- 使用 cvtColor 转换单一颜色
- 在 opencv for c 中,什么函数与 Mat::convertTo 和 cvtColor() 完全相同
- OpenCV程序在退出时崩溃linux(使用cvtColor)
- convertTo不在opencv中工作
- 循环使用cvtColor
- C++,OpenCV:不能包含Cvtcolor函数的imgproc库