最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于java實(shí)現(xiàn)簡單的圖片類別識(shí)別

 更新時(shí)間:2023年12月01日 11:11:51   作者:默默努力的小老弟  
這篇文章主要為大家詳細(xì)介紹了如何基于java實(shí)現(xiàn)簡單的圖片類別識(shí)別功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

下面是java實(shí)現(xiàn)簡單的圖片類別識(shí)別的示例代碼,希望對(duì)大家有所幫助

1.maven依賴

  <dependency>
            <groupId>ai.djl</groupId>
            <artifactId>api</artifactId>
            <version>0.4.0</version>
        </dependency>
        <dependency>
            <groupId>ai.djl</groupId>
            <artifactId>repository</artifactId>
            <version>0.4.0</version>
        </dependency>
        <dependency>
            <groupId>ai.djl.pytorch</groupId>
            <artifactId>pytorch-model-zoo</artifactId>
            <version>0.4.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>ai.djl.pytorch</groupId>
            <artifactId>pytorch-native-auto</artifactId>
            <version>1.4.0</version>
            <scope>runtime</scope>
        </dependency>

2.完整代碼

import ai.djl.Application;
import ai.djl.ModelException;
import ai.djl.inference.Predictor;
import ai.djl.modality.cv.output.DetectedObjects;
import ai.djl.modality.cv.util.BufferedImageUtils;
import ai.djl.repository.zoo.Criteria;
import ai.djl.repository.zoo.ModelZoo;
import ai.djl.repository.zoo.ZooModel;
import ai.djl.training.util.ProgressBar;
import ai.djl.translate.TranslateException;
import org.opencv.core.*;
import org.opencv.objdetect.CascadeClassifier;
import org.opencv.videoio.VideoCapture;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.*;

public class Main {

    public static void main(String[] args) throws IOException, ModelException, TranslateException {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        String url = "d:/path/to/u=2304912836,1229708753&fm=193.jpg";

        VideoCapture camera = new VideoCapture(0); // 0 表示第一個(gè)攝像頭設(shè)備,如果有多個(gè)攝像頭可能需要調(diào)整參數(shù)
        if (!camera.isOpened()) {
            System.out.println("Error: Could not open camera");
            return;
        }
        // 創(chuàng)建窗口并設(shè)置關(guān)閉操作
        JFrame frame = new JFrame("Face Grid Live");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setResizable(false);

        // 創(chuàng)建用于顯示圖像的標(biāo)簽
        JLabel label = new JLabel();
        frame.getContentPane().add(label, BorderLayout.CENTER);
        Mat frameImage = new Mat();
        while(true){
            camera.read(frameImage);
            BufferedImage bufferedImage = matToBufferedImage(frameImage);



            Criteria<BufferedImage, DetectedObjects> criteria =
                    Criteria.builder()
                            .optApplication(Application.CV.OBJECT_DETECTION)
                            .setTypes(BufferedImage.class, DetectedObjects.class)
                            .optFilter("backbone", "resnet50")
                            .optProgress(new ProgressBar())
                            .build();

            try (ZooModel<BufferedImage, DetectedObjects> model = ModelZoo.loadModel(criteria)) {
                try (Predictor<BufferedImage, DetectedObjects> predictor = model.newPredictor()) {
                    DetectedObjects detection = predictor.predict(bufferedImage);
                    System.out.println(detection);
                }
            }
            // 將圖像顯示在標(biāo)簽中
            ImageIcon imageIcon = new ImageIcon(bufferedImage);
            label.setIcon(imageIcon);

            // 刷新窗口
            frame.pack();
            frame.setVisible(true);
        }

    }
    public static BufferedImage matToBufferedImage(Mat matrix) {
        int width = matrix.cols();
        int height = matrix.rows();
        int channels = matrix.channels();
        byte[] data = new byte[width * height * channels];
        matrix.get(0, 0, data);

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
        final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
        System.arraycopy(data, 0, targetPixels, 0, data.length);

        return image;
    }
}

到此這篇關(guān)于基于java實(shí)現(xiàn)簡單的圖片類別識(shí)別的文章就介紹到這了,更多相關(guān)java圖片識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java ArrayList集合中的某個(gè)對(duì)象屬性進(jìn)行排序的實(shí)現(xiàn)代碼

    java ArrayList集合中的某個(gè)對(duì)象屬性進(jìn)行排序的實(shí)現(xiàn)代碼

    這篇文章主要介紹了java ArrayList集合中的某個(gè)對(duì)象屬性進(jìn)行排序的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2016-07-07
  • java實(shí)現(xiàn)的2048游戲完整實(shí)例

    java實(shí)現(xiàn)的2048游戲完整實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)的2048游戲,結(jié)合完整實(shí)例形式分析了java實(shí)現(xiàn)2048游戲功能的相關(guān)數(shù)值運(yùn)算、swing組件布局、事件響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java Web程序?qū)崿F(xiàn)返回JSON字符串的方法總結(jié)

    Java Web程序?qū)崿F(xiàn)返回JSON字符串的方法總結(jié)

    Java Web服務(wù)器端只要把Java對(duì)象數(shù)據(jù)轉(zhuǎn)成JSON字符串,把JSON字符串以文本的形式通過response輸出即可,
    2016-05-05
  • Java反射機(jī)制用法總結(jié)

    Java反射機(jī)制用法總結(jié)

    反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語言的反射機(jī)制。下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • @JsonFormat 實(shí)現(xiàn)日期格式自動(dòng)格式化

    @JsonFormat 實(shí)現(xiàn)日期格式自動(dòng)格式化

    這篇文章主要介紹了@JsonFormat 實(shí)現(xiàn)日期格式自動(dòng)格式化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JVM中判定對(duì)象需要回收的方法

    JVM中判定對(duì)象需要回收的方法

    這篇文章主要介紹了jvm中如何判定對(duì)象需要回收,jvm在確定是否回收的對(duì)象的時(shí)候采用的是root搜索算法來實(shí)現(xiàn),需要的朋友可以參考下
    2022-04-04
  • idea中的jvm調(diào)優(yōu)方式

    idea中的jvm調(diào)優(yōu)方式

    這篇文章主要介紹了idea中的jvm調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn)

    JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn)

    本文主要介紹了JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 解析Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)路徑的問題

    解析Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)

    大家都很糾結(jié)這個(gè)問題在使用getServletContext().getRealPath()得到的是臨時(shí)文件的路徑,每次重啟服務(wù),這個(gè)臨時(shí)文件的路徑還好變更,下面小編通過本文給大家分享Spring Boot內(nèi)嵌tomcat關(guān)于getServletContext().getRealPath獲取得到臨時(shí)路徑的問題,一起看看吧
    2021-05-05
  • java中數(shù)組list map三者之間的互轉(zhuǎn)介紹

    java中數(shù)組list map三者之間的互轉(zhuǎn)介紹

    java中 數(shù)組 list map之間的互轉(zhuǎn)一張圖清晰呈現(xiàn)并附有代碼,不懂的朋友可以參考下
    2013-10-10

最新評(píng)論

兴海县| 乌鲁木齐市| 深圳市| 宁津县| 桂林市| 霸州市| 海宁市| 新乡县| 防城港市| 闵行区| 抚顺县| 紫云| 密云县| 永德县| 鄂尔多斯市| 淳化县| 永靖县| 英吉沙县| 满城县| 阿瓦提县| 保亭| 若尔盖县| 方城县| 长兴县| 昭通市| 德保县| 临湘市| 海宁市| 渝北区| 万盛区| 潮州市| 吉木乃县| 井研县| 莱州市| 西城区| 漯河市| 措勤县| 东阳市| 开封市| 鄂州市| 涪陵区|