今回の記事ではPythonでOpenCVを用いて画像の水増しを行う方法に関しての記事です。ディープラーニングを行うにあたり1番の課題となるデータの少なさを補ってくれる便利な手法なので是非使いこなせるようになりましょう。
画像の水増しに関してはTensorFlowやKerasなどのライブラリでも使用できるので下記記事を参考にしてみてください。
「[Python]OpenCV・Kerasの画像の水増し方法まとめ(10手法以上)」
OpenCVで画像回転・反転の環境
今回使用するもののVerは下記です。
opencv-python:4.2
ちなみに大好きなdockerで環境作っているのでUbuntuのフォルダ構成ですがローカルで試す方はローカル環境のパスを私の画像パスに入れ替えて使ってください。
また今回行うこと(画像をどうしていくか)も下記です。
・opencvの基本操作
・opencvで画像を回転
・opencvで画像反転
PythonのOpenCV基本操作
import cv2
img = cv2.imread('/models/kanban_origin/kanban.jpg')
#自身の操作画像のパス
print(img.shape)
#大きさの確認(xの幅(縦?),yの幅(横?),色の種類(RGB(カラー)なので3))
#この下からは画像をimgで扱える
cv2.imwrite('/models/changes/0.jpg', img)
#画像の保存(任意のパス,保存したい画像
#==実行====================
#(238, 582, 3)
#Out[6]: True
OpenCVで画像を回転
import cv2
img = cv2.imread('/models/kanban_origin/kanban.jpg')#自身の操作したい画像のパス
angle = 30 #回転させたい角度
h, w = img.shape[:2]
affine = cv2.getRotationMatrix2D((w/2.0, h/2.0), angle, 1.0)
img1 = cv2.warpAffine(img, affine, (w, h))
cv2.imwrite('/models/changes/1.jpg', img1)
OpenCVで画像を反転
import cv2
img = cv2.imread('/models/kanban_origin/kanban.jpg')#自身の操作したい画像のパス
img2 = cv2.flip(img, 0)#上下反転
cv2.imwrite('/models/changes/2.jpg', img2)
img3 = cv2.flip(img, 1)#左右反転
cv2.imwrite('/models/changes/3.jpg', img3)
img4 = cv2.flip(img, 0,1)#上下左右反転
cv2.imwrite('/models/changes/1.jpg', img4)
では今回の記事は以上です。他にも多数の機械学習関連の記事を記載しているので気になる方は是非参考にしてみてください。
コメント
[…] 【Python】PythonのopenCVで画像の水増しを行う方法。 […]
[…] 【Python】PythonのopenCVで画像の水増しを行う方法。 […]
[…] 【Python】PythonのopenCVで画像の水増しを行う方法。 […]