OpenCV for Java は Spring Boot を統合してグレースケール テストのデモを作成します

序文

それについて話しましょう。最近、仕事の関係でマシン ビジョンに触れるようになりました。時間をかけて OpenCV を勉強しました。私は JAVA プログラマーなので、この記事の技術的な実装では Java 言語を使用します。

OpenCVのインストールに関する記事をまとめました 比較的簡単に書けるので、今後も改良していきますOpenCVのインストールと設定 - Mac OS環境へのコメント大歓迎_タイピングできる子蜂のブログコード-CSDNブログ

コード例では、Java_My Blog-CSDN Blog_java opencv での opencv の使用について言及しています。

1. まず SpringBoot を作成します。

OpenCV インストール ディレクトリ内の jar パッケージとダイナミック ライブラリ ファイルをプロジェクトにコピーします。

ソース ファイル ディレクトリ (OpenCV はインストール後に自動的に生成されます。そうでない場合は、インストールの章を参照してください)

/usr/local/opencv-4.6.0/build/bin/opencv-460.jar

/usr/local/opencv-4.6.0/build/lib/libopencv_java460.dylib

pom の途中にローカルの opencv 参照を追加します。

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

 2. テストコード

テスト クラス DemoGrayscaleTests.java を作成する

package org.example.opencv;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
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;

@Slf4j
@RunWith(SpringRunner.class)
public class DemoGrayscaleTests {
    @Test
    public void testOpencv() throws Exception {
        // 解决awt报错问题
        System.setProperty("java.awt.headless", "false");
        log.info("java library path: {}", System.getProperty("java.library.path"));
        // 加载动态库
        URL url = ClassLoader.getSystemResource("lib/opencv/libopencv_java460.dylib");
        log.info("url path: {}", url.getPath());

        System.load(url.getPath());
        // 读取图像
        Mat image = imread("/Users/xiaomifeng/Pictures/face.jpeg");
        if (image.empty()) {
            throw new Exception("image is empty");
        }
        imshow("Original Image", image);

        // 创建输出单通道图像
        Mat grayImage = new Mat(image.rows(), image.cols(), CvType.CV_8SC1);
        // 进行图像色彩空间转换
        cvtColor(image, grayImage, COLOR_RGB2GRAY);

        imshow("Processed Image", grayImage);
        imwrite("/Users/xiaomifeng/Pictures/hello.jpg", grayImage);
        waitKey();
    }
}

3. 実行結果

ここで女の子の写真を見つけて試してみたら、完璧でした~

 コード接続

https://download.csdn.net/download/bluerebel/86724203

おすすめ

転載: blog.csdn.net/bluerebel/article/details/127075788