Opencv3系についてのメモ
基本的には公式ドキュメントを確認しながらの物。
####環境
windows10 home 64bit
Python 3.7.9
opencv 3.4.2.17
Jupyter Notebook使用(Anaconda不使用)
###使用画像について
画像については自分で撮影した肉を使用。
形式としては.pngを使用。
.jpgでも問題なし
cap_dir = "使用画像を保存したフォルダを指定"
以後はすべてこの変数を使用しています。
###①画像読み込みについて
1)cv2.imread(第1引数、第2引数)
img1 = cv2.imread(cap_dir,0)
img2 = cv2.imread(cap_dir,1)
img3 = cv2.imread(cap_dir,-1)
img4 = cv2.imread(cap_dir,cv2.IMREAD_GRAYSCALE)
img5 = cv2.imread(cap_dir,cv2.IMREAD_COLOR)
img6 = cv2.imread(cap_dir,cv2.IMREAD_UNCHANGED)
第1引数:読み込みたい画像
第2引数:画像に関するフラグ
普通に使用するだけなら0 or 1で問題ないと思います。
読み込み後の処理でどうするかなのでカラーで使うかグレーで使うかでいいと思います。
むしろアルファチャンネルなる物は初めて見ました。
画像みてもわかりません。
###②画像表示について
1)cv2.imshow(第1引数、第2引数)
2)cv2.waitKey(第1引数)
3)cv2.destroyAllWindows(第1引数)
4)cv2.namedWindow(第1引数、第2引数)
img = cv2.imread(cap_dir,1)
cv2.namedWindow('niku',cv2.WINDOW_NORMAL)
cv2.imshow('niku',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1)cv2.imshow(第1引数、第2引数)
第1引数:表示ウインドウ名(文字型で入力)
第2引数:表示したい画像
2)cv2.waitKey(第1引数)
第1引数:キーボード入力待ち時間(ms単位)
ウエイトと思っていたが、公式曰く入力受付時間らしい
0にしておけば無制限入力待ちとなる。
3)cv2.destroyAllWindows(第1引数)
第1引数:未入力なら開いているすべてのウインドウを閉じる。
複数開いているときに閉じたいウインドウ名を入力すると
入力した名前のウインドウを閉じる
4)cv2.namedWindow(第1引数、第2引数)
第1引数:ウインドウ名(文字型)
第2引数:デフォルトでcv2.WINDOW_AUTOSIZE
が設定されている。
通常開いた画像はウインドウの大きさは固定だが
第2引数にcv2.WINDOW_NORMAL
と入力すると
マウス操作で大きさを任意で変更出来る様になる。
ただ注意として、第1引数をimshowの第1引数で設定した名前と違う名前にすると
画像のない別ウインドウが立ち上がって意味がなくなる。
下記は名前が一致しない場合
ウインドウの大きさがいじれるのは左側
###③画像保存について
1)cv2.imwrite(第1引数、第2引数)
cv2.imwrite('test.png',img)
第1引数:保存画像名
第2引数:保存画像
これで画像を保存するとスクリプトがある場所と同じ所に画像が保存される。
save_dir = "画像を保存したいディレクトリ"
save_name = "画像名"
save_ext = ".png"
cv2.imwrite((save_dir + save_name + save_ext),img)
とすれば指定した場所に画像を保存する事が出来ます。
多分、上記の様な使い方がデフォになると思います。
###④まとめ
他の物も順次まとめていく予定です。