Binarize
詳細とオプション
- 大域的閾値を使った二値化は非常に一般的な分割方法の一つである.
- Binarizeは,多チャンネルの画像あるいはカラー画像をグレースケールに変換し,次にすべての画素が0または1の値を持つ画像を作成する.
- Binarizeは,任意の2Dおよび3Dの画像に使用できる.
- Binarize[image,{t,t}]は事実上値が t の画素を1に,その他の画素を0に設定する.
- Binarize[image,f]では,関数 f は各画素のチャンネル値のリストに適用される.
- Binarize[image]は大津のクラスタ分散最大化法を使う.Methodオプションのその他の可能な設定値は以下の通りである.
-
{"BlackFraction",b} すべての画素のうち割合 b を黒くする "Cluster" クタスタ分散最大化法(大津アルゴリズム) "Entropy" ヒストグラムエントロピー最小化(Kapurメソッド) "Mean" 平均レベルを閾値として使う "Median" 中央値画素レベルを閾値として使う "MinimumError" Kittler–Illingworth最小誤差閾値法 - 明示的な閾値が与えられた場合は,BinarizeはMethodオプションを無視する. »
予備知識
- Binarizeは,画素値が0と1に対応する,画像の2レベル(二値化)バージョンを作る.Binarizeはコントラストを高めるので,特徴検出や画像分割に,あるいは他の画像処理関数を適用する前の処理段階として使われることが多い.
- Binarizeは,前景画素すべてが背景画素よりも高い強度の値を持つ場合に特に有効である.これは,画素(あるいは点)の操作である.つまり,各画素に個別に適用される.
- Binarizeは,画像についての強度閾値ならびに他の二値分割法を実装し,自動的に,あるいは特定の明示的なカットオフ値で使われる.Binarizeを適用すると,存在するアルファチャンネルは削除され,1チャンネルの画像が生成される.
- より高度な他の二値分割関数には,MorphologicalBinarize,RegionBinarize,ChanVeseBinarizeがある.
例題
すべて開く すべて閉じる例 (2)
スコープ (8)
データ (3)
パラメータ (5)
Binarize[[image], 0.2]Binarize[[image], {.3, .5}]Binarize[[image], 0]Binarize[[image], {1, 1}]Binarize[[image], #[[1]] > #[[2]] + 0.15&]オプション (6)
Method (6)
Binarize[[image], Method -> "Cluster"]Kittler–Illingworth最小誤差法を使って,2つのガウス分布から描かれた画素を分類する:
BlockRandom[RandomSeed[0];
i1 = RandomImage[NormalDistribution[.25, .1], {200, 100}];
i2 = RandomImage[NormalDistribution[.7, .05], {50, 50}]];
image = ImageCompose[i1, i2]Binarize[image, Method -> "MinimumError"]Binarize[[image], Method -> "Entropy"]Binarize[[image], Method -> "Mean"]Binarize[[image], Method -> "Median"]t = Table[Binarize[[image], Method -> {"BlackFraction", b}], {b, {.1, .3, .5, .7}}]黒い画素の実際の割合は,量子化のために若干異なるかもしれない:
With[{fractions = ImageLevels[#][[All, 2]]}, First[fractions] / Total[fractions]]& /@ t//Nアプリケーション (4)
特定の黒の割合で勾配画像を二値化して最も強いエッジを求める:
Binarize[GradientFilter[[image], 1], Method -> {"BlackFraction", .8}]image = [image];Binarizeを使って高強度の画素を得る:
α = Binarize[image, 2 / 3]SetAlphaChannel[image, DeleteSmallComponents[α]]objects = Binarize[[image], {0, .5}]ComponentMeasurements[objects, "Centroid"]Table[Tooltip[Binarize[[image], Norm[# - List@@color] < .5&], color], {color, {Red, Lighter[Green, .2], Yellow}}]特性と関係 (8)
指定された閾値の解釈は,すべての画像データ型について等しい:
Binarize[Image[{{0, 1, 253, 255, 252}}, "Byte"], 252 / 255]Binarize[Image[{{0, 1, 253, 255, 252}} / 255., "Real"], 252 / 255]rgb = [image];Binarize[rgb, .25] == Binarize[ColorConvert[rgb, "Grayscale"], .25]ColorSpace->Automaticの多チャンネル画像では,チャンネル値の平均が使われる:
multi = Image[{{{0, 0, 0}, {0, 0, 255}, {0, 255, 0}, {0, 255, 255}, {255, 0, 0}, {255, 0, 255}, {255, 255, 0}, {255, 255, 255}}}, "Byte", ColorSpace -> Automatic, ImageSize -> 200]Binarize[multi, {.25, .45}]ImageApply[If[.25 ≤ Mean[#] ≤ .45, 1, 0]&, multi]Binarize[image,f]では,image の色空間とは関係なく,画素値は f に渡される:
data = {{{0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {1, 0, 0}, {1, 0, 1}, {1, 1, 0}}};
images = Image[data, ImageSize -> 150, ColorSpace -> #]& /@ {"RGB", "HSB"}f[pixel_] := TrueQ[.25 ≤ Mean[pixel] ≤ .45];
Binarize[#, f]& /@ images閾値とMethodオプションの両方が指定されている場合は,Method設定が無視される:
i = [image];Binarize[i, {0, 0}, Method -> "Mean"]{Binarize[i, {0, 0}], Binarize[i, Method -> "Mean"]}Binarizeは,画素の位置や近傍とは関係なく,画素値に作用する:
image = [image];Binarize[image, .6]MorphologicalBinarizeを使うと,明るい色の画素に接続している暗い色の画素もまた1に設定される:
MorphologicalBinarize[image, {.5, .6}]ChanVeseBinarizeは,一定の色領域の周辺に最適な輪郭を求める:
image = [image];{Binarize[image, 2 / 3], ChanVeseBinarize[image, "TargetColor" -> Yellow]}ImageApplyを使って強度閾値化を実装する:
ImageApply[Boole[# > 0.5]&, [image]]考えられる問題 (1)
image = [image];Binarize[image, Function[pixel, If[pixel > .5, 1, 0]]]関数がTrueを返すとき,かつそのときに限り,出力画素は白である:
Binarize[image, Function[pixel, pixel > .5]]インタラクティブな例題 (1)
さまざまなMethodの設定をインタラクティブに比較する:
i = [image];
TabView[(If[Head[#] === List, First[#], #] -> Row[{Binarize[i, Method -> #], " ", ImageHistogram[i, ...]}]&) /@ {{"BlackFraction", 0.33}, "Cluster", "Entropy", "Mean", "Median", "MinimumError"}]テクニカルノート
-
▪
- 画像処理
テキスト
Wolfram Research (2008), Binarize, Wolfram言語関数, https://reference.wolfram.com/language/ref/Binarize.html (2012年に更新).
CMS
Wolfram Language. 2008. "Binarize." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2012. https://reference.wolfram.com/language/ref/Binarize.html.
APA
Wolfram Language. (2008). Binarize. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Binarize.html
BibTeX
@misc{reference.wolfram_2026_binarize, author="Wolfram Research", title="{Binarize}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/Binarize.html}", note=[Accessed: 18-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_binarize, organization={Wolfram Research}, title={Binarize}, year={2012}, url={https://reference.wolfram.com/language/ref/Binarize.html}, note=[Accessed: 18-August-2026]}