您好,登錄后才能下訂單哦!
今天給大家介紹一下基于OpenCv與JVM如何實現加載保存圖像功能。,文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
openCv有一個名imread的簡單函數,用于從文件中讀取圖像
imread 函數位于Imgcodecs類的同名包中。
加載圖片代碼
import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Core; import org.opencv.imgcodecs.Imgcodecs; import origami.Origami; public class HelloCv { public static void main(String[] args) throws Exception { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Imgcodecs.imread("./images/test.jpg"); System.out.println(mat.width()+"x"+mat.height()+","+mat.type()); } }
加載成功會輸出以下消息
這個函數也可以加載灰度圖像
通過IMREAD_GRAYSCALE進行控制
Mat mat = Imgcodecs.imread("./images/test.jpg",Imgcodecs.IMREAD_GRAYSCALE);
IMREAD_GRAYSCALE將圖像強制轉換為灰度圖像并加載到Mat對象中
除了IMREAD_GRAYSCALE參數外,還可以傳遞其他參數得到特定的處理通道和圖像深度
imwrite函數可以用來保存圖片,也是 Imgcodecs類中
我們的圖片是彩色的,通過IMREAD_GRAYSCALE改變為灰度圖片,并以output.jpg為名輸出
import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Core; import org.opencv.imgcodecs.Imgcodecs; import origami.Origami; public class HelloCv { public static void main(String[] args) throws Exception { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Imgcodecs.imread("./images/test.jpg",Imgcodecs.IMREAD_GRAYSCALE); //灰度加載 System.out.println(mat.width()+"x"+mat.height()+","+mat.type()); Imgcodecs.imwrite("./images/output.jpg",mat); } }
對于JPEG,可以使用CV_IMWRITE_JPEG_QUALITY參數,參數值范圍為0~100(值越大圖像質量越高)。默認值是95。
對于PNG,可以使用0~9作為壓縮程度的參數值,值越大表示圖像越小且壓縮時間越長。默認值是3。
可以通過使用另一個叫作MatOfInt的OpenCV對象來實現使用壓縮參數壓縮輸出文件,MatOfInt是一個整型矩陣,或者是一個更簡單的形式,即數組。
import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Core; import org.opencv.core.MatOfInt; import org.opencv.imgcodecs.Imgcodecs; import origami.Origami; public class HelloCv { public static void main(String[] args) throws Exception { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Imgcodecs.imread("./images/test.jpg",Imgcodecs.IMREAD_GRAYSCALE); System.out.println(mat.width()+"x"+mat.height()+","+mat.type()); MatOfInt moi = new MatOfInt(Imgcodecs.IMWRITE_PNG_COMPRESSION,9); Imgcodecs.imwrite("./images/output.png",mat,moi); } }
未壓縮前大小
壓縮后大小
以上就是基于OpenCv與JVM如何實現加載保存圖像功能的全部內容了,更多與基于OpenCv與JVM如何實現加載保存圖像功能相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。