做为“会电脑”的人,除了“友情”帮别人装系统杀杀毒之外,时常会承担一些图片处理的活。也就是对一些照片施加缩放、旋转、裁剪之类的事情。这类小事自然无需动用photoshop这种庞然大物了。在R语言中就有一个很好玩的biOps包,它可以很方便的进行各类图片处理操作。而且用程序来处理图片有一个天然的优势,就是很容易进行批量处理和自动化处理。下面以本人的头像机器人瓦利来做一些简单的示范。
# 加载扩展包
library(biOps)
# 读取本地的图像文件,观察到此图像是399*399像素的rgb图片
x <- readJpeg("d:\\xccds.jpg")
print(x)
# 先尝试缩放操作,后面的参数是缩放的比例,可以采用四种方式进行插值,这里用的是最近邻法
plot(imgScale(x,1.3,1.3,interpolation='nearestneighbor'))
#之后进行柔化降噪,此处采用的是中位数滤镜
plot(imgBlockMedianFilter(x,5))
# 也很方便进行图片裁剪,先设定好左上角的坐标像素,再设定好图片的宽度和高度即可
plot(imgCrop(x,0,0,399,200))
# 修改后的结果可以用writeJpeg函数存到本地磁盘中
y <- imgCrop(x,0,0,399,200)
writeJpeg(filename='d:\\test.jpg',imgdata=y)
# 另外还有一些有用的处理函数
# 图像聚类以进行颜色的压缩
plot(imgKMeans(x,8))
# 翻转图像
plot(imgHorizontalMirroring(x))
# 负片效果
plot(imgNegative(x))
# 转灰度效果
plot(imgRGB2Grey(x))
图像处理就留给PS之类的吧,在R上花时间不值得
回复删除R的乐趣么。。。。哥们。。。这就叫乐趣,我们都把R当工具,它也可以是玩具,锻炼智力的玩具
删除这个可以用来做图像识别的批量预处理,然后直接就能拿去做学习了。
回复删除