回答編集履歴

1

追記

2020/06/17 04:49

投稿

fana
fana

スコア11658

test CHANGED
@@ -15,3 +15,69 @@
15
15
  で,`hist[]`の要素を順に足していったときに,どこまで足すとnP以上になるのか? を調べます.
16
16
 
17
17
  例えば,hist[0]~hist[T]までの総和がnP以上となったならば,Tを二値化の閾値とします.
18
+
19
+
20
+
21
+ ---
22
+
23
+
24
+
25
+ 取り組み方針の案:
26
+
27
+
28
+
29
+ (1)まず,以下のような2つの関数を作り,それぞれが妥当に動作することを適当なテストデータを用いる等して十分に確認する.
30
+
31
+
32
+
33
+ ```
34
+
35
+ //Pタイル法により,2値化用の閾値を決定する
36
+
37
+ unsigned char Decide_Threshold_by_PercentileMethod(
38
+
39
+ const cv::Mat &SrcGrayImg, //入力画像.グレースケール(8bit1ch)であること
40
+
41
+ int Percentage //Pタイル法で使うパーセンテージの値(※別にこの形でなくとも,例えば「0.0~1.0の範囲のfloat型」とかでもよい.やりやすい形で.)
42
+
43
+ )
44
+
45
+ {
46
+
47
+ //入力画像のサイズと第2引数とから,nPの値を決めて…
48
+
49
+
50
+
51
+ //入力画像のヒストグラムhist[]をつくり…
52
+
53
+
54
+
55
+ //hist[]とnPを用いて敷地を決めて,その値をreturnで返す
56
+
57
+ }
58
+
59
+
60
+
61
+ //画像の2値化処理
62
+
63
+ void Binarize(
64
+
65
+ const cv::Mat &SrcGrayImg, //入力画像.グレースケール(8bit1ch)であること
66
+
67
+ cv::Mat &DstImg, //結果出力先.入力画像と同フォーマット,同サイズであること
68
+
69
+ unsigned char Threshold //2値化閾値
70
+
71
+ )
72
+
73
+ {
74
+
75
+ //DstImgの画素値を適切な値にする
76
+
77
+ }
78
+
79
+ ```
80
+
81
+
82
+
83
+ (2)上記の2種の機能実装が完成したら,組み合わせて用いてみる.