中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于OpenCv與JVM如何實現加載保存圖像功能

發布時間:2022-01-11 19:47:39 來源:億速云 閱讀:174 作者:柒染 欄目:開發技術

今天給大家介紹一下基于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());
    }
}

基于OpenCv與JVM如何實現加載保存圖像功能

加載成功會輸出以下消息

基于OpenCv與JVM如何實現加載保存圖像功能

這個函數也可以加載灰度圖像

通過IMREAD_GRAYSCALE進行控制

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

IMREAD_GRAYSCALE將圖像強制轉換為灰度圖像并加載到Mat對象中

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

基于OpenCv與JVM如何實現加載保存圖像功能

基于OpenCv與JVM如何實現加載保存圖像功能

保存圖片

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

基于OpenCv與JVM如何實現加載保存圖像功能

基于OpenCv與JVM如何實現加載保存圖像功能

對于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如何實現加載保存圖像功能

以上就是基于OpenCv與JVM如何實現加載保存圖像功能的全部內容了,更多與基于OpenCv與JVM如何實現加載保存圖像功能相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹棱县| 湟中县| 桦南县| 苍山县| 涞水县| 弥勒县| 全州县| 特克斯县| 墨玉县| 兴国县| 莱阳市| 尚义县| 如皋市| 高青县| 婺源县| 华阴市| 磴口县| 祥云县| 大厂| 黔西| 西畴县| 汨罗市| 南陵县| 郎溪县| 乌拉特中旗| 巫溪县| 张家港市| 大埔区| 普安县| 大田县| 巴青县| 天全县| 满城县| 高密市| 盖州市| 长葛市| 渭南市| 株洲县| 如东县| 枣庄市| 来安县|