《R语言与农业数据统计分析及建模》学习——数字图像处理

        数字图像处理(digital  image processing)又称计算机图像处理,它是指将图像信号转换成数字信号并利用数字图像处理计算机对其进行处理的过程。

        常见的数字图像处理是通过计算机对图像进行去除噪声增强复原分割提取特征等处理。

        R语言中使用EBImage图像处理包:能够在R语言环境下进行信号处理、统计建模、机器学习和图像数据可视化。

# 安装EBIamge包

install.packages("BiocManager")

BiocManager::install("EBImage")

1、图像的读入与显示

        把图片放入工作路径,使用system.file函数读入。

# 载入EBImage包
library(EBImage)
# 读入图像
f<-system.file("images","sample-color.png",package='EBImage')
# 查看图像
img<-readImage(f)
display(img)
# 查看直方图
hist(img)

2、图像的三基色

        图片实际上是由RGB三个通道混合而成的,每个通道都反映着各自的颜色信息。

        channel函数:用于处理图像颜色空间通道之间的转换。

# 查看R单通道
img_r<-channel(img,"R")
display(img_r)
# 查看G单通道
img_g<-channel(img,"G")
display(img_g)
# 查看B单通道
img_b<-channel(img,"B")
display(img_b)

3、图像的灰度图

        EBImage包中使用统一的1/3RGB权重将彩色图像转换为灰度图像。公式如下:

0.2126\times R+0.7152\times G+0.0722\times B

# 生成灰度图
img_gray<-channel(img,"gray")
# 显示灰度图
display(img_gray)
# 灰度直方图
hist(img_gray)

4、图像的四则运算

        图像是以矩阵或者数组的形式存储的,对其进行加减乘除数学运算,可以实现图像亮度的增强与减弱。

# 加载EBImage包
library("EBIamge")
# 读入图像
f<-system.file("images",
               "sample-color.png",
               package="EBImage")
img<-readImage(f)
# 四则运算
display(img+0.5)
display(img-0.5)
display(img*0.5)
display(img/0.5)

5、图像的反色与乘方

        通过1-图像,实现图像反色处理,在有些时候可以有效的提取图像的信息。

        图像的乘方操作会使数值小的像素点变得更小最后趋于0,而本身为1的白像素点保持不变。

# display(1-img)

# 乘方

display(img^4)

display(img^0.05)

6、图像的合并与差分

        通过两张图像的加减可以实现图像的合并与差分。效果展示如下:

7、裁剪、缩放、平移

        EBImage包中提供了translate、resize、rotate等函数来实现图像的平移、尺寸缩放、旋转、平移等操作。

# 图像裁剪
img_crop<-img[366:768,58:512,1:3]
display(img_crop)
# 图像缩放
img_re<-resize(img,w=128,h=85)
display(img_re)
# 图像平移
img_translate<-translate(img,c(100,-50))
display(img_translate)
# 图像旋转
img_rotate<-rotate(img,30,bg.col="yellow")
display(img_rotate)
# 图像转置
img_t<-transpose(img)
display(img_t)
# 图像沿y轴反转
img_flip<-flip(img)
display(img_flip)
# 图像沿x轴反转
img_flop<-flop(img)
display(img_flop)
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值