0,255のmask画像から10pixel×10pixelの範囲が255である正方形をランダムに切り出すプログラムを作成したいと考えています。現在1pixel×1pixelの範囲が255である図形(点)をランダムに切り出す(その点のx座標y座標を求める)ことはできたのですがこれを10pixel×10pixelの範囲に変えるにはどうしたらよいのでしょうか?
python
1mask = cv2.imread('./mask.png',0) 2white = np.where(mask == 255) 3white_rand = random.randint(0, len(white[0])) 4x = white[0][white_rand] 5y = white[1][white_rand] 6print(x) 7print(y)
現在考えているのは以下のコードです。このコードでは10pixel×10pixelの範囲が255である正方形の中心の画素のその点のx座標y座標を求めています。しかしこの収縮処理は実行に時間がかかるという欠点があり、もう少し効率の良い方法があれば教えていただきたく思っています。また、コードがミスしていたらその点も教えていただけますでしょうか。
python
1mask = cv2.imread('./mask.png',0) 2kernel = np.ones((10,10),np.uint8) 3mask = cv2.erode(mask,kernel,iterations = 1) 4white = np.where(mask == 255) 5white_rand = random.randint(0, len(white[0])) 6x = white[0][white_rand] 7y = white[1][white_rand] 8print(x) 9print(y)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。