Filter とは
Filter と書きましたが,今回扱うのはその中でもSpatial Filter (空間処理フィルタ)です.
空間処理フィルタとは,生の画像データの特徴をより表現するために,取り扱う画像の画素値とその周辺の画素値を用いて,新たな画像を計算する方法です.
空間処理フィルタとは,生の画像データの特徴をより表現するために,取り扱う画像の画素値とその周辺の画素値を用いて,新たな画像を計算する方法です.
ノイズ除去フィルタ
撮影した画像は,必ず何らかのノイズが含まれています.例えば,真っ白の紙を写真で撮ったとしても,画素値が均一になっているとは限りません.光の当たり方であったりとか,そもそも紙が均一ではなかっただとか.
このようなノイズを最低限抑える,というのがこのノイズ除去フィルタです.
このようなノイズを最低限抑える,というのがこのノイズ除去フィルタです.
輪郭抽出フィルタ
画像の特徴量(例えばある部分の面積,輪郭線の長さ,曲率など)は,主に画像の画素値の境界付近にあることが多いです.画像の画素値の境界がくっきりと区別される場合ならよいのですが,現実ではそういうことはありません.このようなときに,画素値境界を見つける方法の一つが輪郭抽出フィルタです.
実装に関して
Filter を知るため,Python で実装を行っていきましょう.
まずは以下のようなRectangle 画像を読み込みます.
まずは以下のようなRectangle 画像を読み込みます.
import numpy as np import dateutil import cv2, matplotlib import matplotlib.pyplot as plt # import rectangle.jpg. img = cv2.imread('./picture/rectangle.jpg') img= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) plt.imshow(img, cmap='gray')
sample.py
これにノイズを付与してみます.
## Add Noise pix = len(img) noise = 5*np.random.randn(pix,pix) img_n = img + noise plt.imshow(img_n,cmap='gray')
sample.py
なお,ノイズに関しては
ImageJ -> Process -> Noise -> Add Noise
によって加えました.