画像処理基础12. ラスタ走査 (つづき)
●画像のベクトル表現
画素値をラスタ走査順に列挙
●任意の画像=XY次元空間内の1点
12
? ?YXyxY fffff ,,,,, ,,,,,,, ??? 12111
次元ベクトルXY
13. 画像のベクトル表現(vector representation of image)
●2値画像画像の場合の例
●多値画像画像の場合の例
13
? ?T
x 0,1,...,1,0,0,1,1,1,1,0,0?
? ?T
x 0,...,0,0,182,213,255,0,0?
49次元ベクトル
49次元ベクトル
7×7画像
7×7画像
20. OpenCV
●http://opencv.org
●CV = “Computer Vision”
●様々な画像解析ライブラリ(関数群)が提供され
ている
●Python用にライブラリが整備されている
●注)アナコンダにはデフォルトでは入っていないため、
インストールが別途必要。
If interested, try at home ?
http://docs.opencv.org/3.0-
beta/doc/py_tutorials/py_tutorials.html
24. 演習2
●skimage から io をインポートする
●“coffee.tiff” を読み込んで、可視化する
●‘pwd’ to make sure your working directory contains
the file “coffee.tiff”
●画像のサイズとピクセルの寸法を求める
32. コントラスト強調
●画素値: (一般的には)0 ~ 255 を取りうる
●実際には、その中の狭い範囲にしか値がない画像も多い
●下記の画像では [50, 100]の値しかない
●コントラストが低い
●skimage.exposure :画像のコントラストを強調(利用する画素
値の幅を広める)する関数が提供されている
34. Histogram equalization
● “Histogram_Equalization.py” を利用
Source: http://scikit-image.org/docs/stable/auto_examples/color_exposure/plot_equalize.html#sphx-glr-
auto-examples-color-exposure-plot-equalize-py
Output images
輝度値のヒストグラム
輝度範囲: [0: 1]
red curve :輝度の積算
元画像 線形変換 ヒストグラム
均一化
ヒストグラム
適応均一化
35. 演習3
●skimage から data をインポートする
●“chealsea"を読み込んで、 red channel > 160 となっている画
素を green [0, 255, 0]に上書きして、表示
●Note on data type
Data type Range
uint8 0 to 255
uint16 0 to 65535
uint32 0 to 232
float -1 to 1 or 0 to 1
int8 -128 to 127
int16 -32768 to 32767
int32 -231 to 231 - 1
reddish = cat[:, :, 0] > 160
cat = data.chelsea() # load the cat image
53. 最も基本的なフィルタ:平滑化
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
53
平滑化用
フィルタマスク
(3x3)
10 10 10
10 20 10
10 10 10
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
10 10 10
10 11 10
10 10 10
内積
マスク原画像平滑化後
66. 演習 3 (downsampling)
●“atronaut” 画像を読み込み, 画像を2分の1のサイズにダウンサンプリン
グしよ
●周辺の画素の平均値を求めて、新画像の1画素の値にする
●ヒント
●float型に変換してデータを取得
?image = data.astronaut().astype(float)
●行と列の数の取得
?nrows, ncols, _ = image.shape (color image は 3次元)
●unsigned int8 型に戻す
?io.imshow(result.astype(np.uint8))
67. 演習 4 (image stiching)
●4つの画像(im1.tiff, im2.tiff, im3.tiff, im4.tiff)を読み込んで、つな
げることで一つの画像を作って、保存しよう!
●ヒント:
●画像の読み込み: io.imread
●画像の大きさ:shape attribute
●画像の初期化: numpy.zero (specify np.uint8 for the type
to show nice results)
●画像の保存 io.imsave