Java OpenCv Hello in Java〜OpenCv事始め〜

イントロダクション

ついに最近流行りの技術「人工知能」への入り口画像解析を始めたいと思います。以前、中途半端にPythonでOpenCvを使ったのですが、すごく簡単に扱えて「あ〜したらこ〜なる」なんてことを考えさせられる。。。そんなフレームワークだと思います。

参考サイト:OpenCV-ReadingImages

 

OpenCVは、どんなものなのか?

事始めということで

年の瀬も近いのに「事始め」とはおかしな話ですが。。。思い立ったが吉日やらないわけには行きません。
そんなわけで早速サンプルコードを見てみます。とりあえずはどんな動きをするのか見てみようということです。

import org.opencv.core.Core; 
import org.opencv.core.Mat;  
import org.opencv.imgcodecs.Imgcodecs;

public class ReadingImages {
   public static void main(String args[]) { 
      //Loading the OpenCV core library  
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); 

      //Instantiating the Imagecodecs class 
      Imgcodecs imageCodecs = new Imgcodecs(); 

      //Reading the Image from the file  
      String file ="C:/EXAMPLES/OpenCV/sample.jpg"; 
      imageCodecs.imread(file);

      System.out.println("Image Loaded");     
   } 
}

赤字で書いている部分が気になったのでJavaDocAPIを参照してみます。

参考サイトからコードをパクった感じにして以下の様にコードを組みました。

<読み込んだ画像>



<実行結果>

import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;

/**
 * OpenCVの機能を実装するクラス。
 * 
 * @author takunoji
 *
 * 2018/11/11
 */
public class ReceiptCv {
    Imgcodecs imgCodecs;
    static {
        System.loadLibrary("opencv_java343");
    }

    public static void main(String[] args) {
        ReceiptCv rece = new ReceiptCv();
        rece.loadImg("download-1.jpg");
    }

    /**
     * コンストラクタ
     */
    public ReceiptCv() {
        imgCodecs = new Imgcodecs();

    }

    private void loadImg(String fileName) {
        Mat matrix = Imgcodecs.imread(getClass().getResource("/sampleImages/" + fileName).getPath());
        System.out.println("type: " + matrix.type());
        System.out.println("dims: " + matrix.dims());
        System.out.println("height: " + matrix.height());
        System.out.println("width: " + matrix.width());
        System.out.println("rows: " + matrix.rows());
        System.out.println("cols: " + matrix.cols());
    }

    public void helloCv() {
        Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println("m = " + m.dump());
    }
}

OpenCV事はじめ

処理の概要

  1. メインメソッドでこのクラスをインスタンス化、loadImg()に「”download-1.jpg"」を私て実行します
  2. "resources/sampleImages/download-1.jpg"を読み込んでMatを返します、
  3. Matの中身をコンソールに表示 

読み込んだ画像は「レシート」です。家計簿を書く時に使うでしょ?(笑)

OpenCVは画像を読み込んで何かしらの画像編集処理を行うフレームワーク(ライブラリ)ということで、画像ファイルを読み込んでみました。

灰色に変換「グレースケース化」や指定した色のン領域をを表示したり、いろいろなことができるようです。

でわでわ。。。

関連ページ

  1.  Java OpenCV 環境セットアップ(on Mac)
  2. Java Install Eclipse〜開発ツールのインストール〜
  3. Java Doc読解 BufferedReader
  4. Java Doc 読解〜BufferedWriter〜

 

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す