Visual C++ .NET - calc magnitud de gradiente

 
Vista:

calc magnitud de gradiente

Publicado por mauricio (1 intervención) el 26/11/2009 06:48:52
hola estoy realizando una deteccion de bordes utilizando las librerias de opencv con visual, pero no se como calcular la magnitud del gradiente...creo q es con un for...pero si alguien me puede ayudar con el codigo se los agradezco inmensamente....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cálculo de la magnitud del gradiente con OpenCV

Publicado por Alejandro (265 intervenciones) el 07/02/2024 19:47:16
Claro, Mauricio, puedo proporcionarte un ejemplo básico de cómo calcular la magnitud del gradiente en una imagen utilizando OpenCV en C++. La magnitud del gradiente se puede calcular a partir de los gradientes en las direcciones x e y. Aquí hay un código de ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
 
using namespace cv;
 
int main() {
    // Cargar la imagen
    Mat imagen = imread("tu_imagen.jpg", IMREAD_GRAYSCALE);
 
    if (imagen.empty()) {
        std::cerr << "Error al cargar la imagen" << std::endl;
        return -1;
    }
 
    // Calcular gradientes en las direcciones x e y
    Mat gradienteX, gradienteY;
    Sobel(imagen, gradienteX, CV_32F, 1, 0);
    Sobel(imagen, gradienteY, CV_32F, 0, 1);
 
    // Calcular la magnitud del gradiente
    Mat magnitudGradiente;
    magnitude(gradienteX, gradienteY, magnitudGradiente);
 
    // Normalizar la magnitud del gradiente para visualización
    normalize(magnitudGradiente, magnitudGradiente, 0, 255, NORM_MINMAX, CV_8U);
 
    // Mostrar imágenes
    imshow("Imagen original", imagen);
    imshow("Magnitud del gradiente", magnitudGradiente);
    waitKey(0);
 
    return 0;
}

En este código, `Sobel` se utiliza para calcular los gradientes en las direcciones x e y, y `magnitude` se utiliza para calcular la magnitud del gradiente. La magnitud del gradiente se normaliza para su visualización, y luego se muestran tanto la imagen original como la magnitud del gradiente.

Recuerda cambiar "tu_imagen.jpg" al nombre de tu propia imagen y asegurarte de tener las bibliotecas de OpenCV configuradas en tu entorno de desarrollo. Este código utiliza OpenCV 4.x, y si estás utilizando una versión diferente, es posible que debas hacer ajustes en el código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar