hola como parte de mi Tarea. necesito calcular y mostrar el borde de la magnitud de la imagen y la
borde de la dirección de imagen de la imagen balls1.tif, mediante detección de bordes Sobel.

No utilice matlab borde de la función. Usted puede utilizar conv2.
Mostrar un binario borde de la imagen (1 píxel de borde, 0 sin borde) de fuerte píxeles de borde (por encima de un umbral).
Determinar un umbral que elimina la bola de sombras.

aquí es mi main.m

addpath(fullfile(pwd,'TOOLBOX'));
addpath(fullfile(pwd,'images'));

%Sobel Edge Detection 
Image = readImage('balls1.tif');
showImage(Image);
message = sprintf('Sobel Edge Detection');
sobelEdgeDetection(Image);
uiwait(msgbox(message,'Done', 'help'));
close all

aquí está mi SobeEdgeDetection.m

function [ output_args ] = SobelEdgeDetection( Image )

maskX = [-1 0 1 ; -2 0 2; -1 0 1];
maskY = [-1 -2 -1 ; 0 0 0 ; 1 2 1] ;

resX = conv2(Image, maskX);
resY = conv2(Image, maskY);

magnitude = sqrt(resX.^2 + resY.^2);
direction = atan(resY/resX);
thresh = magnitude < 101;
magnitude(thresh) = 0;
showImage(magnitude);

end

mis preguntas son:

1. i ¿cuál es la dirección para que sirve ? y ¿cómo puedo mostrar?

2. hay una forma mejor de obtener un umbral para eliminar la bola de sombras. he utilizado la prueba y el error….

Detección de bordes Sobel – matlab

estos son mis resultado tan lejos como muestra de la magnitud:

Detección de bordes Sobel – matlab

  • la dirección es la dirección del degradado en la imagen, es ortogonal a borde del objeto. Sus imágenes no permiten eliminar sombras: en el caso de que usted va a perder algunos superior de las fronteras.
InformationsquelleAutor Gilad | 2013-01-16

2 Comentarios

  1. 1

    De acuerdo a la segunda parte de su tarea se ha resuelto, es decir, se eliminan las sombras.

    Para la primera pregunta: la dirección puede ser utilizado de muchas maneras diferentes. Aquí es la forma más sencilla: hacer fotos con ella. Es más útil la razón a considerar es cuando usted está haciendo no máxima supresión, pero ya no de forma manual de hacerlo entonces no hay mucho uso inmediato para él. Para visualizar los resultados de la dirección del degradado es simplemente cuestión de establecer los colores para cada dirección que usted considere. Para simplificar aún más la visualización supongamos también que reducir las direcciones a intervalos de 30 grados a 180, empezando desde 0. De esa manera, si usted tiene una dirección de 35 grados, por ejemplo, se consideran como 30 grados (ya que es la más cercana a tu lista reducida). A continuación vemos una imagen y una visualización de su gradiente de dirección teniendo en cuenta Sobel y la discretización a pasos de 30 grados (negro indica 0 grado de dirección).

    Detección de bordes Sobel – matlab

    Determinar automáticamente la buena umbrales generalmente no es una tarea fácil. Por ejemplo, usted podría comenzar con la proporcionada por el método de Otsu, y aumentar o disminuir su valor de acuerdo a algunos otros análisis del histograma de acuerdo con el problema que están tratando de resolver.

    • cuando itry utilizar imagsec o showImage mi imagen aparece todo negro. Qué tengo que hacer alguna escala?
    • Yo no hice ningún escalamiento, sólo lo que se describe en la respuesta. Nada de 0 grados a 29 fue asignado a la intensidad de 0 (negro), de 30 a 59 de algún otro color, y así sucesivamente. A continuación se muestran.
  2. 1

    Aquí está la respuesta a tu primera pregunta :

    En Detección De Bordes Sobel Algo. la dirección obtenida es básicamente el gradiente.

    Gradiente en el procesamiento de imágenes se define como la dirección en la que el cambio de la intensidad es máxima. El cambio puede ser aumento en la intensidad o disminuir en intensidad. Además, este cambio se calcula para cada píxel,esto significa que para cada píxel máximo cambio en la intensidad se mide. resX (en su pregunta del ejemplo,SobelEdgeDetection.m) significa que los cambios en la dirección X y resY define el cambio en la dirección de Y.

    Ver ver prácticamente acaba de fuego este comando en una ventana de comandos de Matlab:
    imshow(resX);

    También intente, imshow(resY)

Dejar respuesta

Please enter your comment!
Please enter your name here