-1

私はここに新しいです、これは私の最初の投稿です。VideoCapture で問題が発生しました: 撮影した写真の名前を「for」関数で自動的に変更し、選択したディレクトリに写真を保存したいのですが、何をしなければならないかわかりませんでした。そしてインターネット上で見つけられませんでした。知っている人がいたら、助けてください。コマンド ラインの例を次に示します。

from VideoCapture import Device
cam = Device()
cam.saveSnapshot('here i want to call a variable, but i don't know how.jpg')

それでこれです。また、ディレクトリをどこに書き込む必要があるのか​​もわかりません。

ありがとう

4

3 に答える 3

0

ostringstreamC++ では、通常、次のように文字列を でまとめます。

std::ostringstream filename;

for (int i=0; i<10; i++) {
    filename << "variable: " << i << ".jpg";
    cam.saveSnapshot(filename.str().c_str());
}

C++ (もしあれば) でどの部分を行っているのか、Python で何をしているのかは完全には明らかではありません...

于 2012-05-26T01:02:59.467 に答える
0

このsaveSnapshot()メソッドは、最初の非self引数としてファイル名を取ります。
参考: http: //videocapture.sourceforge.net/html/VideoCapture.html

つまり、次のようなことができます。

import os
from VideoCapture import Device

save_dir = '/path/to/my/img/dir' # or for windows: `c:/path/to/my/img/dir` 
img_file_name = 'an_image.jpg'

cam = Device()
cam.saveSnapshot( os.path.join(save_dir, img_file_name) )
于 2012-05-26T01:19:55.280 に答える
0

これはとても簡単です。

from VideoCapture import Device
from os.path import join, exists
# We need to import these two functions so that we can determine if
# a file exists.

import time
# From your question I'm implying that you want to execute the snapshot
# every few seconds or minutes so we need the time.sleep function.

cam = Device()

# First since you want to set a variable to hold the directory into which we
# will be saving the snapshots.
snapshotDirectory = "/tmp/" # This assumes your on linux, change it to any 
# directory which exists.

# I'm going to use a while loop because it's easier...
# initialize a counter for image1.jpg, image2.jpg, etc...
counter = 0

# Set an amount of time to sleep!
SLEEP_INTERVAL = 60 * 5 # 5 minutes!

while True:

    snapshotFile = join(snapshotDirectory, "image%i.jpg" % counter)
    # This creates a string with the path "/tmp/image0.jpg"
    if not exists(snapshotFile):
        cam.saveSnapshot(snapshotFile)
        time.sleep(SNAPSHOT_INTERVAL)
    # if the snapshot file does not exist then create a new snapshot and sleep
    # for a few minutes.

    #finally increment the counter.
    counter = counter + 1

それだけです。それはまさにあなたが望むことをするはずです。

于 2012-05-26T04:45:40.840 に答える