opencvの使い方
概要
- 画像を扱うための様々な機能を提供するライブラリ
- 読み込んだ画像がnumpy arrayとして扱われるので複雑な操作を入れやすい
- ライブラリ名がopencvなのに、インポートしたときの名前がcv2なので一貫性がない
インストール
$ pip install opencv-python
各機能
cv2.imread
- 画像の読み込み
img = cv2.imread("filename")
cv2.normalize
- 画像のノーマライズ
- 引数
- src
- 元のベクトル
- dst
- 出力先ベクトル
- alpha
- 最小値
- beta
- 最大値
- norm_type
- 正規化戦略
- cv2.NORM_MINMAX
- 0 ~ 1に線形にスケーリング
- cv2.NORM_MINMAX
- 正規化戦略
- src
dst = cv2.normalize(src=src, dst=None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)
cv2.threshold
- 画像の二極化を行う
- 入力は1channelのグレースケールなどを期待する
- 引数
- thresh
- ある値で前景(通常は白)と背景(通常は黒)に分ける値
- maxval
- しきい値を超えた時の値
- type
- 戦略
- cv2.THRESH_BINARY
- しきい値を超えたときはmaxvalにそれ以外は0
- cv2.THRESH_TOZERO
- しきい値を超えた値は変わらず、それ以外が0
- cv2.THRESH_TRUNC
- しきい値を超えた値はしきい値になり、それ以外は変わらない
- cv2.THRESH_BINARY
- 戦略
- thresh
ret, img = cv2.threshold(src=img, thresh=10, maxval=255, type=cv2.THRESH_BINARY)
cv2.findContours
- バウンディングボックスを検出するアルゴリズム
- 機械学習を使わないで検出できる
- データセットが小さすぎるときに便利
- 参考