天天看點

圖像編碼與解碼

        在很多應用中,經常會直接把圖檔的二進制資料進行交換,比如說利用 socket 通信傳送圖檔二進制資料,或者直接用記憶體資料庫(例如 Redis)來傳遞圖檔二進制資料。這個時候,當你的應用程式讀到記憶體裡的二進制圖檔資料時,需要用 imdecode 這個函數:即先構造一個 char 字元串序列的 vector,用來存儲圖檔的二進制資料,然後再轉為 Mat 。

        同樣,如果你需要把 Mat 壓縮并寫到一段記憶體塊裡時,就需要使用 imencode 這個函數,使用方法類似。

Mat imgSrc = imread("E:/testbmp/t1.jpg");
	imshow("原圖像", imgSrc);
	vector<uchar> dataSrc;   
	//圖像資料編碼入dataSrc,第一個參數指定圖檔格式
	imencode(".jpg", imgSrc, dataSrc);  
	
	//解碼圖像資料dataSrc入圖像
	Mat imgDst = imdecode(dataSrc, CV_LOAD_IMAGE_COLOR); 
	imshow("解碼圖像", imgDst);
	waitKey(0);
           
圖像編碼與解碼

繼續閱讀