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

回答編集履歴

1

追記

2020/06/17 04:49

投稿

fana
fana

スコア12234

answer CHANGED
@@ -6,4 +6,37 @@
6
6
  `int nP = (全画素数の10%);`
7
7
 
8
8
  で,`hist[]`の要素を順に足していったときに,どこまで足すとnP以上になるのか? を調べます.
9
- 例えば,hist[0]~hist[T]までの総和がnP以上となったならば,Tを二値化の閾値とします.
9
+ 例えば,hist[0]~hist[T]までの総和がnP以上となったならば,Tを二値化の閾値とします.
10
+
11
+ ---
12
+
13
+ 取り組み方針の案:
14
+
15
+ (1)まず,以下のような2つの関数を作り,それぞれが妥当に動作することを適当なテストデータを用いる等して十分に確認する.
16
+
17
+ ```
18
+ //Pタイル法により,2値化用の閾値を決定する
19
+ unsigned char Decide_Threshold_by_PercentileMethod(
20
+ const cv::Mat &SrcGrayImg, //入力画像.グレースケール(8bit1ch)であること
21
+ int Percentage //Pタイル法で使うパーセンテージの値(※別にこの形でなくとも,例えば「0.0~1.0の範囲のfloat型」とかでもよい.やりやすい形で.)
22
+ )
23
+ {
24
+ //入力画像のサイズと第2引数とから,nPの値を決めて…
25
+
26
+ //入力画像のヒストグラムhist[]をつくり…
27
+
28
+ //hist[]とnPを用いて敷地を決めて,その値をreturnで返す
29
+ }
30
+
31
+ //画像の2値化処理
32
+ void Binarize(
33
+ const cv::Mat &SrcGrayImg, //入力画像.グレースケール(8bit1ch)であること
34
+ cv::Mat &DstImg, //結果出力先.入力画像と同フォーマット,同サイズであること
35
+ unsigned char Threshold //2値化閾値
36
+ )
37
+ {
38
+ //DstImgの画素値を適切な値にする
39
+ }
40
+ ```
41
+
42
+ (2)上記の2種の機能実装が完成したら,組み合わせて用いてみる.