Fórum Tratamento de Imagens #326553
31/07/2006
0
Um dos calculos é a cobertura de tinta utilizada para aquela imagem.
Para PhotoShop, existe um plugin que lhe da essa informação. Porem o desenvolvedor do mesmo descontinuou o projeto.
Gostaria de desenvolver uma solução em delphi para o assunto. Ou seja, criar um componente q analise a imagem e retorne a porcentagem de cobertura de cada tinta (padrao CMYK por ex.)
Alguem tem alguma dica de como esses calculos sao feitos ou algum material a respeito?
ps: jah perguntei isso aqui a algum tempo e nao houve resposta, ppor isso estou tentando dnovo.
M@gnun
Curtir tópico
+ 0Posts
01/08/2006
M@gnun
Gostei + 0
01/08/2006
Rodc
Não sei se fui claro, mas tenta fazer aí e se não conseguir me avisa.
Gostei + 0
01/08/2006
M@gnun
se puder e quizer, me adiciona ai magnun_magnun@hotmail.com p/ me explicar ...
Obrigado ...
Gostei + 0
01/08/2006
Rodc
Gostei + 0
01/08/2006
M@gnun
Gostei + 0
01/08/2006
Rodc
// Declara o vetor das três cores
int VetorR[256], VetorG[256], VetorB[256];
// Zera o vetor das cores
for (int x=0; x<256; x++)
{
VetorR[x] = 0;
VetorG[x] = 0;
VetorB[x] = 0;
}
// Percorre os píxels somando a posição correspondente à intensidade no vetor da cor
for (int y = 0; y < Image1->Height; y++)
{
for (int x = 0; x < Image1->Width; x+=3)
{
VetorR[GetRValue(Image1->Canvas->Pixels[x][y])]++;
VetorG[GetGValue(Image1->Canvas->Pixels[x][y])]++;
VetorB[GetBValue(Image1->Canvas->Pixels[x][y])]++;
}
}
// Mostra o gráfico de intensidades da cor Vermelha
for (int x=0; x<256; x++)
{
Image2->Canvas->MoveTo(x, 0);
Image2->Canvas->LineTo(x, VetorR[x]/2);
}
// Mostra o gráfico de intensidades da cor Verde
for (int x=0; x<256; x++)
{
Image3->Canvas->MoveTo(x, 0);
Image3->Canvas->LineTo(x, VetorG[x]/2);
}
// Mostra o gráfico de intensidades da cor Azul
for (int x=0; x<256; x++)
{
Image4->Canvas->MoveTo(x, 0);
Image4->Canvas->LineTo(x, VetorB[x]/2);
}Para funcionar, inclua o código acima em um botão e coloque no form quatro TImage. O primeiro deve ter a imagem à se analisada e os outros três devem ter 256 de Width e 128 de Height.
Vou lhe mandar um executável compilado em C++ para você ver ele funcionando, caso não consiga montar o código acima em Delphi.
Abraços
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)