LoginSignup
0
0

More than 3 years have passed since last update.

Opencvについて①

Posted at

Opencv3系についてのメモ

基本的には公式ドキュメントを確認しながらの物。

環境

windows10 home 64bit
Python 3.7.9
opencv 3.4.2.17
Jupyter Notebook使用(Anaconda不使用)


使用画像について

画像については自分で撮影した肉を使用。
形式としては.pngを使用。
.jpgでも問題なし

opencv_test.ipynb
cap_dir = "使用画像を保存したフォルダを指定"

以後はすべてこの変数を使用しています。

①画像読み込みについて

1)cv2.imread(第1引数、第2引数)

opencv_test.ipynb
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で問題ないと思います。
読み込み後の処理でどうするかなのでカラーで使うかグレーで使うかでいいと思います。

むしろアルファチャンネルなる物は初めて見ました。
画像みてもわかりません。

スクリーンショット (333).pngスクリーンショット (334).pngスクリーンショット (335).png


②画像表示について

1)cv2.imshow(第1引数、第2引数)
2)cv2.waitKey(第1引数)
3)cv2.destroyAllWindows(第1引数)
4)cv2.namedWindow(第1引数、第2引数)

opencv_test.ipynb
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引数で設定した名前と違う名前にすると
画像のない別ウインドウが立ち上がって意味がなくなる。

下記は名前が一致しない場合
ウインドウの大きさがいじれるのは左側
スクリーンショット (338).png


③画像保存について

1)cv2.imwrite(第1引数、第2引数)

opencv_test.ipynb
cv2.imwrite('test.png',img)

第1引数:保存画像名
第2引数:保存画像

これで画像を保存するとスクリプトがある場所と同じ所に画像が保存される。

opencv_test.ipynb
save_dir = "画像を保存したいディレクトリ"
save_name = "画像名"
save_ext = ".png"

cv2.imwrite((save_dir + save_name + save_ext),img)

とすれば指定した場所に画像を保存する事が出来ます。

多分、上記の様な使い方がデフォになると思います。


④まとめ

他の物も順次まとめていく予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0