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

質問編集履歴

4

現時点までに解決したことと、タイトルが文意に沿わない形だったので、変更しました。

2020/01/19 23:40

投稿

Royce
Royce

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- floodFillを用いた二値画像の白黒反転処理がうまくいきません
1
+ floodFillを用いた二値画像の中空部分穴埋めがうまくいきません
body CHANGED
@@ -87,4 +87,14 @@
87
87
  と考えています。
88
88
  しかし、当方画像処理やopenCVの知識に乏しく、原因を解明できない状況です。次の境界検出・描画へ移行できるよう、なんとか解決したいと思っております。
89
89
 
90
- どなた様かお力添え頂きますと、大変助かります。
90
+ どなた様かお力添え頂きますと、大変助かります。
91
+
92
+ ###【更新】現在までの試行錯誤結果
93
+ ソースコード上では、
94
+ 画像の読み込み → 二値化 → 穴埋め → 白黒反転
95
+ の順番でしたが、これを
96
+ 画像の読み込み → 二値化 → **白黒反転** → **穴埋め**
97
+ に変更し、
98
+ `cv2.floodFill(im_floodfill, mask, (100,30), 255)`と穴埋め対象部分を座標指定すると、穴埋めできました。
99
+ ![イメージ説明](9dcd0456d9ea8c4431457ec9931d92b2.png)
100
+ あとは、周りのノイジーな白色部分を削除or無視し、真ん中の大きい物体のみに常に(こちらで座標指定せずとも)穴埋めしてくれるとうれしいものです。

3

タイトルをよりわかりやすく改良しました

2020/01/19 23:40

投稿

Royce
Royce

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- 二値画像の白黒反転処理がうまくいきません
1
+ floodFillを用いた二値画像の白黒反転処理がうまくいきません
body CHANGED
File without changes

2

タイトルをわかりやすくしたのと、ソースコード内の表記を編集しました。

2020/01/19 00:11

投稿

Royce
Royce

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- 二値画像の白黒反転処理につ
1
+ 二値画像の白黒反転処理がうまくきません
body CHANGED
@@ -36,7 +36,7 @@
36
36
  import numpy as np
37
37
 
38
38
  #Step1.画像の読み込み('filename',0(gray scale) or 1(BGR))
39
- img = cv2.imread('img31.tif', 0)
39
+ img = cv2.imread('test_1.tif', 0)
40
40
  #読み込んだ画像は、img_rawの中に[高さ, 幅, (blue, green, red)]のnumpy_arrayとして読み込まれている。
41
41
 
42
42
  #Step2.二値画像を取得(適応的しきい値処理)

1

最終的に実現したいことを<追記>として追加しました。

2020/01/18 10:27

投稿

Royce
Royce

スコア16

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,18 @@
7
7
  ・境界検出と描画
8
8
  ・粒子の形状測定
9
9
  を実行したいと考えています。
10
+
11
+ <追記>
12
+ 二値化は実行できており、現在穴埋め処理でつまづいています。
13
+ 穴埋めで実現したいのはつぎのとおりです。
14
+
15
+ ***粒子の中空(黒)部分の穴埋め***
16
+ ![白黒反転した状態の二値画像](3ddf43e30687ab10c0b4d7fd42e30af6.png)
17
+
18
+ ![粒子の中空(黒)部分の穴埋め](75e5f1744ccecdc0a7b7518e8df9df19.png)
19
+ ***その後、境界を検出させて描画***
20
+
21
+ ![イメージ説明](5aeb8449a1fb506ad55ec62da35acdcd.png)
10
22
  ######実行環境
11
23
  Windows10
12
24
  Python3.6.5