私は画像のフォルダを持っており、私は(動き履歴画像)MHIの処理を進めたいと思います。 for LOOPで2枚の画像を連続して撮る方法がわかりませんでした。フォルダ内の連続する2つのファイルを読み取る方法
ありがとうございました!
私は画像のフォルダを持っており、私は(動き履歴画像)MHIの処理を進めたいと思います。 for LOOPで2枚の画像を連続して撮る方法がわかりませんでした。フォルダ内の連続する2つのファイルを読み取る方法
ありがとうございました!
次のコードは、等々ように、最初の2つのファイルを開く新しいファイルの2番目のペア、およびます
files = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg']
counter = 0
while counter < len(files):
file1 = open(files[counter], 'r')
file2 = open(files[counter + 1], 'r')
counter += 2
forループAが動作しない理由は、2.JPGが一部であるということです最初のファイルセットのうち、ステップを指定しないforループでは、2.jpgが2番目のセットの最初のファイルであり、これは間違っています。
for i in range(0, len(files), 2):
file1 = open(files[i], 'r')
file2 = open(files[i + 1], 'r')
このofcourseのは、数値、文字列を異なるソートできるよう、リストファイルは、正しくソートされていることを前提と例:
のでループのために、あなたはこのようなものが必要でこれを行うには
files = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg']
files = sorted(files)
が生成されます:
['1.jpg', '10.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg']
あなたが見ることができ、10.jpg
は、この「きれい」ここで行う方法の1.jpg
例を次に示します。
import re
def sorted_nicely(l, reverse=False):
""" Sort the given iterable in the way that humans expect."""
convert = lambda text: int(text) if text.isdigit() else text
alphanum_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
return sorted(l, key = alphanum_key, reverse=reverse)
(私はおそらくどこか、インターネットからこのコードを「借り」として、ここでは信用を与えるのが大好きだが、どこ覚えていないことができます)
あなたは2 by 2
方法での使用に仕事をしたい場合:
files = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg']
for img1, img2 in zip(files[::2], files[1::2]):
#do something
、あなたは仕方1-2
に結合したい場合は、2-3
...:
for img1, img2 in zip(files, files[1:]):
#do something
いくつかのコードを共有できますか?例えば。 1つのファイルを繰り返し処理する方法を示しています。次に、2つのファイルを同時に参照する方法を簡単に示しています。 – lenz
Pythonバージョンについて:Python 2または3で作業する予定ですか?または、2/3互換のコードを書こうとしていますか?後者は貴重な計画ですが、絶対に必要な場合を除いてはお勧めしません。なぜなら、あなたは数多くの醜いハッキングを強制するからです。 – lenz