質問するログイン新規登録

質問編集履歴

2

進捗の更新

2019/12/29 03:18

投稿

Nyankoy
Nyankoy

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 0,255のmask画像から10pixel×10pixelの範囲が255である形をランダムに切り出すプログラムを作成したいと考えています。現在1pixel×1pixelの範囲が255である図形(点)をランダムに切り出す(その点のx座標y座標を求める)ことはできたのですがこれを10pixel×10pixelの範囲に変えるにはどうしたらよいのでしょうか?
1
+ 0,255のmask画像から10pixel×10pixelの範囲が255である正方形をランダムに切り出すプログラムを作成したいと考えています。現在1pixel×1pixelの範囲が255である図形(点)をランダムに切り出す(その点のx座標y座標を求める)ことはできたのですがこれを10pixel×10pixelの範囲に変えるにはどうしたらよいのでしょうか?
2
2
  ```python
3
3
  mask = cv2.imread('./mask.png',0)
4
4
  white = np.where(mask == 255)
@@ -7,4 +7,16 @@
7
7
  y = white[1][white_rand]
8
8
  print(x)
9
9
  print(y)
10
+ ```
11
+ 現在考えているのは以下のコードです。このコードでは10pixel×10pixelの範囲が255である正方形の中心の画素のその点のx座標y座標を求めています。しかしこの収縮処理は実行に時間がかかるという欠点があり、もう少し効率の良い方法があれば教えていただきたく思っています。また、コードがミスしていたらその点も教えていただけますでしょうか。
12
+ ```python
13
+ mask = cv2.imread('./mask.png',0)
14
+ kernel = np.ones((10,10),np.uint8)
15
+ mask = cv2.erode(mask,kernel,iterations = 1)
16
+ white = np.where(mask == 255)
17
+ white_rand = random.randint(0, len(white[0]))
18
+ x = white[0][white_rand]
19
+ y = white[1][white_rand]
20
+ print(x)
21
+ print(y)
10
22
  ```

1

質問内容の具体化

2019/12/29 03:18

投稿

Nyankoy
Nyankoy

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,10 @@
1
- 0,255のmask画像から255であるピクセルのx座標とy座標(行番号と列番号)をランダムに一つ出力するプログラムを作成したいと考えています。
2
- 調べているとpythonにはlist型行列から.enumerate(255)とすとで座標をることできるという分かりました。.enumerateのうな形はarray型でもあるのでしょうか?
1
+ 0,255mask画像から10pixel×10pixelの範囲が255であ図形をランダムに切り出すプログラムを作成したい考えています。現在1pixel×1pixelの範囲が255ある図形(点)をランダムに切り出す(その点のx座標y座標求め)ことできたのですがれを10pixel×10pixelの範囲に変えるにどうしたのでしょうか?
3
2
  ```python
4
3
  mask = cv2.imread('./mask.png',0)
5
- mask.enumerate(255)
4
+ white = np.where(mask == 255)
6
- # AttributeError: 'numpy.ndarray' object has no attribute 'enumerate'
5
+ white_rand = random.randint(0, len(white[0]))
6
+ x = white[0][white_rand]
7
+ y = white[1][white_rand]
8
+ print(x)
9
+ print(y)
7
10
  ```