簡體   English   中英

在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文檔有關:

功能save-image將圖像保存到指定文件。 圖像格式為
根據文件名擴展名進行選擇(擴展名列表請參見(加載圖像))。 使用此功能只能保存8位(在PNGJPEG 2000TIFF情況下為16位無符號(+ 16u +))單通道或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是來自捕獲設備的幀,則不應釋放它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM