多语言展示
当前在线:1016今日阅读:27今日分享:41

【Mathematica基础系列】如何处理图像

Mathematica是著名的科学数值编程软件,它丰富的函数库和直观化的操作方式给我们带来了极大的便利,本文讲解如何用Mathematica处理图像。
工具/原料

mathematica

方法/步骤
1

我们先尝试通过import导入mathematica自带的图片,导入图片之后将其命名为i,例如:i = Import['ExampleData/ocelot.jpg']i = Import['ExampleData/lena.tif']运行代码就可得到系统自带图形的输出;

2

通过Import函数,我们还能导入自己电脑中任意路径的需要修改的图片,例如,我们导入一张图片,并命名为image,代码:image=Import['C:\Users\xxx\Desktop\Jingyan\helicopter.jpg'],运行之后即可倒入所需的图片;

3

一个多通道的图像能够被分解成单通道图像的一个列表,反过来,一个多通道的图像能由任何数目的单通道图像来创建,这里把上例中的 RGB 颜色的图像分解成三个灰度图像(代码为:ColorSeparate[image]),上述输出的RGB色阶分离的三个图片实际上是一个列表,可用列表索引输出其中的某一阶,例如输入:ColorSeparate[image][[2]],然后即可输出其中G这一阶的图像;;

4

下面我们用“GaussianFilter”函数首先列出指向垂直行坐标的参数,然后列出指向水平列坐标的参数,下图展示在 -y方向上沿行坐标的一阶高斯导数(代码为:GaussianFilter[image, 2, {1, 0}] // ImageAdjust)以及在-x方向上沿列坐标的一阶高斯导数(代码为:GaussianFilter[image, 2, {0, 1}] // ImageAdjust);

5

下面我们使用“ImageLines”函数 返回标准图像坐标中的线条,例如输入:ImageLines[GradientFilter[image, 1], 0.1, 0.05]Show[image, Graphics[{Red, Thickness[0.01], Line[%]}]]然后运行输出,前一行是返还坐标点,后一行是在图片上绘制直线;

6

下面我们再对图像进行移动操作,首先将图像移动1/4图像宽度,输入:ImagePerspectiveTransformation[image, TranslationTransform[{0.25, 0}]],运行之后可以看到图片向右移动了1/4的图片宽度,下面再以像素为单位就行移动:ImagePerspectiveTransformation[image, TranslationTransform[{80, 0}],  DataRange -> Full],运行之后可以看到图片向右移动了80像素;

7

下面我们对图片进行裁剪操作,首先,我们从图片上方往下裁剪,输入代码:ImageTake[image, 250],运行后就可以看到我们的图片只保留了上方250像素的内容;

8

下面我们对图片就行中心裁剪操作,输入代码:ImageCrop[image, {300, 300}],运行之后就可以看到我们的图片只保留了中心300x300的图片;

9

ImageCrop 主要是用来减小源图像的尺寸,人们也常常希望填充一个图像使得它的尺寸增加. 这里支持所有最普遍的填充方法,我们这里尝试一下应用到例图右边缘的四种不同的填充方法,输入代码:Grid@Partition[  ImagePad[image, {{0, 50}, {0, 0}}, #] & /@ {0, 'Reflected', 'Fixed',     'Periodic'}, 2],运行之后就可以看到下图四种不同的右边缘填充方式;

10

我们还可用'ImageResize'函数来增加和缩减原始图像的大小,例如我们可以输入代码:{ImageResize[image, 600], ImageResize[image, 80]}运行后就可以得到一大一小两幅输出图像;

11

“ImageRotate”函数是另一个常用的空间操作. 它产生的图像,其所有像素都相对于图像中心的支点有一个逆时针旋转,本例将例图旋转了45度,输入代码:ImageRotate[image, \[Pi]/4],运行后就可以得到逆时针转了45度的图像;

12

我们还可以通过ImageAdd函数给图片通道增加值,本例通过相加和相乘来混合图像,输入代码:ImageAdd[ImageMultiply[ImageResize[image, 600], 2/3],  ImageMultiply[i, 1/3]],运行输出是不是就得到了专业软件的多重曝光效果啦,到此,小伙伴们应该学会如何在Mathematica中对图像就行基本操作了吧,赶紧去试试吧。

注意事项
1

选择个人图片的时候要完整地输入文件的路径和文件的后缀

2

因为图像包含的字节比较大,所以运行一会儿之后记得保存程序免得程序溢出报错

推荐信息