2019年4月2日 更新

ディジタル画像処理~pythonによる空間フィルタリングpart1~ 

ディジタル画像処理を解説します.今回は,代表的な空間フィルタリングをpythonで実行してみました。

13,686 view お気に入り 2
H_p = np.array([[0,-1,0],[0,1,0],[0,0,0]])
F = img_g
G = np.zeros(shp)
for i in range(shp[0]):
    for j in range(shp[1]):
        for n in range(-1,2):
            for m in range(-1,2):
                G[i,j] = G[i,j] + F[(i+m)%shp[0], (j+n)%shp[1]] * H_p[m,n]
Calculation design2.py

これも同様に画像に適用させます。

plt.subplot(1,2,1)
plt.gray()
plt.imshow(F)
plt.title("Before")
plt.subplot(1,2,2)
plt.gray()
plt.imshow(G)
plt.title("After")
Applied picture.py

出力結果は以下の通りです。上手く輪郭線のみを取り出すことができました。

エッジ抽出フィルタの実行

エッジ抽出フィルタの実行

このように、フィルタの重みを変えることによって様々な空間フィルタリングを設計できます。皆さんも是非、空間フィルタリングを用いた画像処理をやってみてください。

36 件

関連する記事 こんな記事も人気です♪

ImageJ Plugin で数値計算をしてみる #5

ImageJ Plugin で数値計算をしてみる #5

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回は、面積の平均値や中央値、分散を出力するためのコードをご紹介します。
湖城 恵 | 10,124 view
Extracting Straight Lines〜画像から境界線を効率よく求める方法〜

Extracting Straight Lines〜画像から境界線を効率よく求める方法〜

本記事では,IEEE Transactions on Pattern Analysis and Machine Intelligence に投稿された,「Extracting Straight Lines」の論文を説明し,実装を行います.1986年に投稿された少し古めの論文ですが,アイディアは非常に面白いです.
Morphology (モルフォロジー) 変換の実装 ~ Python + OpenCV ~

Morphology (モルフォロジー) 変換の実装 ~ Python + OpenCV ~

画像処理の一つ,モルフォロジー変換をPython と OpenCVのライブラリを用いて実装し,それを2値画像に対して適用します.
Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

プログラミング言語「julia」を用いて画像処理を行います.インストールに続き,今回は画像のセグメンテーションのライブラリを用いて,セグメンテーションを行います.
等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

前回の記事「等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 1」の続きです. 実際に実装をして,写像を確かめてみます.

この記事のキーワード

この記事のキュレーター

亀谷 桃子 亀谷 桃子