R言語を使った画像処理のプログラムの解読を行っているのですが、途中から分からなくなったので教えていただきたいです。
発生している問題・エラーメッセージ
該当のソースコード
R言語
ソースコード
library(imager)
n <- 256 #64
n2 <- n*n
m <- n/4
img = load.image("House.jpg") #( "insects.jpg" ) #画像の読み込み
grayimg = grayscale(img) #画像のグレースケール化
subi<-imsub(grayimg,x>=90) #画像のx座標90256画素までのトリミング256画素までのトリミング
subi<-imsub(subi,x<=256)
subi<-imsub(subi,y>=100) #画像のy座標100
subi<-imsub(subi,y<=256)
#subi<-imsub(grayimg,x>= 1) #画像のx座標1256画素までのトリミング256画素までのトリミング
#subi<-imsub(subi,x<=256)
#subi<-imsub(subi,y>=55) #画像のy座標55
#subi<-imsub(subi,y<=256)
#subi<-imsub(grayimg,x>= 385)
#subi<-imsub(subi,y>=100)
#subi<-imsub(subi,y<=256)
#subi<-imsub(grayimg,x>= 101)
#subi<-imsub(subi,x<=64)
#subi<-imsub(subi,y>=141)
#subi<-imsub(subi,y<=64)
subih<-subi
subiv<-subi
Vertical edge
for (j in 1:n){
for (i in 1:m){
tmp=subiv[(i-1)*4+1,j,1,1]+subiv[(i-1)*4+2,j,1,1]-subiv[(i-1)*4+3,j,1,1]-subiv[(i-1)*4+4,j,1,1]
subiv[(i-1)*4+1,j,1,1]=abs(tmp/4)
subiv[(i-1)*4+2,j,1,1]=abs(tmp/4)
subiv[(i-1)*4+3,j,1,1]=abs(tmp/4)
subiv[(i-1)*4+4,j,1,1]=abs(tmp/4)
}
}
gsubiv= subiv + 0.9
gsubiv[ gsubiv > 1 ] = 1
Horizontal edge
for (i in 1:n){
for (j in 1:m){
tmp=subih[i,(j-1)*4+1,1,1]+subih[i,(j-1)*4+2,1,1]-subih[i,(j-1)*4+3,1,1]-subih[i,(j-1)*4+4,1,1]
subih[i,(j-1)*4+1,1,1]=abs(tmp/4)
subih[i,(j-1)*4+2,1,1]=abs(tmp/4)
subih[i,(j-1)*4+3,1,1]=abs(tmp/4)
subih[i,(j-1)*4+4,1,1]=abs(tmp/4)
}
}
#gsubih= subih + 0.9
#gsubih[ gsubih > 1 ] = 1
gsubi= (subiv+subih)/2
########################
#gsubi= gsubi + 0.9
#gsubi[ gsubi > 1 ] = 1
########################
gsubi[ gsubi > .03] = 1 #.07
gsubi[ gsubi <= .03 ] = 0
plot( gsubi )
試したこと
ネットや本で調べたりしたのですが、部分的なところしか分かりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー