Image
更多信息和选项
- 图像是由照相机或成像设备捕获的矩形像素网格. 通常以 TIFF、PEG、PNG 等格式进行压缩和存储.
- Image[…] 在笔记本中显示为一个图像.
- Image[data] 每页从上至下顺序设置连续的 data 行,从左至右设置连续的列.
- 在 Image[data] 中,data 中的每个元素可以指定任意数量的通道值.
- data 的元素可以是以下任何一个:
-
v 按灰度级,值从 0(黑色)到 1(白色) {r,g,b} 按红色,绿色,蓝色三色渲染,值从 0 到 1 {c1,c2,c3,…} 表示等间隔色调的通道值 color 指定颜色 - 输入数组 data 可以是 List、NumericArray、SparseArray 等.
- Image[data] 默认情况下允许任何实数,但是只显示 0 到 1 之间的数值.
- Image[data,"type"]可用来创建指定数据类型的图像.提供四舍五入或截断,data 中的值被强制为指定的类型. 缺省情况下,假设为 "Real32".
- "type" 的可能设置包括:
-
"Bit" 整数 0 或 1 "Byte" 整数 0 到 255 "Bit16" 整数 0 到 65535 "Real32" 单精度实数(32 位) "Real64" 双精度实数(64 位) - Image[image,"type"] 可被用于类型间的转换.
- Image 被 AtomQ 这样的函数视为原始对象,在模式匹配时同样被视为原始对象.
- 可以指定下面的选项:
-
AlignmentPoint Center 图形中默认与之对齐的点 BaselinePosition Automatic 怎样与周围的文字基线对齐 ColorSpace Automatic 假定数据的颜色空间 ImageResolution Automatic 显示或导出时的分辨率 ImageSize Automatic 显示时图像的大小 Interleaving Automatic 是否假设通道是交错存取的 Magnification Automatic 如何缩放显示的图像 MetaInformation <||> 与图像相关的元信息 - ColorSpace->cs 指定数据中的值应被解释为特定色彩空间 cs 中的坐标. ColorSpace->Automatic 则视这些数值为任意通道的强度.
- Image[graphics] 实际上使用 Rasterize[graphics,"Image"] 来栅格化 graphics.
- Image[Raster[…]] 把 Raster 对象转换为图像.
- Image[image,opts] 实际上重置了图像的选项.
- 如 Log、Plus 和 Mean 这样的算术和统计运算可直接用于图像. »
- Image 的 Information 包含以下属性:
-
"Channels" 图像通道 "ColorSpace" 为数据假设的颜色空间 "DataType" 基本数据类型 "ImageDimensions" 像素维度 "Interleaving" 数据是否交错存储 "Transparency" 图像是否有透明 (alpha) 通道
背景
- Image 为网上及其他地方能找到的种类繁多的数字图像格式(例如 GIF、PNG,JPG)提供了统一的符号表示. 特别的,Image 对象包含了表示位图值(或者值列表)的二维数组. 图像通常出现在数字摄影、文本和图片的数字化、科学可视化及各种广泛的其它领域中. 图像中的数据可能有各种不同的值,这取决于图像是否是二值的、灰度的,RGB 的,CMYK 的,包含阿尔法通道的等等.
- 在输出中,Image 是作为实际图像的图片,而不是值的二维数组. Image 对象可以用 Export 输出成各种标准图像格式,用 Import 则可以导入许多格式的图像为 Image 对象. Image 对象也可以通过拖拽从外部应用程序插入笔记本中.
- 任意 Graphics 表达式都可以通过应用 Image 函数转换为图像. 类似的,图像也可以通过应用 Raster 函数转换成位图表达式从而可以和其它 Graphics 图形基元一起配合显示. 函数 Show 可被用于把二维向量图形(或 Graphics 对象)和 Image 结合在一起.
- 图像的像素值数组可用 ImageData 得到. ImageDimensions 会给出与 Image 对象相关的位图的像素尺寸. ImageType 会给出一个标签,表示图像内部每个像素使用的数的类型. Image 自身可被用于在图像类型之间转换,而 ImageAdjust 可被用于把所有的实数值图像的值变换到 0 到 1 的范围之内. 图像包含的通道数量则可用函数 ImageChannels 得到.
- Image 对象中有用的选项包括 ColorSpace、Interleaving、ImageResolution、ImageSize 和 Magnification.
范例
打开所有单元 关闭所有单元基本范例 (3)
Image[(| | | |
| --- | --- | --- |
| 0.1 | 0.2 | 0.3 |
| 0.4 | 0.5 | 0.6 |
| 0.7 | 0.7 | 0.9 |)]Image[(| | | |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| (\| \| \| --- \| \| 0 \| \| 0.6 \| \| 0 \|) | (\| \| \| --- \| \| 0.4 \| \| 0.1 \| \| 0.8 \|) | (\| \| \| --- \| \| 0.7 \| \| 0.9 \| \| 0.7 \|) |
| (\| \| \| --- \| \| 1 \| \| 0 \| \| 0.9 \|) | (\| \| \| --- \| \| 0.6 \| \| 0.6 \| \| 1 \|) | (\| \| \| --- \| \| 1 \| \| 0.8 \| \| 0.3 \|) |), ColorSpace -> "RGB"]Import["ExampleData/sample.heic"]Information[%]范围 (18)
基本用途 (3)
Import["ExampleData/rose.gif"]i = [image];res = Image[i, "Real64"]ImageType /@ {i, res}Image[Plot[{Sin[x], Sin[2x]}, {x, 0, 2π}, ImageSize -> 200]]创建图像 (11)
Import["ExampleData/girlcloseup.jpg"]RegionImage[Annulus[]]Image[(| | | | |
| --- | --- | --- | --- |
| 0.6 | 0.5 | 0.5 | 0.1 |
| 0.2 | 0.6 | 0.6 | 0.9 |
| 0.1 | 0.8 | 0.4 | 0.2 |
| 0.7 | 0.5 | 0.1 | 0.5 |)]默认情况下,假定数据位于 0 到 1 之间,并且产生类型为 "Real32" 的图像:
ImageType[%]Image[RandomReal[1, {4, 5, 3}]]Image[{{Red, Green}, {Blue, Gray}}]Image[(| | | | |
| --- | --- | --- | --- |
| 85 | 15 | 126 | 143 |
| 238 | 86 | 225 | 199 |
| 149 | 211 | 232 | 124 |
| 130 | 6 | 102 | 140 |), "Byte"]Image[(| | | |
| - | - | - |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 0 |), "Bit"]从 SparseArray 对象创建图像:
Image[SparseArray[{{2, 3}, {4, 2}} -> 1, {5, 5}]]从 Graphics 对象创建光栅图像:
Image[Plot[Sin[x], {x, 0, 2π}, ImageSize -> 200]]Head[%]从 Graphics3D 对象创建图像:
Image[Graphics3D[Sphere[], ImageSize -> 200]]Head[%]从 GeoGraphics 对象创建图像:
Image[GeoGraphics[GeoRange -> "World"]]Head[%]算术和统计运算 (4)
0.4 * [image] + 0.6 * [image]img = [image];img - EdgeDetect[img]stats = {Total, Min, Max, Mean, Median, StandardDeviation};Dataset[AssociationThread[Text /@ stats -> Through[stats[[image]]]]]系统选项 "IndeterminateValue" 的值用于替代包括 ComplexInfinity 和 Indeterminate 等不能存储在图像中的值.
SystemOptions["ImageProcessingOptions" -> "IndeterminateValue"]data = {{0, 1, 2, 3}};
img = Image[data];data^dataimg^img//ImageData改变当前 "IndeterminateValue" 选项的值:
SetSystemOptions["ImageProcessingOptions" -> "IndeterminateValue" -> 100];img^img//ImageDataSetSystemOptions["ImageProcessingOptions" -> "IndeterminateValue" -> 0 ];选项 (21)
ColorSpace (8)
Image[RandomReal[1, {8, 10}]]用 ImageColorSpace 检查图像的颜色空间:
ImageColorSpace[%]Image[RandomReal[1, {8, 10}], ColorSpace -> "Grayscale"]ImageColorSpace[%]Image[RandomReal[1, {8, 12, 3}], ColorSpace -> "RGB"]Image[RandomReal[1, {8, 12, 4}], ColorSpace -> "RGB"]Image[RandomReal[1, {8, 12}], ColorSpace -> "Graylevel"]Image[RandomReal[1, {8, 12, 2}], ColorSpace -> "Graylevel"]Image[RandomReal[1, {8, 10, 4}], ColorSpace -> "CMYK"]Image[RandomReal[1, {8, 10, 3}], ColorSpace -> "XYZ"]具有任意通道数目的图像使用 ColorSpace->Automatic 存储:
i = Image[RandomReal[1, {8, 10, 12}]]ImageColorSpace[i]ImageChannels[i]Image[RandomReal[1, {2, 3}], ColorSpace -> "RGB"]Image[[image], ColorSpace -> "HSB"]使用 ColorConvert 把像素值转化到新空间中:
ColorConvert[[image], "HSB"]ImageResolution (3)
使用默认缩放级别时,ImageResolution72 表示 72 个像素将占据一英寸的屏幕:
Image[LinearGradientImage[Hue, {72, 72}], ImageResolution -> 72]Table[Image[[image], ImageSize -> All, ImageResolution -> dpi], {dpi, {72, 108, 144, 180}}]某些函数可自动设定 ImageResolution 的值:
Rasterize[Style[Exp[Pi], 50], ImageResolution -> 200]%//OptionsImageSize (3)
Image[RandomReal[1, {8, 12, 3}], ImageSize -> 100]当 ImageSize->Automatic 时,图像的大小可能与实际大小有出入:
Table[RandomImage[1, {1, 1}2^n, ImageSize -> Automatic], {n, 7}]Table[RandomImage[1, {1, 1}2^n, ImageSize -> All], {n, 7}]Image[[image], ImageSize -> 300]Image[[image], ImageSize -> {300, 300}]//FramedInterleaving (3)
i = Image[RandomReal[1, {8, 12, 3}]]使用 Options 提取 Interleaving 设置:
Options[i, Interleaving]ImageDimensions[i]ImageChannels[i]i2 = Image[RandomReal[1, {8, 12, 3}], Interleaving -> False]ImageDimensions[i2]ImageChannels[i2]Image[RandomReal[1, {3, 8, 12}], Interleaving -> False]i1 = [image];i2 = Image[i1, Interleaving -> False]Options[#, Interleaving]& /@ {i1, i2}Magnification (2)
Image[[image], Magnification -> 5]ImageSize 和 Magnification 都控制图像的显示尺寸:
i = [image];{Image[i, ImageSize -> 50], Image[i, Magnification -> 2]}当设置以上两者时,实际采用的是 ImageSize 规范:
Image[i, ImageSize -> 50, Magnification -> 2]MetaInformation (2)
Image[[image], MetaInformation -> {"Owner" -> "John"}]使用 Options 提取元信息:
Options[%, MetaInformation]Import 把 EXIF 信息放入 MetaInformation 选项:
Import["ExampleData/coneflower.jpg"]Options[%, MetaInformation]应用 (2)
属性和关系 (8)
Image 对象是基元,不可以再细分:
AtomQ[[image]]所有 0 以下的数值都显示为黑色,大于 1 的数值都显示为白色:
Image[{Range[-.5, 1.5, .2]}, Magnification -> 15]//Framed对于具有范围外的数值的图像,使用 ImageAdjust 把所有数值缩放至 0 到 1 之间:
ImageAdjust[Image[{Range[-.5, 1.5, .2]}, Magnification -> 15]]//Framed不同图像类型使用不同位深度. 压缩大小可以使用较小的位深度:
i = [image];ImageType[i]ByteCount /@ Table[Image[i, t], {t, {"Byte", "Bit16", "Real32", "Real64"}}]ArrayRules[ImageData[Image[{{0, 1}, {1, 0}}, "Bit"]]]使用 Rasterize 从任何表达式创建图像:
Rasterize[x + y, Background -> StandardBlue]Head[%]使用 RandomImage 创建具有随机像素值的 Image:
RandomImage[1, {10, 10}, ColorSpace -> "RGB"]ConstantImage 可以创建常数颜色的 Image:
ConstantImage[Cyan, {50, 50}]LinearGradientImage 和 RadialGradientImage 可被用于创建渐变图像:
LinearGradientImage[{{Left, Bottom}, {Right, Top}} -> "Rainbow", {50, 50}]RadialGradientImage["Rainbow", {50, 50}]参见
AnimatedImage DynamicImage Image3D Video Rasterize Graphics Raster ArrayPlot ImagePyramid ImageDimensions Binarize ImageData
诠释器类型: Image
神经网络编码器: Image
技术笔记
-
▪
- 图像处理
相关指南
-
▪
- 图像处理和分析 ▪
- 图像表示 ▪
- 创建与导入图像 ▪
- WDF(Wolfram 数据框架) ▪
- 表单结构与布局 ▪
- 科学数据分析 ▪
- Wolfram 数据知识库
相关链接
文本
Wolfram Research (2008),Image,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Image.html (更新于 2019 年).
CMS
Wolfram 语言. 2008. "Image." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/Image.html.
APA
Wolfram 语言. (2008). Image. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Image.html 年
BibTeX
@misc{reference.wolfram_2026_image, author="Wolfram Research", title="{Image}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/Image.html}", note=[Accessed: 04-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_image, organization={Wolfram Research}, title={Image}, year={2019}, url={https://reference.wolfram.com/language/ref/Image.html}, note=[Accessed: 04-November-2026]}