R语言-图像处理

图像字体邻接阵识别, 数据预处理,R代码:

# 加载包
library(jpeg);library(reshape2)
## 数据读取,Box和picture ##
box <- read.table(file="Data/55c9d201N7d9cc61a.box", header = F)
picture <- readJPEG("Data/55c9d201N7d9cc61a.jpg")
dim(picture) # 三维数组
#[1] 872 750   3   
## 数据整理 ##
longImage <- melt(picture)
##转换成Rbg矩阵
rgbImage <- reshape(longImage, timevar='Var3',idvar=c('Var1','Var2'), direction='wide')
##转换成RGB矩阵,其中Var1,2是坐标值,value1,2,3对应R,B,G的值
head(rgbImage)
#   Var1 Var2   value.1   value.2   value.3
#1  872    1 1.0000000 1.0000000 1.0000000
#2  871    1 0.3137255 0.3058824 0.3176471
#3  870    1 0.3098039 0.2901961 0.3058824
#4  869    1 0.3215686 0.3058824 0.3098039
#5  868    1 0.3372549 0.3215686 0.3254902
#6  867    1 0.3294118 0.3137255 0.3176471
## 提取颜色
colorColumns<- rgbImage[, substr(colnames(rgbImage), 1, 5)== "value"]  
# 画图,图片是反的,旋转坐标轴
with(rgbImage,plot(Var2, Var1, col = rgb(colorColumns), asp = 1, pch =".",axes=T,xlab='',ylab=''))

R语言-图像处理_第1张图片

## 坐标轴转换
rgbImage$Var1 <- rep(max(rgbImage$Var1):1, ncol(picture))
## 画图 
with(rgbImage,plot(Var2, Var1, col = rgb(colorColumns), asp = 1, pch =".",axes=T,xlab='',ylab=''))

R语言-图像处理_第2张图片

### 画出Box文件中在图片中的位置
rect(box$V2, box$V3, box$V4, box$V5)

R语言-图像处理_第3张图片

BOX位置在图片中对应上了,下一步就是提取特征还有标识样本了。

你可能感兴趣的:(R语言-例子)