始める無料で始める

エッジの検出(1)

フィルターは「検出器」としても使用できます。画像の一部が重みのパターンに一致すると、返される値は非常に大きく(または非常に小さく)なります。

エッジ検出の場合、そのパターンはある平面に沿った輝度の変化です。水平エッジを検出するフィルターは次のようになります:

weights = [[+1, +1, +1],
           [ 0,  0,  0],
           [-1, -1, -1]]

この演習では、垂直エッジ検出器を作成し、手のX線画像(im)に対してどの程度うまく機能するかを確認しましょう。

この演習はコースの一部です

Python による生体医療画像解析

コースを見る

演習の手順

  • 左から右への輝度の変化を検出する、3×3の配列のフィルター重みを作成してください。使用できる値は 10-1 のみです。
  • im をエッジ検出器で畳み込んでください。
  • seismic カラーマップを使って水平エッジをプロットしてください。カラーマップのスケールを調整するために vmin=-150vmax=150 を使用します。
  • カラーバーを追加して結果を表示してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Set weights to detect vertical edges
weights = [[____], [____], [____]]

# Convolve "im" with filter weights
edges = ____

# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()
コードを編集して実行