marcelo_barros Postado Maio 25, 2009 Denunciar Share Postado Maio 25, 2009 boa tarde a todos...estou desenvolvendo um projeto em delphi q consiste em:- captar uma imagem (impressao digital) salva no pc;- converter-la em tons de cinza que consiste em melhor a imagem para os proximos passos (essa parte já esta ok);- binarizar a imagem que consistem em transformar a imagem em preto e branco (tambem esta ok);- esqueletizar a imagem que consistem em afinar a imagem já binarizada (não consegui);- extrair as minucias da imagem esqueletizada (ainda não cheguei);a minha duvida é a seguinte: existe bibliotecas que já fazem isso e eu estou perdendo tempo ou tem q programar na unha mesmo?grato a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 26, 2009 Denunciar Share Postado Maio 26, 2009 estou desenvolvendo um projeto em delphi q consiste em:- captar uma imagem (impressao digital) salva no pc;- converter-la em tons de cinza que consiste em melhor a imagem para os proximos passos (essa parte já esta ok);- binarizar a imagem que consistem em transformar a imagem em preto e branco (tambem esta ok);- esqueletizar a imagem que consistem em afinar a imagem já binarizada (não consegui);- extrair as minucias da imagem esqueletizada (ainda não cheguei);a minha duvida é a seguinte: existe bibliotecas que já fazem isso e eu estou perdendo tempo ou tem q programar na unha mesmo?ParaTratamento de Imagens, já existem programas que fazem issoexemploPhotoshop, Fireworks, Dreamweaver, Ilustrator, Corel Draw, etcCaso voce queira montar algo parecido em delphi, veja este endereçohttp://translate.google.com.br/translate_s...k&resnum=11abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcelo_barros Postado Maio 26, 2009 Autor Denunciar Share Postado Maio 26, 2009 ok vou dar uma olhada dpois posto aki o que achei...vlw..... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcelo_barros Postado Maio 27, 2009 Autor Denunciar Share Postado Maio 27, 2009 (editado) É pessoal a coisa ta feia...pesquisei a informação passada pelo nosso amigo e juntei com um código q achei na net...segue a função que esqueletiza (afina) uma imagem:procedure TForm1.BtEsqueletizarClick(Sender: TObject);var turn, y, x, j, i, blackPixel, whitePixel, z: integer;finishProcessAllPixel: boolean;pixelOnFlag: array [0..256,0..256] of integer;pixelValue: array [0..256,0..256] of integer;kernelValue: array [0..256] of integer;beginturn := 0;finishProcessAllPixel := false;while(finishProcessAllPixel = false) dobeginfinishProcessAllPixel := true; turn := (turn+1) mod 2;for y:=1 to Image1nova.height-2 do //initialize the pixelOnFlag to falsebeginfor x:=1 to Image1nova.width-2 dopixelOnFlag[y,x] := 0;end;for y:=1 to Image1nova.height-2 dobeginfor x:=1 to Image1nova.width-2 dobeginif(pixelValue[y,x] = 0)then //pixel pretobeginblackPixel := 0;for j:=0 to 2 dobeginfor i:=0 to 2 dobeginif(pixelValue[y+j-1,x+i-1] = 0) thenblackPixel:= blackPixel + 1;end;end;if((blackPixel > 2) and (blackPixel < 8))thenbeginkernelValue[0] := pixelValue[y-1,x-1]; kernelValue[5] := pixelValue[y+1,x ];kernelValue[1] := pixelValue[y-1,x ]; kernelValue[6] := pixelValue[y+1,x-1];kernelValue[2] := pixelValue[y-1,x+1]; kernelValue[7] := pixelValue[y ,x-1];kernelValue[3] := pixelValue[y ,x+1]; kernelValue[8] := pixelValue[y-1,x-1];kernelValue[4] := pixelValue[y+1,x+1];whitePixel := 0;for z:=0 to 7 doif((kernelValue[z] = 255) and (kernelValue[z+1] = 0))thenwhitePixel := whitePixel + 1;if(whitePixel = 1)thenbeginif( (turn=0) and ((kernelValue[3]=255) or (kernelValue[5]=255) or (kernelValue[1]=255) and (kernelValue[7]=255)) ) thenbeginpixelOnFlag[y,x] := 1; finishProcessAllPixel := false;endelse if ( (turn=1) and ((kernelValue[1]=255) or (kernelValue[7]=255) or (kernelValue[3]=255) and (kernelValue[5]=255)) ) thenbeginpixelOnFlag[y,x] := 1; finishProcessAllPixel := false;end;end;end;end;end;end;for y:=1 to Image1nova.height-2 dofor x:=1 to Image1nova.width-2 doif(pixelOnFlag[y,x] = 1) thenpixelValue[y,x] := 255; //deleta o pixelend;end;se alguém tive alguma sugestão para que funcione pois o que ele esta fazendo é pegar a imagem binarizada e o resultado da sua esqueletizacao é uma imagem toda preta com uma linha pontilhada branca na diagonal.grato a todos.... Editado Maio 27, 2009 por marcelo_barros Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
marcelo_barros
boa tarde a todos...
estou desenvolvendo um projeto em delphi q consiste em:
- captar uma imagem (impressao digital) salva no pc;
- converter-la em tons de cinza que consiste em melhor a imagem para os proximos passos (essa parte já esta ok);
- binarizar a imagem que consistem em transformar a imagem em preto e branco (tambem esta ok);
- esqueletizar a imagem que consistem em afinar a imagem já binarizada (não consegui);
- extrair as minucias da imagem esqueletizada (ainda não cheguei);
a minha duvida é a seguinte: existe bibliotecas que já fazem isso e eu estou perdendo tempo ou tem q programar na unha mesmo?
grato a todos.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.