【Mathematica基础系列】如何处理图像
来源:网络收集 点击: 时间:2024-02-25我们先尝试通过import导入mathematica自带的图片,导入图片之后将其命名为i,例如:
i = Import
i = Import
运行代码就可得到系统自带图形的输出;

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

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

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


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


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


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

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

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

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

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


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

选择个人图片的时候要完整地输入文件的路径和文件的后缀
因为图像包含的字节比较大,所以运行一会儿之后记得保存程序免得程序溢出报错
mathematica图像图像处理多重曝光裁剪图像版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_152760.html