私はOpenCVとPythonを学んでいます。ウェブカメラからいくつかの画像をキャプチャして保存しました。ただし、デフォルトではローカルフォルダーに保存されます。ダイレクトパスから別のフォルダーに保存したいです。どうすれば修正できますか?
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が提供するソリューションに基づいて編集
OpenCVの関数imwrite
を使用して実行できます。
import cv2
cv2.imwrite('Path/Image.jpg', image_name)
みんなありがとう。あなたの方法は完璧です。問題を解決するために使用した別の方法を共有したいと思います。関数os.chdir(path)
を使用して、ローカルディレクトリをパスに変更しました。その後、普通に画像を保存しました。
Jeru Lukeによる回答はWindowsシステムでのみ機能します。別のオペレーティングシステム(Ubuntu)で試してみると、エラーなしで実行されますが、イメージはターゲットの場所またはパスに保存されます。
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......)
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の両方で正常に動作します:)