假設有兩個影像。一個稱為小影像,另一個稱為大影像。我想每次運行時一次隨機生成大影像不同部分內的小影像。
所以,目前我有這張圖片。讓我們稱之為大影像 大影像
我也有較小的影像: 小影像
`
def mask_generation(blob_index,image_index):
experimental_image = markup_images[image_index]
h, w = cropped_images[blob_index].shape[:2]
x = np.random.randint(experimental_image.shape[0] - w)
y = np.random.randint(experimental_image.shape[1] - h)
experimental_image[y:y h, x:x w] = cropped_images[blob_index]
return experimental_image
` 我創建了上面的函式,每次呼叫此函式時都會在大影像中生成小影像。注意:blob 索引是我用來呼叫特定“小影像”的索引,因為我有這些小影像的集合,而 image_index 是呼叫特定“大影像”的索引。大影像存盤在名為 experimental_image 的串列中,小影像存盤在名為標記影像的串列中
但是,當我運行它時,我確實得到了隨機生成的小影像,但以前隨機生成的影像永遠不會被洗掉,我不太確定如何繼續它,
示例:當我運行一次 時 當運行一次時
當我運行它兩次 當我運行它第二次
我該如何解決?任何幫助將不勝感激。謝謝
我嘗試了上面的代碼,但沒有像我希望的那樣作業
uj5u.com熱心網友回復:
我想您只需要在代碼中的這次迭代中生成的隨機小影像。您遇到的問題是由于修改了呼叫引數。
當您使用同一個大影像多次呼叫您的函式時
markup_image = ...
result_1 = mask_generation(blob_index=0, image_index=0)
result_2 = mask_generation(blob_index=1, image_index=0)
你在 result_2 中得到了兩個小影像。
這是由于寫入原始影像
experimental_image[y:y h, x:x w] = cropped_images[blob_index]
這會將小影像添加到影像串列中的原始影像中。下次獲取此影像時,小影像已經存在。
修理:
- 不要改變你的影像,例如首先復制影像然后在你的函式中添加小影像
- 可能更好:只給你的功能一個大小影像,并確保他們總是收到一份副本
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/535872.html