Sto provando ad applicare il filtro Sobel su un'immagine per rilevare i bordi utilizzando scipy. Sto usando Python 3.2 (64 bit) e scipy 0.9.0 su Windows 7 Ultimate (64 bit). Attualmente il mio codice è il seguente:Applicazione del filtro Sobel utilizzando scipy
import scipy
from scipy import ndimage
im = scipy.misc.imread('bike.jpg')
processed = ndimage.sobel(im, 0)
scipy.misc.imsave('sobel.jpg', processed)
Non so cosa sto facendo male, ma l'immagine elaborata non sembra niente di quello che dovrebbe. L'immagine, 'bike.jpg' è un'immagine in scala di grigi (modalità 'L' non 'RGB') in modo che a ciascun pixel sia associato un solo valore.
Purtroppo non riesco a postare le immagini qui ancora (non hanno abbastanza reputazione), ma ho fornito i link qui sotto:
immagine originale (bike.jpg): http://s2.postimage.org/64q8w613j/bike.jpg
SciPy filtrato (sobel.jpg): http://s2.postimage.org/64qajpdlb/sobel.jpg
risultato atteso: http://s1.postimage.org/5vexz7kdr/normal_sobel.jpg
sono ovviamente andare s sbagliate omewhere! Qualcuno può dirmi dove? Grazie.
Sì, ho voluto il derivato in tutto il 0 asse (dx). In realtà sto cercando di implementare il rilevatore di bordo Canny e ho riscontrato problemi nel calcolo del gradiente usando gli operatori Sobel. Grazie mille! Dovevo cambiare la precisione. – Feanor