亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于OpenCv與JVM實(shí)現(xiàn)加載保存圖像功能(JAVA?圖像處理)

 更新時(shí)間:2022年01月08日 10:27:50   作者:Java璐到底  
openCv有一個(gè)名imread的簡(jiǎn)單函數(shù),用于從文件中讀取圖像,本文給大家介紹JAVA?圖像處理基于OpenCv與JVM實(shí)現(xiàn)加載保存圖像功能,感興趣的朋友一起看看吧

加載圖片

openCv有一個(gè)名imread的簡(jiǎn)單函數(shù),用于從文件中讀取圖像

imread 函數(shù)位于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());
??? }
}

加載成功會(huì)輸出以下消息

這個(gè)函數(shù)也可以加載灰度圖像

通過IMREAD_GRAYSCALE進(jìn)行控制

Mat mat = Imgcodecs.imread("./images/test.jpg",Imgcodecs.IMREAD_GRAYSCALE);

IMREAD_GRAYSCALE將圖像強(qiáng)制轉(zhuǎn)換為灰度圖像并加載到Mat對(duì)象中

除了IMREAD_GRAYSCALE參數(shù)外,還可以傳遞其他參數(shù)得到特定的處理通道和圖像深度

保存圖片

imwrite函數(shù)可以用來保存圖片,也是 Imgcodecs類中

我們的圖片是彩色的,通過IMREAD_GRAYSCALE改變?yōu)榛叶葓D片,并以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);
??? }
}

對(duì)于JPEG,可以使用CV_IMWRITE_JPEG_QUALITY參數(shù),參數(shù)值范圍為0~100(值越大圖像質(zhì)量越高)。默認(rèn)值是95。

對(duì)于PNG,可以使用0~9作為壓縮程度的參數(shù)值,值越大表示圖像越小且壓縮時(shí)間越長(zhǎng)。默認(rèn)值是3。

可以通過使用另一個(gè)叫作MatOfInt的OpenCV對(duì)象來實(shí)現(xiàn)使用壓縮參數(shù)壓縮輸出文件,MatOfInt是一個(gè)整型矩陣,或者是一個(gè)更簡(jiǎn)單的形式,即數(shù)組。

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);
    }
}

未壓縮前大小

壓縮后大小

到此這篇關(guān)于基于OpenCv與JVM實(shí)現(xiàn)加載保存圖像功能(JAVA 圖像處理)的文章就介紹到這了,更多相關(guān)java OpenCv加載保存圖像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論