2011-12-19 5 views
35

Ispirato da questa discussione How do I find Waldo with Mathematica?Come trovare Waldo con R?

non ho mai fatto l'elaborazione delle immagini in R ma forse altre persone che hanno voglia di condividere ...

grazie!

+2

il pacchetto 'EBImage' ha omologhi di almeno alcune delle funzioni utilizzate nella risposta Mathematica. http://www.bioconductor.org/packages/release/bioc/html/EBImage.html –

+2

'adimpro' può anche essere utile. http://cran.r-project.org/web/packages/adimpro/index.html –

+3

Beh, ci sono due cose da fare qui. Innanzitutto, quali algoritmi di elaborazione delle immagini vuoi utilizzare? Alcuni commentatori precedenti ne hanno suggerito alcuni; Ho scritto Sobel e Hough si trasformano abbastanza facilmente, ecc. L'altra domanda è in quale formato stai giocando? FITS e TIFF hanno dei bei dati di pixel "grezzi" mentre altri formati potrebbero essere più confusi. Inoltre, ti potrebbe piacere usare imageJ meglio (freeware di NIH) –

risposta

12

Questo è un inizio, utilizzando il pacchetto raster. Non so se avrò il tempo di lavorare sul metodo di cross-correlazione usato nella versione Mathematica della domanda, ma una deviazione standard locale sulle parti rosse dell'immagine sembra avvistare Waldo in questo caso ...

library(raster) 
waldo = stack("/Users/Benjamin/Desktop/DepartmentStore.jpg") 

r = waldo[[1]] - waldo[[2]] - waldo[[3]] 
r[is.na(r)] = 0 
r_mask = Which(r > 0) 
r_masked = r * r_mask 

focalsd = focal(r_masked, w=3, fun=sd) 
plot(focalsd) 
+4

Per favore non esitare a non accettare questa risposta se ne esce una migliore. Speravo solo di iniziare il flusso di risposte ... – Benjamin