2016-08-28 4 views
0

私は画像のバッチを持っていて、私はモード 'rb'で開いている関数を使ってそれぞれを開き、次にそれぞれ読み込み関数を使って読み込みます。今私は、各画像から50のランダムなバウンディングボックスを取得し、それぞれのバウンディングボックスを開いて読み込む機能で再度読みたいと思います。それを行う簡単な方法はありますか?ここでイメージからランダムなバウンディングボックスを取得する方法は? (python)

+0

あなたは実際に何をしたいですか?あなたの質問は混乱しています。 –

+0

イメージから50個のランダムな部分を取りたいと思っています。これらの部分は境界ボックスになります。それを別の.jpgファイルに保存して、オープンおよび読み取り機能を使用してそれらを読み取る必要がありますか?別の方法がありますか? – chrisrn

答えて

0

が可能なソリューションです:あなたが見ることができるように

from random import randint 
from PIL import Image 


def random_bbox(bbox): 
    v = [randint(0, v) for v in bbox] 
    left = min(v[0], v[2]) 
    upper = min(v[1], v[3]) 
    right = max(v[0], v[2]) 
    lower = max(v[1], v[3]) 
    return [left, upper, right, lower] 

filename = "your_image.png" 
im = Image.open(filename) 
bbox = im.getbbox() 
N = 50 

for i in range(N): 
    random_tile = im.crop(random_bbox(bbox)) 
    #random_tile.show() 

あなたは私がラインrandom_tile.show()をコメントしました見ることができるように、この解決策は、1枚の画像からランダムにサブイメージをトリミングされ、今では、処理方法はあなた次第ですそのrandom_tile(保存、微調整、...)

+0

ありがとうございます。私は既にテンソルフローの解を見つけました。私は今、文字列としてバイナリ形式でバウンディングボックスを保存する方法を探しています。 – chrisrn

関連する問題