Matlab - Buscar primer pixel blanco en un borde

 
Vista:

Buscar primer pixel blanco en un borde

Publicado por Blanca (1 intervención) el 17/01/2017 08:38:00
Hola! Tengo que buscar el primer pixel blanco de una imagen, concretamente el punto de la nariz que mas sobresale del perfil de la cara... estaría sobre la mitad de la imagen (de altura) y habría que empezar a buscar de derecha a izquierda...
Aclaro: todos los pixeles del perfil son blancos porque antes tenia que sacar el borde de la cara y los demás son negros.
A ver si alguien sabe como empezar o puede ayudarme!
Gracias y un saludo
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar primer pixel blanco en un borde

Publicado por Royeth (1818 intervenciones) el 17/01/2017 16:12:05
lo que debes hacer es recortar tu zona de interés , una vez la tengas debes rotarla con el comando rot90 para que la parte de derecha a izquierda quede de arriba hacia abajo y ahí poder aplicar el comando find , te pongo un ejemplo

1
2
3
4
5
6
a=randi([0,1],5,5);
b=rot90(a);
[x,y]=ind2sub(size(b),find(b==1,1,'first'));
x=size(a,2)+1-x;
disp(x)
disp(y)

estas son las coordenadas de la parte de la imagen recortada puedes agregarle los pixeles de donde la recortaste y tendrás tu imagen real

saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar primer pixel blanco en un borde

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/01/2017 17:36:28
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
clear all
close all
 
im_rgb=imread('perfil.png');
umbral=graythresh(im_rgb);
Im_bin=im2bw(im_rgb,umbral);
bol=0;
for columna=1:size(Im_bin,2)
    for fila=1:size(Im_bin,1)
        if Im_bin(fila,columna)==1
         bol=1;
         break;
        end
 
    end
    if bol==1
        break;
    end
end
posicion=[fila, columna]
figure(1);
imshow(im_rgb)
hold on
plot(columna,fila,'*r')
 hold off
 
 figure(2)
 imshow(Im_bin)
hold on
plot(columna,fila,'*r')
 hold off

>> perfil

posicion =

403 113



perfil
nariz


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar primer pixel blanco en un borde

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/01/2017 18:29:27
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
clear all
close all
 
im_rgb=imread('perfil.png');
umbral=graythresh(im_rgb);
Im_bin=im2bw(im_rgb,umbral);
bol=0;
for columna=1:size(Im_bin,2)
    for fila=1:size(Im_bin,1)
        if Im_bin(fila,columna)==1
         bol=1;
         break;
        end
 
    end
    if bol==1
        break;
    end
end
posicion=[fila, columna]
figure(1);
imshow(im_rgb)
hold on
plot(columna,fila,'*r')
 hold off
 
 figure(2)
 imshow(Im_bin)
hold on
plot(columna,fila,'*r')
 hold off
 
 
 
 
 im_rgb1=im_rgb(:,end:-1:1,:);
 umbral1=graythresh(im_rgb1);
Im_bin1=im2bw(im_rgb1,umbral1);
bol1=0;
for columna1=size(Im_bin1,2):-1:1
    for fila1=1:size(Im_bin1,1)
        if Im_bin1(fila1,columna1)==1
         bol1=1;
         break;
        end
    end
    if bol1==1
       break;
    end
end
 
posicion1=[fila1, columna1]
figure(3);
imshow(im_rgb1)
hold on
plot(columna1,fila1,'*r')
 hold off
 
figure(4);
imshow(Im_bin1)
hold on
plot(columna1,fila1,'*r')
 hold off

nariz_asterisco


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Buscar primer pixel blanco en un borde

Publicado por blanca (6 intervenciones) el 20/01/2017 14:18:49
Mil gracias!!! ha sido de gran ayuda, por fin he resuelto mi problema!!!
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
sin imagen de perfil

Buscar primer pixel blanco en un borde

Publicado por blanca (6 intervenciones) el 20/01/2017 14:18:10
muchas gracias!!
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