基于Mathematica的图像变成黑白图片的算法原理
1、把图片黑白化,最粗略的方法,就是图像二值化。Binarize[img]白色变白,黑色变黑,但是,透明的背景却变成了不透明的黑色。

3、然而,上面的所谓的图img的数值,并不是指像素的数值,这可以通过下面的试验确定出来:f[x_]:=If[x<0.鲂番黟谊66,0,1]Attributes[f]={Listable};(f[#]&/@(img//ImageData))//Image上面的自定义函数f的作用,是把小于0.66的数字用0代替,否则用1代替;Attributes[f]={Listable};为函数f赋予了Listable的属性;用f作用于img对应的图片数据的每一个数值,得到新的图片数据,再转化为图片。此时,我们会得到黑白图吗?结果如下。


5、上面也为我们提供了一个得到黑白图的方法,那就是分离图片的通道,计算机就会把彩色图转化为灰度图,这其实也是黑白图。于是,我们可以这样考虑:img0=Table[Mean/@(data=ImageData[img])[[n]],{n,1,data//Length,1}]//Image取每一个像素的三个数值的平均值,就得到一个单通道图。

7、这和Binarize[img0,0.66]的效果,好像是一样的。
