Escolar Documentos
Profissional Documentos
Cultura Documentos
0450071, 8 Semestre
Jaguarina
2007
Jaguarina
2007
2
_________________________________________________________________
Prof. Dr. Andr Mendeleck
_________________________________________________________________
Prof. Ms. Fernando Augusto Zancheta
_________________________________________________________________
Prof. Jos Arnaldo Geraldini Nunes
AGRADECIMENTOS
agradeo:
Meu
orientador,
Prof.
Dr.
Andr
Mendeleck, pelo seu apoio, confiana e pacincia, que foram fundamentais para a
realizao e finalizao desta monografia.
Aos meus pais Eliana e Miguel e irmo Renato, que com muito amor
me deram apoio, conselhos, e tiveram muita pacincia com as longas noites em claro.
Aos professores do curso de Cincia da Computao que, durante a
graduao, tanto contriburam para o meu crescimento intelectual e pessoal.
E de uma forma especial, a todos os amigos do curso de Cincia da
Computao pelos momentos alegres durante todos estes anos.
RESUMO
ABSTRACT
Studies in the area of image processing are designed to recognition of unknown
environments. Currently there are various types of processing images, and the majority has a
high cost to be used. But something simple was used as mono vision, which has developed a
method for the recognition of environments so that the robot can locomover between objects.
The implementation of a computational model for processing images. The software used is
Borland C / C + + builder for the creation of the computational model.
SUMRIO
LISTA DE ILUSTRAES.................................................................................................. 10
1. INTRODUO .................................................................................................................. 11
2. AQUISIO DE IMAGENS DIGITAIS ......................................................................... 14
2.1.
REGIO DE INTERESSE........................................................................................ 19
2.2.
2.3.
2.4.
3.
3.1
3.2
Metodologia................................................................................................................. 25
3.3
Projeto.......................................................................................................................... 26
3.4
3.5
Interface....................................................................................................................... 30
3.6
3.7
CONCLUSO................................................................................................................. 40
LISTA DE ILUSTRAES
FIGURA 01 - Aquisio de imagem ................................................................................. 14
FIGURA 02 - Diagrama em blocos de um sistema gen. de processamento de imagens ... 15
FIGURA 03 - Conveno dos eixos para representao de imagens ................................ 16
FIGURA 04 - Passos para processamento das imagens digitais ....................................... 17
FIGURA 05 - Imagem original ......................................................................................... 18
FIGURA 06 - Imagem em tom de cinza ........................................................................... 18
FIGURA 07 - Imagem preto e branco ............................................................................... 19
FIGURA 08 - Passos em processamento de imagens digitais ........................................... 21
FIGURA 09 - Passos a serem executados pelo software ................................................... 24
FIGURA 10 - Diagrama de caso de uso ............................................................................ 27
FIGURA 11 - Tela do sistema ........................................................................................... 30
QUADRO 1 - Mapa panormico ....................................................................................... 31
QUADRO 2 - Mapa de locomoo ................................................................................... 32
QUADRO 3 - Botes de comando .................................................................................... 32
QUADRO 4 - Campos de resultados ................................................................................. 33
QUADRO 5 - rea de tratamento da imagem .................................................................. 33
FIGURA 12 - Diagrama Funcional ................................................................................... 34
FIGURA 13 - Imagem inicial ............................................................................................ 36
FIGURA 14 - Aps processamento ................................................................................... 37
FIGURA 15 - Aps processamento ................................................................................... 38
FIGURA 16 - Aps processamento ................................................................................... 39
10
1. INTRODUO
O Processamento de Imagens so tcnicas para a anlise de dados multidimensionais,
que manipula imagens para obter informaes que podem conduzir tomada de deciso. O
elemento principal a imagem ou um conjunto delas, captadas atravs de uma cmera, de um
scanner laser, de um ultra-som, de um ressonador magntico, ou por qualquer outro meio.
A Computao Grfica consiste na gerao, manipulao e interpretao de modelos e
imagens de objetos utilizando o computador.
A computao grfica tem relao com 3 sub-reas[Persiano and Oliveira, 1989]:
Sntese de Imagens: produo de representaes visuais a partir das
11
robtica e tambm para outros processamentos, onde os algoritmos realizam operaes com o
objetivo de segment-las.
Para GONZALEZ & WOODS (2000), Podem ser considerados como a partio de
imagens digitais em conjuntos de pixels considerando-se a necessidade geral e critrios
previamente definidos.
Para Albuquerque (2000, p.1), O processamento de imagens certamente uma rea
em crescimento. Diversos temas cientficos so abordados e em alguns casos de carter
interdisciplinar. Entre eles podemos citar: a compreenso de imagens, a anlise em multiresoluo e em multi-freqncia, a anlise estatstica, a codificao e a transmisso de
imagens, etc.
O Processamento Digital de Imagens tem crescido muito nas ltimas dcadas, com a
utilizao de imagens e grficos em uma grande variedade de aplicaes, possibilitando a
utilizao de sistemas mais eficientes e mais baratos. Muitas reas vm utilizando Sistemas de
Processamento Digital de Imagens, como por exemplo: reconhecimento de padres, medicina,
meteorologia, pesquisas espaciais etc.
Pode-se aplicar o processamento digital de imagens em anlise de recursos naturais,
anlise ambiental, meteorologia, onde necessrio realar as informaes da imagem.
Em contrapartida, o tipo e a quantidade de sensores, como por exemplo a
quantificao e sensoriamento remoto na investigao geogrfica, determinam o volume de
dados para o processamento e composio da imagem do ambiente, impondo na maioria
dos casos, alto custo computacional.
Para BERTOZZI (et al., 2000), Muitas das aplicaes para controle de veculos
autnomos que apresentaram bons resultados, tanto para ambientes externos quanto para
ambientes internos, utilizavam a viso computacional como parte integrante do conjunto de
sensores.
Neste trabalho considerou-se somente um sensor(cmera), a monoviso, isto , um
sensor ir adquirir imagens do ambiente e estas fornecero informaes ao sistema
computacional. Embora a monoviso seja uma soluo bastante econmica, possui a
desvantagem de no conseguir obter informaes de profundidade, limitando a percepo do
sistema, sendo trivial para o sistema humano, construir cenas tridimensionais a partir de
imagens bidimensionais captadas pelo sistema de viso, e a partir destas tomar decises
precisas para a navegao, pode no ser trivial para os sistemas computacionais.
Diferentemente do sistema humano, sistemas de processamento e anlise de imagens
computacionais mais complexos podem desencadear alguns prejuzos como a velocidade de
12
13
aquisio
visualizao
manipulao
Como mostra a FIGURA 01, a aquisio feita por uma cmera, onde passar pelo
processamento que far o tratamento da imagem, logo aps ela poder ser armazenada
em discos ou mostrada em monitores e impressoras.
AQUISIO
PROCESSAMENTO
Cmeras
processamento
SADA
Monitores de
video
Impressoras
ARMAZENAMENTO
Discos
Vdeo
FIGURA 01 Aquisio de imagem
Alguns dos componentes de um sistema de viso artificial podem ser os sensores de viso
(cmeras), sistema de digitalizao de imagens, memria para armazenamento das imagens,
um processador para acessar a memria e um conjunto de ferramentas que permita processar
as imagens armazenadas.
Um sistema de processamento de imagens pode ser dividido em diversos componentes
independentes, como mostrados na FIGURA 02.
14
O mdulo de entrada constitudo por uma cmera que capta a imagem real de uma
cena.
Uma imagem digital discretizada espacialmente (ou seja em x e y) e em luminncia
(nveis de cinza / cores). Alguns exemplos de mdulos de aquisio so: as cmeras, os
scanners ou ainda alguns sensores dedicados (como sistemas de infravermelho, mapeamento
magntico de uma superfcie, sensoriamento de radares, etc). Sendo que a cmera de vdeo o
sensor de aquisio de imagem mais freqentemente utilizado.
Uma cmera de vdeo apresenta caractersticas de sensibilidade, resoluo e funo de
transferncia (entre a imagem captada da cena e a intensidade do sinal de vdeo fornecido).
Algumas cmeras mais sofisticadas permitem ainda controlar o offset ou ganho do sinal de
vdeo, possibilitando uma correo do contraste da imagem em tempo real. Em alguns casos
podemos encontrar mdulos que permitem o ajuste da iluminao de fundo ou ainda realar
os contornos dos objetos atravs da execuo de funes especficas.
Neste trabalho foi considerado somente imagens em nveis de cinza, pois grande parte
dos algoritmos de anlise de imagens coloridas so feitas recombinando as componentes de
15
16
17
Aps obter a imagem, deve-se deix-la em tom de cinza, onde reduzida a quantidade
de informaes fornecidas pela imagem, facilitando a obteno dos parmetros necessrios
para a escolha da trajetria do rob, como mostra a FIGURA 06.
Feito isto, deve-se transformar a imagem em preto e branco para que o sistema possa
reconhecer no ambiente, as reas de navegao, que considera-se as regies em branco, como
mostra a FIGURA 07.
18
Todos estes processos so feitos com a varredura dos pixels da imagem, fazendo
comparaes das cores RGB do pixel, onde se o valor do RGB for maior que o valor do
Threshold o pixel ser preto seno o pixel ser branco, at chegar ao final da imagem e o
Threshold que definimos para este projeto foi de 95, para o tratamento das imagens.
2.1.
Regio de Interesse
19
Com a regio de interesse podemos localizar um caminho em uma imagem, coisa que
ser utilizada neste trabalho.
2.2.
se atingir os objetivos. A primeira etapa consiste em adquirir a imagem digital com uma
cmera digital ou uma webcam. FIGURA 08
Aps adquirida a imagem, a mesma passa por um processo de filtragem para melhorar
o contedo da imagem, como o realce do contraste e a remoo de rudo, podendo assim dar
mais nitidez a ela.
Em seguida so aplicados mtodos de segmentao a imagem, dividindo em partes para
a produo de uma nova imagem com menos cores. Segmentar consiste na realidade em
dividir a imagem em diferentes regies, que sero posteriormente analisadas por algoritmos
especializados em busca de informaes ditas de "alto-nvel".
Com o processo de seleo de caractersticas, tentamos extrair caractersticas que
tenham alguma informao quantitativa de interesse ou que sejam bsicas para discriminao
entre classes de objetos.
O ltimo estgio envolve reconhecimento e interpretao, onde o reconhecimento
atribui um parmetro a um objeto e a interpretao envolve a atribuio de significado a um
conjunto de objetos.
20
2.3.
Pr-processamento de Imagem
Para BERTOZZI (et al., 2000), Muitos dos grupos de pesquisa em viso
21
2.4.
Segmentao de Imagem
A segmentao consiste na primeira etapa de processamento da imagem quando
22
3. DESCRIO DO PROJETO
O projeto consiste em fazer o tratamento de imagens capturadas por cmeras (webcam),
onde o mesmo aplicar os tratamentos necessrios para que o rob possa de deslocar.
O modelo computacional ser criado a partir da linguagem de programao C++, um
software que recebe a entrada de valores atravs da interao com o usurio pela interface
grfica, far a modelagem dos dados e a execuo da simulao do movimento de um rob
em um determinado plano. Para a programao ser utilizado o software C++ BUILDER 6.
Os objetivos deste trabalho so:
23
Capturar Imagem: O usurio ou o rob utilizar uma cmera para capturar a imagem;
Filtrar Imagem: Assim que capturada a imagem, aplica-se o filtro de imagem, onde
ser utilizado o mtodo de Threshold que deixar a imagem em preto e branco;
Gerar ao: O sistema ir gerar a ao para o rob, onde ele utilizar um gerador de
movimento para ajudar;
CAPTURAR IMAGEM
THRESHOLD
LOCALIZAR
CAMINHO
FILTRAR IMAGEM
IDENTIFICAO
GERAR AO
GERADOR DE
MOVIMENTO
ENVIAR COMANDOS
P/ ROBO
FIGURA 09 Passos a serem executados pelo software
24
A imagem ser capturada por uma cmera passando por um filtro utilizando os mtodos
(Threshold ) para fazer a identificao da imagem que ir localizar o caminho a ser percorrido
pelo rob, gerando a ao que far o rob entender qual caminho ele ter que percorrer e
enviar para o rob.
3.2 Metodologia
Neste tpico ser abordado sobre as etapas que foram feitas para a concluso deste
trabalho.
As etapas deste trabalho so:
Programao para a sada de dados via porta serial do computador, para que o modelo
real possa receber os dados necessrios para a execuo dos movimentos;
Analisar resultados;
Concluso.
25
3.3 Projeto
O projeto consiste em criar um modelo computacional de processamento de imagens
para locomoo de um rob em ambiente desconhecido, que servir como base para
implementao da programao em C++ (linguagem de programao).
O modelo computacional ter uma interface para capturar (seleo) da imagem para que
possam ser acionadas as aes. Atravs dessa interface ser aplicado o tratamento da imagem,
onde ser aplicado o mtodo de Threshold com um nvel de 95.
A imagem ento ser mostrada em preto e branco, a partir da a imagem ser dividida
em 3 partes (esquerda, frente, direita) onde ser calculado a quantidade de pixels brancos em
cada parte.
A parte que contiver o maior nmero de pixels brancos ser o melhor caminho a ser
percorrido pelo rob.
Com isso, ser capturada uma nova imagem para um novo processamento e assim
sucessivamente.
26
27
28
29
3.5 Interface
uma forma de interao com o usurio, no caso homem-maquina e refere-se s
informaes grficas e textuais apresentadas ao usuario, e as sequncias de controle (como
comandos de teclado ou movimentos do mouse) para interagir com o programa.
A interface dividida em 5 partes onde temos: Mapa panormico, mapa de
locomoo(das fotos), botes de comando, campos de resultados e rea de tratamento da
imagem, como mostra a FIGURA 11.
30
O b sta c u lo s
Em seguida temos o mapa de locomoo, onde temos todas as imagens do local onde o
usurio poder selecionar a imagem de partida do rob, sendo a primeira ou a segunda ou a
terceira de baixo para cima e da esquerda para a direita, como mostra o QUADRO 2.
31
32
Lo c a l d a im a g e m o rig in a l
Lo c a l d a im a g e m tra ta d a
33
Capturar Imagem
Processar Imagem
Caminho 1
Caminho 2
Caminho 3
Executar processo
35
Po si o inic ia l d o rob
36
No va im a g e m c a rre g a d a
Va lo re s d a s va ria ve is im p re sso s
No va p osi o d o ro b
Po si o a nte rio r
37
No va im a g e m c a rre g a d a
No va p osi o d o ro b
Va lo re s d a s va ria ve is im p re sso s
Po si o a nte rio r
38
No va im a g e m c a rre g a d a
No va p osi o d o ro b / p o si o fina l
Po si o a nte rio r
Va lo re s d a s va ria ve is im p re sso s
39
4 CONCLUSO
Para o desenvolvimento do programa responsvel pelo processamento das imagens, foi
necessrio estudar aspectos tcnicos da viso humana e computao grfica.
Com os resultados obtidos, que um modelo computacional pode simular o
processamento da imagem para a navegao de um rob em um plano com xito. Pode-se
concluir que atravs do modelo computacional desenvolvido, possvel a criao de
simulao de navegao em ambientes desconhecidos.
A implementao do processamento de imagens para o rob real um projeto futuro,
onde ser integrado o software desenvolvido para a simulao de processamento de imagens.
40
REFERNCIAS BIBLIOGRFICAS1
1.
2.
3.
4.
5.
6.
7.
8.
9.
41
42
Anexo I
//--------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//--------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
// Variaveis Globais
TForm1 *Form1;
int col0=0,lin0=240;
int corR=0,corB=0,corG=0;
int panel=0;
//--------------------------------------------------------------------// Sair do software
void __fastcall TForm1::bnSairClick(TObject *Sender)
{
Close();
}
//--------------------------------------------------------------------// Transferi a imagem selecionada para a tela do software
void __fastcall TForm1::btnTransferirClick(TObject *Sender)
{
// Gerando um bitmap
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
// Verifica em qual imagem que est e transferi para o programa
if (panel == 1){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto1.bmp"); }
if (panel == 2){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto2.bmp"); }
if (panel == 3){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto3.bmp"); }
if (panel == 4){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto4.bmp"); }
if (panel == 5){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto5.bmp"); }
if (panel == 6){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp"); }
43
Form1->Canvas->Draw(0,0,pBitmap);
for( int linha=0;linha<pBitmap->Height;linha++)
for( int coluna=0;coluna<pBitmap->Width;coluna++) //Image1>Width;coluna++)
Canvas->Pixels[coluna+col0][linha+lin0]= Canvas>Pixels[coluna][linha];
delete pBitmap;
}
//--------------------------------------------------------------------// Remove as cores da imagem, deixando a imagem em tom de cinza
void __fastcall TForm1::btnRemoverCorClick(TObject *Sender)
{
// Gerando um bitmap
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
// Verifica em qual imagem que est e transferi para o programa
if (panel == 1){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto1.bmp"); }
if (panel == 2){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto2.bmp"); }
if (panel == 3){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto3.bmp"); }
if (panel == 4){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto4.bmp"); }
if (panel == 5){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto5.bmp"); }
if (panel == 6){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp"); }
if (panel == 7){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); }
if (panel == 8){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp"); }
44
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
for( int linha=0;linha<pBitmap->Height;linha++)
for( int coluna=0;coluna<pBitmap->Width;coluna++)
>Width;coluna++)
{
c = Canvas->Pixels[coluna+col0][linha+lin0];
//Image1-
Canvas->Pixels[coluna+col0][linha+lin0]=RGB(c,c,c);
Canvas->Pixels[coluna+col0][linha+lin0]=RGB(c,c,c);
}
delete pBitmap;
}
// Remove as cores da imagem, deixando a imagem preto e branco
void __fastcall TForm1::Button2Click(TObject *Sender)
// Variveis
{ int linha, coluna;
int linha1, linha2, linha3, coluna1, coluna2, coluna3;
float aux1 = 0 , aux2 = 0, aux3 = 0;
float cont1 = 0, cont2 = 0, cont3 = 0;
float tot1 = 0, tot2 = 0, tot3 = 0;
float caminho = 0, maior = 0;
// Gerando um bitmap
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
// Verifica em qual imagem que est e transferi para o programa
if (panel == 1){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto1.bmp"); }
if (panel == 2){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto2.bmp"); }
if (panel == 3){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto3.bmp"); }
if (panel == 4){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto4.bmp"); }
if (panel == 5){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto5.bmp"); }
if (panel == 6){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp"); }
45
46
// Calcula
tot1
tot2
tot3
a
=
=
=
> maior) {
tot1;
= 1;
> maior) {
tot3;
= 3;
// Verifica em que imagem que est e qual o melhor caminho a ser percorrido
if (panel == 11) {
if (caminho == 1) {
panel = 8;
Image14->Left = 144;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 2) {
panel = 12;
Image14->Left = 264;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 10) {
if (caminho == 1) {
panel = 15;
}
if (caminho == 2) {
panel = 11;
Image14->Left = 264;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 9) {
if (caminho == 1) {
panel = 6;
47
Image14->Left = 144;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 2) {
panel = 10;
Image14->Left = 264;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 7) {
if (caminho == 1) {
panel = 4;
Image14->Left = 24;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto4.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 2) {
panel = 8;
Image14->Left = 144;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 12;
Image14->Left = 164;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 6) {
if (caminho == 1) {
panel = 3;
Image14->Left = 24;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto3.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
48
TColor c;
exit;
}
if (caminho == 2) {
panel = 7;
Image14->Left = 144;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 11;
Image14->Left = 164;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 5) {
if (caminho == 1) {
panel = 2;
Image14->Left = 24;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto2.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 2) {
panel = 6;
Image14->Left = 144;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 10;
Image14->Left = 164;
Image14->Top = 174;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 3) {
if (caminho == 2) {
panel = 4;
49
Image14->Left = 24;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto4.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 8;
Image14->Left = 144;
Image14->Top = 34;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 2) {
if (caminho == 2) {
panel = 3;
Image14->Left = 24;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto3.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 7;
Image14->Left = 144;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
}
if (panel == 1) {
if (caminho == 2) {
panel = 2;
Image14->Left = 24;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto2.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
exit;
}
if (caminho == 3) {
panel = 6;
Image14->Left = 144;
Image14->Top = 274;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
50
TColor c;
exit;
}
}
if (panel == 15) {
Image14->Left = 144;
Image14->Top = 154;
pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
panel = 7;
exit;
}
//Imprime os valores calculados
edtCorR->Text = tot1;
edtCorG->Text = tot2;
edtCorB->Text = tot3;
delete pBitmap;
}
//--------------------------------------------------------------------// Carrega a imagem principal da esquerda
void __fastcall TForm1::Image1Click(TObject *Sender)
{
panel = 1;
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto1.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
for( int linha=0;linha<pBitmap->Height;linha++)
for( int coluna=0;coluna<pBitmap->Width;coluna++)
>Width;coluna++)
Canvas->Pixels[coluna+col0][linha+lin0]= Canvas>Pixels[coluna][linha];
delete pBitmap;
//Image1-
Image14->Left = 24;
Image14->Top = 394;
}
//--------------------------------------------------------------------// Carrega a imagem principal central
void __fastcall TForm1::Image5Click(TObject *Sender)
{
panel = 5;
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto5.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
for( int linha=0;linha<pBitmap->Height;linha++)
for( int coluna=0;coluna<pBitmap->Width;coluna++)
>Width;coluna++)
Canvas->Pixels[coluna+col0][linha+lin0]= Canvas>Pixels[coluna][linha];
delete pBitmap;
Image14->Left = 144;
Image14->Top = 394;
51
//Image1-
}
//--------------------------------------------------------------------// Carrega a imagem principal da direita
void __fastcall TForm1::Image9Click(TObject *Sender)
{
panel = 9;
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto9.bmp");
Form1->Canvas->Draw(0,0,pBitmap);
for( int linha=0;linha<pBitmap->Height;linha++)
for( int coluna=0;coluna<pBitmap->Width;coluna++)
>Width;coluna++)
Canvas->Pixels[coluna+col0][linha+lin0]= Canvas>Pixels[coluna][linha];
delete pBitmap;
//Image1-
Image14->Left = 264;
Image14->Top = 394;
}
//--------------------------------------------------------------------// Ao executar o programa, carrega o threshold em 95 e a imagem do rob na
imagem inicial
void __fastcall TForm1::FormShow(TObject *Sender)
{
ScrollBar6->Position = 95;
Image14->Left = 144;
Image14->Top = 394;
}
//---------------------------------------------------------------------
52
53