2010-11-21 67 views
3

是否存在將圖像保存爲字符串而不是OpenCV文件的可能性?內存中的OpenCV jpeg格式圖像

我發現眼前這個功能的文檔:

int cvSaveImage(const char* filename, const CvArr* image) 

而且它只能保存到文件。

+0

你什麼意思通過保存的圖像作爲一個字符串? – 2010-11-21 12:35:42

+1

我的意思是不保存到文件,而是保存到char *變量,例如。 – 2010-11-21 13:39:43

+0

您可以使用JPEG庫來壓縮imageData。 – 2010-11-23 09:27:19

回答

1

您是如何編碼字符串中的圖像的?
您可以將紅色,綠色,藍色值存儲爲以逗號分隔的字符串,但將圖像二進制編碼爲base64之類的內容會更緊湊。

編輯:如果你的意思是內存中的一個jpeq格式見 - OpenCV to use in memory buffers or file pointers

+0

好吧,我希望圖像保存爲JPEG,但不是文件,而是字符串。 – 2010-11-21 13:31:39

+0

我知道我可以將它保存到文件,然後從該文件加載它,但我不想存儲圖像。我想通過wifi將它發送到另一臺PC。 – 2010-11-21 13:33:46

+0

http://stackoverflow.com/questions/801199/opencv-to-use-in-memory-buffers-or-file-pointers – 2010-11-21 17:04:43

1

也許你可以簡單地創建一個char *緩衝區和複製你的IplImage數據結構呢? 但要小心,您應該仔細複製指針變量,如imageDataimageDataOrigin等。

所以我們的想法是把所有東西都放在你的緩衝區中,就像你可以從接收端解碼它一樣。

和OpenCV是一個開源庫,你可以簡單地複製OpenCV的的SAVEFILE函數體,在文件替換寫在你的緩衝區寫入

+0

我在我的緩衝區中有一個BGR圖像,我想將其轉換爲JPEG。 – 2010-11-21 14:51:57

+0

轉換也應該在一個savefile函數中 – Andrew 2010-11-21 15:46:35

相關問題