簡體   English   中英

根據條件在Numpy數組中選擇隨機坐標

[英]Pick random coordinates in Numpy array based on condition

我使用了convolution2d來生成關於局部模式條件的一些統計數據。 為了完整,我正在使用圖像,值為0.5是我的'灰色屏幕',我不能在此之前使用蒙版(依賴於其他一些包)。 我想在我的圖像中添加新對象,但它應該至少重疊75%的非灰色屏幕。 讓我們假設新對象是正方形,我將圖像掩蓋在灰色屏幕上與其余部分相比,使用填充1s的n矩陣進行2-d卷積,這樣我就可以得到灰度像素數的總和。補丁。 這一切都有效,所以我有一個矩陣,有合適的位置放置我的新對象。 如何從該矩陣中有效地選擇一個隨機的?

這是一個帶有5x5圖像和2x2卷積矩陣的小例子,我想在我的最后一個矩陣中有一個隨機坐標1(因為該補丁中最多有1個0.5)

圖片:

1    0.5  0.5  0    1
0.5  0.5  0    1    1
0.5  0.5  1    1    0.5
0.5  1    0    0    1
1    1    0    0    1

卷積矩陣:

1    1 
1    1 

復雜的圖像:

3    3    1    0
4    2    0    1
3    1    0    1
1    0    0    0

條件為<= 1:

0    0    1    1
0    0    1    1
0    1    1    1
1    1    1    1

如何有效地獲得1s的均勻分布坐標?

np.wherenp.random.randint應該做的訣竅:

#we grab the indexes of the ones
x,y = np.where(convoluted_image <=1)
#we chose one index randomly
i = np.random.randint(len(x))
random_pos = [x[i],y[i]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM