Usando il nuovissimo OpenCV, c'è un modo semplice per calcolare l'immagine del gradiente di uno specifico cv :: Mat?C'è un modo semplice e veloce in OpenCV per calcolare il gradiente di un'immagine?
5
A
risposta
14
Supponendo che si stia facendo riferimento al tipico image gradient; puoi calcolarli abbastanza facilmente con l'operatore Sobel come menzionato da Chris. Dai un'occhiata al tutorial di Sobel Derivatives here. Potresti anche essere interessato all'operatore Laplace e al suo tutorial.
Ecco un breve frammento di calcolare i gradienti X e Y con Sobel:
cv::Mat src = ...; // Fill the input somehow.
cv::Mat Dx;
cv::Sobel(src, Dx, CV_64F, 1, 0, 3);
cv::Mat Dy;
cv::Sobel(src, Dy, CV_64F, 0, 1, 3);
0
Come mevatron detto: il Sobel e gli operatori di Laplace sono potenti, ma non dimenticare l'operatore Scharr, che ha una maggiore precisione in un kernel 3 × 3 rispetto a Sobel.
4
Da: http://en.wikipedia.org/wiki/Image_gradient, si può fare:
IplImage * diffsizekernel(IplImage *img, int f, int c) {
float dkernel[] = {-1, 0, 1};
CvMat kernel = cvMat(f, c, CV_32FC1, dkernel);
IplImage *imgDiff = cvCreateImage(cvSize(img->width, img->height), IPL_DEPTH_16S, 1);
cvFilter2D(img, imgDiff, &kernel, cvPoint(-1,-1));
return imgDiff;
}
IplImage * diffx(IplImage *img) {
return diffsizekernel(img, 3, 1);
}
IplImage * diffy(IplImage *img) {
return diffsizekernel(img, 1, 3);
}
Problemi correlati
- 1. Il modo più veloce per spostare l'immagine in OpenCV
- 2. Un modo per calcolare l'URL di reindirizzamento
- 3. Algoritmo veloce per calcolare Pi in parallelo
- 4. Esiste un modo semplice per calcolare e formattare gli intervalli di data/ora in java?
- 5. Il modo più semplice per creare un gradiente di colore su excel usando python/panda?
- 6. Calcolare l'area di un oggetto con OpenCV
- 7. Il modo più veloce per calcolare la lunghezza decimale di un intero? (.NET)
- 8. Metodo semplice e veloce per confrontare le immagini per similarità
- 9. Qual è il modo più veloce per calcolare la distribuzione di frequenza per array in C#?
- 10. Modo semplice e veloce per creare una "email questa pagina" per il collegamento di qualcuno?
- 11. Il modo più semplice per ottenere il numero di decimali in un numero in JavaScript
- 12. Esiste un modo semplice e veloce per scaricare i contenuti di un portachiavi MacOS X?
- 13. Il modo più veloce per ottenere il numero di pixel bianchi in un'immagine binaria utilizzando OpenCV
- 14. Qual è il modo più veloce per calcolare una grande potenza di 2 modulo un numero
- 15. Qual è un modo semplice e veloce per ricaricare una webapp in tomcat in ambiente dev?
- 16. Qual è un modo semplice per calcolare la sovrapposizione tra un'immagine e un poligono?
- 17. Il modo più veloce per calcolare k autovalori e autovettori corrispondenti con numpy
- 18. Algoritmo più veloce per calcolare il determinante di una matrice?
- 19. Qual è un modo veloce per calcolare la correlazione colonna per colonna in MATLAB
- 20. Algoritmo di hashing dell'immagine semplice e veloce
- 21. Il modo più veloce per unificare un elenco in Python
- 22. Il modo più veloce per calcolare il grado di matrice 2 * 2?
- 23. Vuoi un modo semplice e veloce per rendere più veloci le zecche di una trama 3D
- 24. Qual è il modo più veloce per calcolare i primi due componenti principali in R?
- 25. Il modo più veloce per calcolare la distanza tra ogni punto in python
- 26. Il modo più veloce per calcolare la distanza da punto a triangolo in 3D?
- 27. Il modo più veloce per calcolare la somma di bit nell'array di byte
- 28. Il modo più semplice e veloce per scindere tutte le dipendenze da una classe
- 29. Il modo più veloce per calcolare una maschera di bit X-bit?
- 30. Il modo più semplice per scrivere e leggere un XML
Un esempio di immagine e risultati attesi sarebbe bello. – Sonaten
Stai cercando l'operatore Sobel, che calcola i derivati? [Documentazione qui] (http://opencv.itseez.com/modules/imgproc/doc/filtering.html#sobel). – Chris