【入門】画像処理概要(Julia)【数値計算】

【入門】画像処理概要(Julia)【数値計算】 数値計算
【入門】画像処理概要(Julia)【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、
MATLAB,Python,Scilab,Julia比較 第3章 その8【画像操作⑦】

を書き直したもの。

各ツール、各言語で画像の読み込み、処理、保存の基本的な記載の仕方を確認していく。
今回はJulia。

使用する画像再掲

今回はJulia。
使用する画像の再掲する。

犬と自転車

ファイル名はdog.jpgとする。

前準備

画像処理用のパッケージを追加する必要がある。
ImagesとImageViewがそれに該当する。

julia> Pkg.add("Images")
julia> Pkg.add("ImageView")

OpenCVベースではなく、ImageMagickベースのパッケージとなる。
この影響か、他の環境と比べてややデータ構造等が変わっている点に注意が必要。

画像読み込み

まずは画像の読み込み。
事前にusing Imagesをしていることが前提にはなる。

julia> using Images
julia> im = load("dog.jpg");

雰囲気は他の環境と一緒だが、関数名は別物。
全体的にかなり乖離した仕様になってると思った方が良い。

画像表示

画像表示は以下。

julia> using ImageView
julia> imshow(im)
犬と自転車(Julia)、ImageView

imshowを使用しており、他の環境と似ているが、
これはたまたま一緒と思った方が良いだろう。

画像処理

まずは、赤の成分を抽出。

julia> imc=channelview(im);
julia> imc[2:3,:,:].=0;
julia> im=colorview(RGB, imc);
julia> imshow(im);
犬と自転車(赤抽出)(Julia)、ImageView

ここらへんから、他の環境との違いが見えてくる。

他の環境では、画像を読み込んだ際に配列として取得されるのだが、
Juliaの場合は構造体的な形で取得される。
それを配列に変換するのが、channelview
その配列を元の構造体に戻すのがcolorview。
配列の状態も他の環境と異なり、
channel,y,xの順番になってる。
他の環境はy,x,channel。
その違いは
imc[2:3,:,:].=0;
で現れている。

MATLABとかだと、
im(:,:,(2:3)) = 0;
だったから、色の要素の位置が違うのがわかるだろう。
ここはかなり注意が必要。

そして、左右反転。

julia> imc=imc[:,:,end:-1:1];
julia> im=colorview(RGB, imc);
julia> imshow(im);
犬と自転車(赤抽出)(左右反転)(Julia)、ImageView

MATLABの時は、
im = im(:,end:-1:1,:);
だったが、
MATLAB:y,x,channel
Julia:channel,y,x
の影響で反転させる次元が違う。

画像書き出し

最後は画像の書き出し。

julia> im=colorview(RGB, imc);
julia> save("dog2.jpg",im);

colorviewで構造体に戻さないと書き出しができない。

これはimshowによる表示の時も一緒。
先ほどは、loadしたものをそのままimshowしたのでcolorviewの出番はなかったが、
実際はimshowの直前でcolorviewを使用することになるはず。

まとめ

  • Juliaで画像処理。
  • ImagesとImageViewのパッケージをインストール。
    • OpenCVではなくImageMagickを使用したパッケージなので他の環境と性格が異なる。
  • ImagesのAPIとやり取りする場合は基本構造体ベースだが、処理をする際は配列にするなど行ったり来たりが発生する。

MATLAB、Python、Scilab、Julia比較ページはこちら

社会のなかの数理 [新装版]──行列とベクトル入門──

社会のなかの数理 [新装版]──行列とベクトル入門── | イアン・ブラッドリー, ロナルド・L・ミーク, 小林 淳一, 三隅 一人 |本 | 通販 | Amazon
Amazonでイアン・ブラッドリー, ロナルド・L・ミーク, 小林 淳一, 三隅 一人の社会のなかの数理 ──行列とベクトル入門──。アマゾンならポイント還元本が多数。イアン・ブラッドリー, ロナルド・L・ミーク, 小林 淳一, 三隅 一人...

なっとくする演習 行列・ベクトル なっとくする演習・行列 ベクトル (なっとくシリーズ)

Amazon.co.jp: なっとくする演習 行列・ベクトル なっとくする演習・行列 ベクトル (なっとくシリーズ) eBook : 牛瀧文宏: Kindleストア
Amazon.co.jp: なっとくする演習 行列・ベクトル なっとくする演習・行列 ベクトル (なっとくシリーズ) eBook : 牛瀧文宏: Kindleストア

ゼロからはじめるPID制御

ゼロからはじめるPID制御 | 熊谷 英樹 |本 | 通販 | Amazon
Amazonで熊谷 英樹のゼロからはじめるPID制御。アマゾンならポイント還元本が多数。熊谷 英樹作品ほか、お急ぎ便対象商品は当日お届けも可能。またゼロからはじめるPID制御もアマゾン配送商品なら通常配送無料。

基礎からわかる時系列分析―Rで実践するカルマンフィルタ・MCMC・粒子フィルタ― Data Science Library

基礎からわかる時系列分析―Rで実践するカルマンフィルタ・MCMC・粒子フィルタ― Data Science Library | 萩原 淳一郎, 瓜生 真也, 牧山 幸史, 石田 基広 | 数学 | Kindleストア | Amazon
Amazonで萩原 淳一郎, 瓜生 真也, 牧山 幸史, 石田 基広の基礎からわかる時系列分析―Rで実践するカルマンフィルタ・MCMC・粒子フィルタ― Data Science Library。アマゾンならポイント還元本が多数。一度購入いた...

観測と最小二乗法―測量・G空間データの解析

Amazon.co.jp: 観測と最小二乗法―測量・G空間データの解析 : 西 修二郎: 本
Amazon.co.jp: 観測と最小二乗法―測量・G空間データの解析 : 西 修二郎: 本

ディジタル画像処理[改訂第二版]

Amazon.co.jp: ディジタル画像処理 [改訂第二版] eBook : ディジタル画像処理編集委員会: 本
Amazon.co.jp: ディジタル画像処理 eBook : ディジタル画像処理編集委員会: 本

高校数学でわかるフーリエ変換―フーリエ級数からラプラス変換まで (ブルーバックス)

Amazon.co.jp: 高校数学でわかるフーリエ変換 : フーリエ級数からラプラス変換まで (ブルーバックス) eBook : 竹内淳: 本
Amazon.co.jp: 高校数学でわかるフーリエ変換 : フーリエ級数からラプラス変換まで (ブルーバックス) eBook : 竹内淳: 本

マンガでわかるフーリエ解析

マンガでわかるフーリエ解析 | 渋谷道雄, 晴瀬ひろき, 晴瀬 ひろき, トレンド・プロ, トレンドプロ | 数学 | Kindleストア | Amazon
Amazonで渋谷道雄, 晴瀬ひろき, 晴瀬 ひろき, トレンド・プロ, トレンドプロのマンガでわかるフーリエ解析。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットな...

入門信号処理のための数学―離散フーリエ変換・離散コサイン変換

入門信号処理のための数学―離散フーリエ変換・離散コサイン変換 | 高橋 信 |本 | 通販 | Amazon
Amazonで高橋 信の入門信号処理のための数学―離散フーリエ変換・離散コサイン変換。アマゾンならポイント還元本が多数。高橋 信作品ほか、お急ぎ便対象商品は当日お届けも可能。また入門信号処理のための数学―離散フーリエ変換・離散コサイン変換も...

はじめて学ぶディジタル・フィルタと高速フ-リエ変換: 基礎・原理からよく理解するための (ディジタル信号処理シリーズ)

はじめて学ぶディジタル・フィルタと高速フ-リエ変換: 基礎・原理からよく理解するための (ディジタル信号処理シリーズ) | 三上 直樹 |本 | 通販 | Amazon
Amazonで三上 直樹のはじめて学ぶディジタル・フィルタと高速フ-リエ変換: 基礎・原理からよく理解するための (ディジタル信号処理シリーズ)。アマゾンならポイント還元本が多数。三上 直樹作品ほか、お急ぎ便対象商品は当日お届けも可能。また...

コメント

タイトルとURLをコピーしました