web-dev-qa-db-ja.com

OpenCV-選択した特定のフォルダーに画像を保存する

私はOpenCVとPythonを学んでいます。ウェブカメラからいくつかの画像をキャプチャして保存しました。ただし、デフォルトではローカルフォルダーに保存されます。ダイレクトパスから別のフォルダーに保存したいです。どうすれば修正できますか?

11
Hieu Tran Trung

Ebeneditosが提供するソリューションは完璧に機能します。

ただし、大きなコードスニペットのいくつかのセクションにcv2.imwrite()があり、画像が保存されるパスを変更する場合は、cv2.imwrite()が発生するたびにパスを変更する必要があります。個別に。

Soltiusが述べたように、こちらがより良い方法です。パスを宣言し、cv2.imwrite()に文字列として渡します

import cv2
import os
img = cv2.imread('1.jpg', 1)
path = 'D:/OpenCV/Scripts/Images'
cv2.imwrite(os.path.join(path , 'waka.jpg'), img)
cv2.waitKey(0)

パスを変更する場合は、path変数を変更するだけです。

Kallzが提供するソリューションに基づいて編集

25
Jeru Luke

OpenCVの関数imwriteを使用して実行できます。

import cv2
cv2.imwrite('Path/Image.jpg', image_name)
7
ebeneditos

みんなありがとう。あなたの方法は完璧です。問題を解決するために使用した別の方法を共有したいと思います。関数os.chdir(path)を使用して、ローカルディレクトリをパスに変更しました。その後、普通に画像を保存しました。

6
Hieu Tran Trung

Jeru Lukeによる回答はWindowsシステムでのみ機能します。別のオペレーティングシステム(Ubuntu)で試してみると、エラーなしで実行されますが、イメージはターゲットの場所またはパスに保存されます。

Ubuntuで動作せず、Windowsで動作します

  import cv2
  img = cv2.imread('1.jpg', 1)
  path = '/tmp'
  cv2.imwrite(str(path) + 'waka.jpg',img)
  cv2.waitKey(0)

上記のコードを実行しますが、画像はターゲットパスに画像を保存しません。それから、パスを追加する方法が[〜#〜] os [〜#〜]モジュールを使用してパスを追加する一般的な目的に対して間違っていることがわかりました。

例:

 import os
 final_path = os.path.join(path_1,path_2,path_3......)

ubuntuとWindowsでの作業

 import cv2
 import os
 img = cv2.imread('1.jpg', 1)
 path = 'D:/OpenCV/Scripts/Images'
 cv2.imwrite(os.path.join(path , 'waka.jpg'),img)
 cv2.waitKey(0)

そのコードはWindowsとUbuntuの両方で正常に動作します:)

5
Kallz