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

Java中使用opencv的問題

 更新時(shí)間:2023年10月31日 14:17:49   作者:我啥都會(huì)  
這篇文章主要介紹了Java中使用opencv的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

作為圖像處理出身,不僅僅要會(huì)C++圖像處理、matlab圖像處理、python圖像處理、最起碼也得會(huì)java圖像處理,當(dāng)然我最終還都用的是opencv這個(gè)機(jī)器視覺庫了。

今天簡單介紹一下java中如何使用opencv。

一、配置庫

(1)官網(wǎng)下載opencv,在opencv\build\java\以及opencv\build\java\x64下提取jar包以及動(dòng)態(tài)庫。

(2)以springboot舉例,在resources下創(chuàng)建lib/opencv文件夾,并將這兩個(gè)包放進(jìn)去。

(3) 在pom.xml添加依賴如下(或者其他方式添加依賴均可)

<dependency>
            <groupId>org</groupId>
            <artifactId>opencv</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar</systemPath>
</dependency>

注意版本要修改成你自己opencv的版本。

至此,配置完成。

二、其他知識(shí)

在java中調(diào)用dll:

// 加載動(dòng)態(tài)庫
URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");
System.load(url.getPath());

三、簡單的例子

(1)創(chuàng)建一個(gè)springboot項(xiàng)目,在測試類中編寫代碼      

讀圖像以及灰度化:

package testopencv.demo;
 
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
import java.net.URL;
 
import static org.opencv.highgui.HighGui.imshow;
import static org.opencv.highgui.HighGui.waitKey;
import static org.opencv.imgcodecs.Imgcodecs.imread;
import static org.opencv.imgcodecs.Imgcodecs.imwrite;
import static org.opencv.imgproc.Imgproc.COLOR_RGB2GRAY;
import static org.opencv.imgproc.Imgproc.cvtColor;
 
@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {
    /**
     * @return
     * @Description
     * @Param
     * @Author zhangsan
     * @Date 2020.09.05 9:43
     **/
    @Test
    public void testOpencv() throws Exception {
        // 解決awt報(bào)錯(cuò)問題
        System.setProperty("java.awt.headless", "false");
        System.out.println(System.getProperty("java.library.path"));
        // 加載動(dòng)態(tài)庫
        URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");
        System.load(url.getPath());
        // 讀取圖像
        Mat image = imread("C:\\Users\\admin\\Pictures\\hello.jpg");
        if (image.empty()) {
            throw new Exception("image is empty");
        }
        imshow("Original Image", image);
 
        // 創(chuàng)建輸出單通道圖像
        Mat grayImage = new Mat(image.rows(), image.cols(), CvType.CV_8SC1);
        // 進(jìn)行圖像色彩空間轉(zhuǎn)換
        cvtColor(image, grayImage, COLOR_RGB2GRAY);
 
        imshow("Processed Image", grayImage);
        imwrite("D://hello.jpg", grayImage);
        waitKey();
    }
}

效果:

四、結(jié)束

簡單介紹了java使用opencv的方法。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot啟動(dòng)報(bào)錯(cuò)Input length = 2的問題解決

    Springboot啟動(dòng)報(bào)錯(cuò)Input length = 2的問題解決

    最近使用Springboot啟動(dòng)報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容java.nio.charset.MalformedInputException: Input length = 2,下面就來介紹一下解決方法,感興趣的可以了解一下
    2024-08-08
  • Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解

    Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解

    在我們開發(fā)項(xiàng)目過程中經(jīng)常需要定時(shí)任務(wù)來幫助我們來做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Spring中@Transactional注解的屬性說明

    Spring中@Transactional注解的屬性說明

    這篇文章主要介紹了Spring中@Transactional注解的屬性說明,@Transactional 是聲明式事務(wù)管理 編程中使用的注解,@Transactional 注解應(yīng)該只被應(yīng)用到 public 方法上,這是由 Spring AOP 的本質(zhì)決定的,需要的朋友可以參考下
    2023-11-11
  • Springboot如何配置Scheduler定時(shí)器

    Springboot如何配置Scheduler定時(shí)器

    這篇文章主要介紹了Springboot如何配置Scheduler定時(shí)器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • SpringMVC使用MultipartResolver實(shí)現(xiàn)文件上傳

    SpringMVC使用MultipartResolver實(shí)現(xiàn)文件上傳

    MultipartResolver 用于處理文件上傳,當(dāng)收到請求時(shí) DispatcherServlet 的 checkMultipart() 方法會(huì)調(diào)用 MultipartResolver 的 isMultipart() 方法判斷請求中是否包含文件
    2023-02-02
  • 淺談java中math類中三種取整函數(shù)的區(qū)別

    淺談java中math類中三種取整函數(shù)的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中math類中三種取整函數(shù)的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn)

    SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot整合ES多個(gè)精確值查詢 terms功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • MyBatis+MyBatisPlus中遇到的一些坑及解決

    MyBatis+MyBatisPlus中遇到的一些坑及解決

    這篇文章主要介紹了MyBatis+MyBatisPlus中遇到的一些坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java值傳遞之swap()方法不能交換的解決

    Java值傳遞之swap()方法不能交換的解決

    這篇文章主要介紹了Java值傳遞之swap()方法不能交換的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • idea?maven項(xiàng)目不支持發(fā)行版本問題及解決過程

    idea?maven項(xiàng)目不支持發(fā)行版本問題及解決過程

    這段描述主要講解了解決Maven項(xiàng)目中JDK版本問題的方法,包括修改環(huán)境變量、配置IDEA編譯器版本以及調(diào)整pom.xml文件等內(nèi)容,通過這些步驟,可以有效解決項(xiàng)目運(yùn)行中的兼容性問題
    2026-06-06

最新評(píng)論

陆丰市| 手游| 桐乡市| 花莲县| 千阳县| 永康市| 永善县| 抚宁县| 五莲县| 墨江| 大洼县| 利津县| 南宁市| 江都市| 渑池县| 托里县| 洱源县| 兴文县| 浮山县| 英超| 永清县| 任丘市| 神农架林区| 黄石市| 石首市| 繁昌县| 舟山市| 呼伦贝尔市| 内乡县| 怀宁县| 台东县| 麟游县| 青岛市| 新乐市| 宾川县| 金溪县| 台东市| 清远市| 东港市| 炉霍县| 扎鲁特旗|