How to| 创建一个图像对象
图像是一种重要的标准数据结构,与 Wolfram 系统的前端和内核紧密地集成在一起. 当您导入任何具有一种受支持的图像格式的文件时,图像对象默认地被创建. 但是,在掌握了图像表达式的结构和性质的一些基本知识后,您也可以直接创建图像对象.
创建图像对象的最简单方法是将 Image 包在一个矩阵外围,矩阵的元素为0到1之间的实数值:
i = Image[{{0., 1.}, {1., 0.4}}]为了方便起见,这个极小的 2×2 图像显示的比实际尺寸要大——这是前端的自动特性. 在创建图像时,Wolfram 语言要作多个假设,选择图像某些性质的自动值.
要验证这些自动设置,查看图像的 Options:
Options[i]通过显式指定 ColorSpace 创建一个灰度图像:
i = Image[{{0., 1.}, {1., 0.4}}, ColorSpace -> "Grayscale"]现在,ColorSpace 反映您的显式设置:
Options[i]一个 RGB 彩色对象由实数或整数组成的三元矩形数组定义. 具有这种结构的任何数据都可以被看作一个彩色图像.
用 Tuples 创建与初级或二级颜色对应的的三元值:
tu = Tuples[{0, 1}, 3]用 Partition 将该列表分成4列:
arr = Partition[tu, 4]用 Image 创建彩色图像:
i = Image[arr, ColorSpace -> "RGB"]用 InputForm 查看 Image 表达式的内部结构:
InputForm[i]用 ImageData 提取像素值数组. 缺省时,ImageData 返回一个由0到1范围内的实数组成的颜色值的2维数组:
ImageData[i]有时您可能希望观察矩阵列表形式的原始图像数据,每个数据各代表一个颜色通道. 将 Interleaving 设置为 False 来将图像数据转化为这种形式:
ImageData[i, Interleaving -> False]任何矩阵或两个以上具有相同维数的矩阵列表都可用于形成一个新图像. 对余弦函数采样并使用 Image 创建数据的波形图:
imgA = Image[Table[Cos[2(x - π)^2 + (y - π)^2], {x, 0, 2π, .05}, {y, 0, 2π, .05}]]通过合并这样三个模式可以创建一个 RGB 彩色对象,每一个模式用于一个颜色通道. 首先,通过使用 Map 对三个不同函数组成的列表重复进行采样计算来生成数据:
tmp = Map[Table[#, {x, 0, 2π, .05}, {y, 0, 2 π, .05}]&, {Sin[x^2 + y^2], Cos[2(x - π)^2 + (y - π)^2], Sin[(x - 2π)^2 + (y - 2π)^2]}];Image[tmp, ColorSpace -> "RGB", Interleaving -> False]另外,你也可以通过合并由三个灰度图像组成的列表来形成 RGB 图像.
用 Map 及 Image 由 tmp 中的每个采样计算生成一个灰度图像:
Map[Image, tmp]现在,使用带有灰度图像列表的 ColorCombine 来创建 RGB 图像:
ColorCombine[%]