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" 直方图熵最小化(卡普尔方法) "Mean" 使用平均水平作为阈值 "Median" 使用中位数像素水平作为阈值 "MinimumError" Kittler–Illingworth 最小误差阈值法 - 如果给定一个明确的阈值,Binarize 将忽略 Method 选项. »
背景
- Binarize 创建图像的二值(二元)版本,其像素值只由 0 和 1 组成. Binarize 增强了对比度且通常被用于特征检测、图像分割、或作为使用其它图像处理函数之前的预处理步骤.
- Binarize 在全部前景像素比背景像素有更高强度的值时特别高效. 它是一个像素级(或点级)的运算,这意味着它独立作用于每个像素.
- Binarize 实现了强度阈值及其它二元图像分割的方法,它既可以自动计算也可以通过显式指定临界值计算. 使用 Binarize 会移除全部现存的阿尔法通道然后产生一个单通道的图像.
- 其它更高级的二元图像分割函数有 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 最小误差法对从两个高斯分布得到的像素进行分类:
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] 中,像素值传递给 f,而与 image 的色彩空间无关:
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 语言. 2008. "Binarize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2012. https://reference.wolfram.com/language/ref/Binarize.html.
APA
Wolfram 语言. (2008). Binarize. Wolfram 语言与系统参考资料中心. 追溯自 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: 12-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: 12-August-2026]}