Python入門トップページ


目次

  1. scikit-image のインストール
  2. Matplotlib による画像の表示
  3. 表示関数の定義
  4. RGBA から RGB への変換
  5. グレースケールをイメージする
  6. RGB からグレースケールへの変換
    1. RGB 平均
    2. ITU-R Rec BT.602
    3. Contemporary CRT phosphors (Rec 709)
    4. 3種類の比較
    5. scikit-image の rgb2gray 関数
  7. 平均化フィルタ
    1. 平均化フィルタの自作
    2. 平均化フィルタの一般化
    3. scikit-image の平均化フィルタ関数
  8. ガウシアンフィルタ
  9. バイラテラルフィルタ
  10. ランダムノイズとフィルタ
  11. ソーベルフィルタ
    1. ソーベルフィルタの自作
    2. scikit-image の sobel 関数
    3. 平均化/ガウシアンフィルタとソーベルフィルタの併用

画像フィルタの作成と利用

ソーベルフィルタ

scikit-image の sobel 関数

前のページでソーベルフィルタの理屈がある程度理解できたので,scikit-image のソーベルフィルタを使ってみよう.

まず,「表示関数の定義」ページを参照し,ライブラリのインポートと関数の定義を実行したあと,画像ファイルをグレースケールに変換して表示します.

ink_img = plt.imread('ink.png')
img = color.rgba2rgb(ink_img)
gray_img = color.rgb2gray(img)
show(gray_img)
オリジナル
filters_20_gray.png

scikit-image では filters.sobel 関数が提供されています.詳細やソースコードはここを参照してください.それでは,ソーベルフィルタを適用してその結果を表示します.

sobel_result = filters.sobel(gray_img)
show(sobel_result)
filters_42_sobel.png

しきい値を 0.02 としてエッジの検出を行います.

show(sobel_result < 0.02)
0.02
filters_42_sobel_02.png

以降,しきい値を徐々に大きくします.

show(sobel_result < 0.04)
0.04
filters_42_sobel_04.png
0.06
filters_42_sobel_06.png
0.08
filters_42_sobel_08.png
0.10
filters_42_sobel_10.png
0.12
filters_42_sobel_12.png
0.14
filters_42_sobel_14.png

目次に戻る