2009-04-24 22 views
7

Estoy desarrollando un programa de matlab en el que utilizo polígonos (cóncavos o convexos). Necesito usar funciones de procesamiento de imágenes como imdilate o imerode y etc. en los polígonos. Para este fin, debería convertir mis polígonos a imagen. Me pregunto si hay una forma de dibujar un polígono directamente en una matriz binaria (1 para primer plano y 0 para fondo).cómo dibujar un polígono en una matriz o imagen binaria para utilizar las funciones de procesamiento de imagen?

Actualmente, uso las funciones 'getframe', 'frame2im' y 'im2bw' para hacerlo. pero su inconveniente es que no tengo control sobre el tamaño de la imagen final (= matriz) (es decir, el tamaño de la imagen en píxeles al convertir un marco en imagen) debido a que matlab no muestra sus gráficos en píxeles (?). Entonces, cada vez que alguien "amplía" o "aleja" el gráfico, la matriz resultante (= imagen) sería diferente.

mi código:

Polygon = [ 15 45 33 30 40 23 ; 9 9 24 15 13 13]'; 
figure(1); clf; patch(Polygon(:,1),Polygon(:,2),'black'); 
axis off 

%convert the plot to binary image 
frame = getframe(gca); 
im =frame2im(frame); 
level = graythresh(im); 
bw = ~im2bw(im,level); 

%draw the resulting image 
imtool(bw) 
%dilate the image 
SE = strel('square',5); 
bw2 = imdilate(bw,SE); 

%draw the dilated image 
imtool(bw2) 

Respuesta

12

Tal vez usted podría utilizar para calcular poly2mask una región de interés en lugar de trazar usando el parche como en la secuencia de comandos. Por ejemplo

Polygon = [ 15 45 33 30 40 23 ; 9 9 24 15 13 13]'; 
ImageWidth = 100; 
ImageHeight = 50; 
bw = poly2mask(Polygon(:,1),Polygon(:,2),ImageHeight,ImageWidth); 
imshow(bw) 

Y el resultado, bw, del código anterior es esta imagen.

bw http://i44.tinypic.com/6td9v8.jpg

+0

modificado -> bw = poly2mask (Polygon (:, 1), polígono (:, 2), ImageHeight, ImageWidth); –

+0

@ Kamran: ¿puedes explicar tu comentario? ¿Qué quieres decir con modificado? – Azim

+0

@Azim: Creo que estaba señalando un pequeño error tipográfico. Lo arreglé. – gnovice

Cuestiones relacionadas