如何用R来处理图片

1 biOps安装
sudo apt-get install libfftw3-dev libtiff5-dev
devtools::install_github("cran/biOps")

2 使用
library(biOps)
# 读取本地的图像文件,观察到此图像是320*320像素的rgb图片
x <-  readJpeg("d:\\xccds.jpg")
print(x)
# 先尝试缩放操作,后面的参数是缩放的比例,可以采用四种方式进行插值,这里用的是最近邻法
plot(imgScale(x,1.3,1.3,interpolation='nearestneighbor'))
#之后进行柔化降噪,此处采用的是中位数滤镜
plot(imgBlockMedianFilter(x,5))

# 也很方便进行图片裁剪,先设定好左上角的坐标像素,再设定好图片的宽度和高度即可
plot(imgCrop(x,1,1,320,200))
# 修改后的结果可以用writeJpeg函数存到本地磁盘中
y <- imgCrop(x,1,1,320,200)
writeJpeg(filename='test.jpg',imgdata=y)

# 另外还有一些有用的处理函数
# 图像聚类以进行颜色的压缩
plot(imgKMeans(x,8))

# 翻转图像
plot(imgHorizontalMirroring(x))
# 负片效果
plot(imgNegative(x))
# 转灰度效果
plot(imgRGB2Grey(x))

#图像背景色更换
y <- unclass(x)
y1 <- y[,,1]
y2 <- y[,,2]
y3 <- y[,,3]
#白色255 255 255
z <- y1>220&y2>220&y3>220
y1[z] <- 255  #r
y2[z] <-0       #g
y3[z]<- 0       #b
# 修改后的矩阵再重新组合为图片格式
y <- imagedata(array(data=c(y1,y2,y3),dim=c(320,320,3)))
plot(y)

评论

此博客中的热门博文

V2ray websocket(ws)+tls+nginx分流

Rstudio 使用代理