[R] picture processing

PIKAL Petr petr.pikal at precheza.cz
Mon Jan 21 10:00:55 CET 2013


Dear all

I try to evaluate pictures and find positions, size and amount of dropouts (I enclose two pictures to play with and a code I used below). You can see that the first picture is smooth with only few dropouts in entire area. The second picture has many dropouts and even a scratch, with number of dropouts increasing to the bottom of the picture.

I go through the picture row by row and find a differences from supsmu or linear model, compare the differences to some threshold and count number of positive differences in the row, but here I am stuck.

I could find position of overall increased dropouts by smoothing rowSums data and evaluate this smoothed value but I do not know

1	How to distinct between big and small dropouts
2	Distinct between scratch and dropout and find starting position of a scratch
3	Find number of small dropouts and find position where this number of small dropouts surpass some given threshold

I tried to play with rle but had not been successful yet.

If anybody has some clever idea how to proceed with those three tasks I will be grateful.

Best regards
Petr

library(ReadImages)
# read and plot those 2 images
temp1<-read.jpeg("temp1.jpg")
temp1<-rgb2grey(temp1)
temp1<-normalize(temp1)
temp2<-read.jpeg("temp2.jpg")
temp2<-rgb2grey(temp2)
temp2<-normalize(temp2)
par(mfrow=c(1,2))
plot(temp1)
plot(temp2)

# one possible way to evaluate dropouts
suma<-NA
for(i in 1:nrow(temp1)) suma[i]<-sum(((temp1[i,]-supsmu(1:ncol(temp1),temp1[i,])$y)^2>.0005))
plot(suma)

suma<-NA
for(i in 1:nrow(temp2)) suma[i]<-sum(((temp2[i,]-supsmu(1:ncol(temp2),temp2[i,])$y)^2>.0005))
plot(suma)

# the other way to evaluate dropouts
x<-1:ncol(temp1)
rozdil<-temp1
for( i in 1:nrow(temp1)) {
y<-temp1[i,]
fit<-lm(y~x)
rozdil[i,] <- (predict(fit)-y)^2}
plot(rowSums(rozdil>.01))

x<-1:ncol(temp2)
rozdil<-temp2
for( i in 1:nrow(temp2)) {
y<-temp2[i,]
fit<-lm(y~x)
rozdil[i,] <- (predict(fit)-y)^2}
plot(rowSums(rozdil>.01))


More information about the R-help mailing list