今回はOpenCVを使う上でよく使うと思われるいくつかの基本的な画像処理を紹介します。
 元画像として、適してるのかはわかりませんが私のアイコンを利用します。
test
↑これ(test.jpg)です。

①グレースケール
 画像処理といったらこれといった感じです。明暗のみの情報になるので処理するのが簡単になります。
  1. %matplotlib inline
  2. import cv2
  3. import matplotlib.pyplot as plt
  4.  
  5. gry_img = cv2.imread('test.jpg', 0)

  6. cv2.imwrite('output.jpg',gry_img)

 第1引数"test"を第2引数"0"(グレースケール)で読み込みます。
 実行結果↓
output


②二値化
 これもよく画像処理で使われます。白と黒の二色だけで構成される画像にします。
  1. %matplotlib inline
  2. import cv2
  3. import matplotlib.pyplot as plt
  4.  
  5. gry_img = cv2.imread('test.jpg', 0)
  6. ret, threshold_img = cv2.threshold(gry_img, 127, 255, cv2.THRESH_OTSU) 
  7.  
  8. cv2.imwrite('output.jpg',threshold_img)

 第2引数で閾値を決め、第3引数で白い部分の値、第4引数で二値化を実行しています。
 実行結果↓
output


③エッジ検出
 画像の中のものの輪郭を検出します。
  1. %matplotlib inline
  2. import cv2
  3. import matplotlib.pyplot as plt
  4.  
  5. img = cv2.imread('test.jpg', 0)
  6. canny_img = cv2.Canny(img, 50, 110)
  7.  
  8. cv2.imwrite('output.jpg',canny_img)

 第2,3引数が閾値になります。
 実行結果↓
output


④ぼかし
  1. %matplotlib inline
  2. import cv2
  3. import matplotlib.pyplot as plt
  4.  
  5. img = cv2.imread('test.jpg')
  6. gauss_img = cv2.GaussianBlur(img, (15,15), 0)
  7.  
  8. cv2.imwrite('output.jpg',gauss_img)

 第2引数でカーネルを、第3引数で標準偏差を設定します。
 実行結果↓

output


 これらを利用したりしなかったりしてもっと複雑な処理をしていきたいと思います。