1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Juliaで画像処理(グレースケール化)

Last updated at Posted at 2023-12-25

はじめに

Juliaで画像処理したくてOpenCVが使えることがわかり、試したためまとめます。
ついでに別の方法もあったので併せて紹介します。

OpenCV

まずはOpenCVのパッケージがすでに存在するということで、パッケージを追加。

using Pkg
Pkg.add("OpenCV")

それではコードを書いていきます。

using OpenCV, ImageView

function image_convert_gray(file_path, save_path)
    img = OpenCV.imread(file_path)

    gray_img = OpenCV.cvtColor(img, OpenCV.COLOR_BGR2GRAY)
    
end

image_convert_gray("test.png", "gray.png")

めっちゃOpenCV感ありますね!
ただし、OpenCVで画像を読み込んだ際に、Pythonでは画像が表示されてたと思うんですが、Juliaではピクセルデータで表示されます(関数を作成した場合は表示されません)。
まあ、しっかりグレースケール化して保存はできます!

Images

もう一つの方法はImagesというパッケージを用いるやり方です。
下記のパッケージを追加しておきます。

Pkg.add("Images")
Pkg.add("ImageMagick")

それではコードを書いていきましょう。

using images, ImageMagick

function image_convert_gray(file_path, save_path)
    img = load(file_image)
    gray_img = Gray.(img)
    save(save_path, gray_img)
end

image_convert_gray("test.png", "gray.png")

割とわかりやすいですね。
Grayは単一のデータに対して変換を行います。読み込んだ画像は複数のピクセルデータから成るので、ブロードキャスト(.)を用いて、配列の各要素に関数を適用させる必要があります(Gray.(img))。
Julia感あって個人的にはこちらの方が好きです。

結果

test.png

gray.png

できてますね~。

まとめ

今回はグレースケール化をしてみましたが、画像処理にはいろいろな処理があります。
OpenCVでやるのが楽なのか、その他の方法でやるのが楽なのかはまだわかりませんが、ケースバイケースで使っていけるようになりたいですね。
それでは!!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?