《Java圖像處理:基于OpenCV與JVM》 ——1.7 保存圖像到文件
1.7 保存圖像到文件
問題定義
使用OpenCV保存圖像。
解決方法
OpenCV有一個同imread函數相對應的用來寫入文件的函數,函數名是imwrite,也在Imgcodecs類中定義。通常情況下,該函數僅使用本地文件系統里指向圖像存儲位置的文件路徑作為參數,但它也可以使用一些參數來修改圖像存儲的方式。
工作原理
imwrite函數同imread函數工作原理相似,不同之處是它除了路徑,還需要一個Mat對象來存儲圖像。
第一個代碼片段簡單地實現將以彩色形式加載的貓咪圖像存儲到文件中。
圖1-11展示了輸出的.jpg圖片的內容。
圖1-11 磁盤上的JPEG格式圖像
現在,當保存Mat對象時,你也可以僅通過使用一個不同的擴展名來改變存儲格式。例如,想要保存為便攜式網絡圖形(Portable Network Graphic,PNG)格式,僅需調用imwrite函數時,使用一個不同的擴展名即可。
不需要進行圖像編碼和令人發狂的字節操作,你輸出的文件確實是PNG格式。
可以向imwrite函數傳遞參數,最常見的參數是壓縮參數。
例如,按照官方文檔:
對于JPEG,可以使用CV_IMWRITE_JPEG_QUALITY參數,參數值范圍為0~100(值越大圖像質量越高)。默認值是95。
對于PNG,可以使用0~9作為壓縮程度的參數值,值越大表示圖像越小且壓縮時間越長。默認值是3。
可以通過使用另一個叫作MatOfInt的OpenCV對象來實現使用壓縮參數壓縮輸出文件,MatOfInt是一個整型矩陣,或者是一個更簡單的形式,即數組。
上段代碼實現PNG圖片壓縮。同時,通過查看文件大小,實際上你可以發現這個PNG文件大小至少減少了10%。
Java Java OpenCV
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。