Vous êtes sur la page 1sur 53

Renan Costa Sbeghen

0450071, 8 Semestre

Processamento Digital de Imagem

Jaguarina
2007

Renan Costa Sbeghen


0450071, 8 Semestre

Processamento Digital de Imagem

Monografia apresentada disciplina Trabalho


de Graduao, do curso de Cincia da
Computao da Faculdade de Jaguarina, sob
orientao do Prof. Dr. Andr Mendeleck, como
exigncia parcial para concluso do curso de
graduao.

Jaguarina
2007
2

Sbeghen, Renan Costa. Processamento Digital de Imagem. Monografia


defendida e aprovada na FAJ em 13 de dezembro de 2007 pela banca
examinadora constituda pelos professores:

_________________________________________________________________
Prof. Dr. Andr Mendeleck

_________________________________________________________________
Prof. Ms. Fernando Augusto Zancheta

_________________________________________________________________
Prof. Jos Arnaldo Geraldini Nunes

Dedico este humilde trabalho a todos


aqueles que com muito esforo e f em
Deus, trilharam COMIGO este longo
caminho e c esto como vencedores.

AGRADECIMENTOS

Primeiramente a Deus, que me deu a oportunidade de chegar onde


estou hoje.
A todos os meus amigos que com uma palavra, dica ou um simples
gesto me ajudaram. Agradeo a todos que me ajudaram na realizao deste trabalho.
Particularmente

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.

Ningum to grande que no possa aprender,


nem to pequeno que no possa ensinar.
(Pndaro, poeta romano)

Sbeghen, Renan Costa. Processamento Digital de Imagem. 2007. Monografia (Bacharelado


em Cincia da Computao) Curso de Cincia da Computao da Faculdade de Jaguarina,
Jaguarina.

RESUMO

Estudos na rea de processamento de imagem tm como objetivo o reconhecimento de


ambientes desconhecidos. Atualmente existem vrios tipos de processamento de imagens,
sendo que a maioria tem um alto custo para ser utilizado. No entanto foi utilizado algo
simples como a mono viso, onde se desenvolveu um mtodo para o reconhecimento de
ambientes para que o rob possa se locomover entre objetos. A implementao de um modelo
computacional para processamento de imagens. Utilizou-se o software Borland C/C++ builder
para a criao do modelo computacional.

Palavras-chave: Computao, Processamento de Imagem, Computao Grfica, Robs.

Sbeghen, Renan Costa. Processamento Digital de Imagem. 2007. Monografia (Bacharelado


em Cincia da Computao) Curso de Cincia da Computao da Faculdade de Jaguarina,
Jaguarina.

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.

Key word: Computer, Image Processing, Computer Graphics, Robots.

SUMRIO
LISTA DE ILUSTRAES.................................................................................................. 10
1. INTRODUO .................................................................................................................. 11
2. AQUISIO DE IMAGENS DIGITAIS ......................................................................... 14
2.1.

REGIO DE INTERESSE........................................................................................ 19

2.2.

PASSOS PARA O PROCESSAMENTO DE IMAGEM ........................................ 20

2.3.

PR-PROCESSAMENTO DE IMAGEM ............................................................... 21

2.4.

SEGMENTAO DE IMAGEM ............................................................................. 22

3.

DESCRIO DO PROJETO ....................................................................................... 23

3.1

Diagrama estrutural do projeto ................................................................................ 24

3.2

Metodologia................................................................................................................. 25

3.3

Projeto.......................................................................................................................... 26

3.4

Caso de uso .................................................................................................................. 27

3.5

Interface....................................................................................................................... 30

3.6

Diagrama funcional .................................................................................................... 34

3.7

Simulao do processamento da imagem ................................................................. 36

CONCLUSO................................................................................................................. 40

REFERNCIAS BIBLIOGRFICAS ................................................................................. 41


ANEXO I ................................................................................................................................. 43

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

especificaes geomtricas e visuais de seus componentes.


Processamento de Imagens: envolve tcnicas de transformao de imagens,

tanto a imagem original quanto a imagem resultado, apresentam-se sob uma


representao visual (geralmente matricial). Essas transformaes visam
melhorar as caractersticas visuais da imagem.
Anlise de Imagens: procura obter a especificao dos componentes de uma

imagem a partir de sua representao visual (primitivas geomtricas


elementares que compem a imagem).
E em processamento digital de imagens, existem vrios tipos de aplicao, onde
podemos citar:

Melhoria da informao visual para a interpretao humana.

Processamento de dados de cenas para percepo automtica atravs de


mquinas.

O processamento digital de imagens tem como objetivo melhorar as caractersticas


estruturais da imagem fornecendo subsdios para a sua interpretao, de tal forma a permitir,
por exemplo, a sua utilizao para o reconhecimento de ambientes para aplicaes em

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

resposta do sistema devido ao tempo de processamento. Como exemplo, temos a alta


demanda de informaes que so submetidas ao sistema de viso, em funo da relao
existente entre um sistema de deciso em tempo real, com um sistema de leitura de imagens
que opera em uma determinada taxa de captao/leitura, isto , quantidade de imagens
geradas por segundo.

13

2. Aquisio de Imagens Digitais


Para ser feito o processamento da imagem preciso obt-la, onde utilizada uma
cmera para a captura da imagem.
Um sistema genrico mnimo de processamento de imagens deve permitir as seguintes
operaes com imagens:

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

FIGURA 02 Diagrama em blocos de um sistema genrico de processamento de imagens.


Fonte: [3] - Processamento de Imagens: Mtodos e Anlises.

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

cores e trabalhando com a informao de luminncia somente. No caso de imagens coloridas


cada componente da imagem ("Red", "Green" e "Blue") armazenada separadamente na
memria principal.
A imagem de sada geralmente reconstruda atravs de conversores digitais
/Analgicos (DAC), onde so somados pulsos de sincronizao para gerao do sinal de
vdeo. Este formato de sinal bastante utilizado por ser padro adotado por todos os
fabricantes de equipamentos de vdeo.
A imagem , nada mais, que uma funo bidimensional de intensidade da luz, sendo
f(x,y), onde x e y so as coordenadas e o valor f em qualquer ponto (x,y) proporciona um
nvel de cinza da imagem, conforme mostrado na FIGURA 03.

FIGURA 03 - Conveno dos eixos para representao de imagens


A viso computacional uma tima forma de ter informaes sobre um ambiente
desconhecido, mas s podemos tratar ela em 2D, para transform-la em 3D precisa-se de um
alto custo computacional e algoritmos muito complexos.
Para BERTOZZI (et al., 2000), A viso computacional pode ser uma importante
ferramenta para recuperar ou obter informaes sobre ambientes.

16

FIGURA 04 Passos para processamento das imagens digitais


S. Paciornik DCMM PUC-Rio

Seguindo os passos da FIGURA 04 conseguimos deixar a imagem tratada para a


interpretao do caminho, onde a imagem capturada e passa pelos processos de filtragem,
que o pr-processamento da imagem (d um realce a imagem, deixando ela at mais ntida),
a segmentao da imagem (procura-se distinguir as partculas umas das outras e do fundo,
onde permitir ao programa interpretar pixels contguos e agrup-los em regies), o psprocessamento (tcnicas de luminosidade, reparo de cores), a extrao de atributos (faz
medidas na imagem novamente e aplicam-se os mtodos), classificao e reconhecimento
(classifica o pixel em branco ou preto), como demonstrado logo abaixo.
A imagem mostrada na FIGURA 5 a imagem original, capturada de uma webcam e
selecionada entre 12 imagens que fazem parte do software, foi escolhida est imagem, pois a
imagem de partida do rob (simulao).

17

FIGURA 05 Imagem original

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.

FIGURA 06 Imagem em tom de cinza

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

FIGURA 07 Imagem preto e branco

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

Um conceito importante em processamento de imagens a Regio de Interesse.


Entende-se como Regio de Interesse a regio definida automaticamente a partir de
parmetros obtidos na prpria imagem (ou por um usurio) onde o processamento estar
totalmente concentrado. Podemos, por exemplo, definir uma regio de interesse onde sabemos
por antecedncia que a iluminao de fundo constante ou foi corrigida.
Normalmente, nas tcnicas de processamento de imagens iremos sempre encontrar
problemas no tratamento das bordas da imagem. A criao de regies de interesse faz com
que apaream tambm problemas nas bordas das regies de interesse. A soluo deste
problema completamente dependente do problema ao qual o processamento de imagens esta
associado, i.e., ao que conhecemos e podemos levar em considerao anteriormente ao
processamento.

19

Com a regio de interesse podemos localizar um caminho em uma imagem, coisa que
ser utilizada neste trabalho.

2.2.

Passos para o Processamento de Imagem


O processamento de imagens envolve a aplicao de vrios mtodos/algoritmos para

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

FIGURA 08 Passos em processamento de imagens digitais

2.3.

Pr-processamento de Imagem
Para BERTOZZI (et al., 2000), Muitos dos grupos de pesquisa em viso

computacional utilizam algoritmos de filtragem altamente sofisticados. Na maior parte,


imagens em nvel de cinza so usadas, porm em outros, imagens coloridas: este o caso do
MOSFET9 rob mvel, que utiliza um algoritmo de segmentao para maximizar o contraste
entre as linhas da pista e a estrada.
O pr-processamento consiste em analisar a imagem capturada, onde ser aplicado os
tratamentos que far com que a imagem fique em tom de cinza para poder aplicar o Threshold
que deixar a imagem em preto e branco.
Neste trabalho ser necessrio utilizarmos as imagens em preto e branco para a
interpretao de caminhos para podermos envi-las para um rob.
Algumas aplicaes tpicas so: a determinao do nmero de clulas presentes em um
tecido biolgico, o clculo das formas dos contornos de uma clula ou ainda a determinao
da distribuio de uma populao especfica de um conjunto de clulas. As tcnicas dedicadas
anlise de imagens podem variar significativamente segundo a sua complexidade e a
necessidade em tempo de processamento. E nesta rea que vamos encontrar um nvel elevado
de complexidade no tratamento da informao. Um exemplo prtico e quando da classificao
automtica de clulas doentes dentro de um conjunto de clulas observadas em microscopia.

21

2.4.

Segmentao de Imagem
A segmentao consiste na primeira etapa de processamento da imagem quando

consideramos uma anlise do ponto de vista da INFORMAO nela presente. O termo


segmentao vem do termo em ingls "image segmentation", criado durante os anos 80 [11].
Esta rea representa at hoje uma linha de pesquisa importante do processamento de
imagens, principalmente por ela estar na base de todo o processamento da informao em uma
imagem. Segmentar consiste em dividir a imagem em diferentes regies, que sero
posteriormente analisadas por algoritmos especializados em busca de informaes ditas de
"alto-nvel".
Existem diversas tcnicas de segmentao de imagens, mas no existe nenhum mtodo
nico que seja capaz de segmentar todos os tipos de imagem. Globalmente, uma imagem em
nveis de cinza pode ser segmentada de duas maneiras: ou consideramos a semelhana entre
os nveis de cinza ou consideramos as suas diferenas. A deteco de um contorno de um
objeto, atravs de matrizes do tipo Passa-Alta, um exemplo de tcnicas baseado nas
diferenas. Neste caso estamos segmentando as imagens em regies que pertencem a borda do
objeto.
Neste trabalho ser utilizado a segmentao para localizao de um caminho a ser
percorrido, onde a imagem ser divida em 3 partes para ser feita a anlise em cada parte e
escolher o melhor caminho.

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:

A implementao de um modelo computacional para processamento digital de


imagens, onde o rob consiga interpretar um caminho a ser percorrida sendo como sua
inspirao biolgica, o olhar do ser humano.

O modelo computacional ser uma simulao.

Aps os experimentos e implementao computacional, ser criado um modelo real do


rob.

23

3.1 Diagrama estrutural do projeto


Este diagrama representa os mdulos para se processar a imagem e localizar o caminho onde
se obtm o resultado final, onde os mdulos so:

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;

Identificao: O sistema ir dividir a imagem em 3 partes e contar a quantidade de


pixel de cada parte para a identificao do caminho, onde ele selecionar o melhor
caminho a ser percorrido pelo rob;

Gerar ao: O sistema ir gerar a ao para o rob, onde ele utilizar um gerador de
movimento para ajudar;

Enviar comandos para o rob: Aps todos os processos o sistema ir enviar os


comandos para o rob, onde o mesmo ir executar.

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:

Estudo de computao grfica;

Estudo de processamento digital de imagens;

Estudo de vrios mtodos para o processamento de imagens;

Pesquisa de algoritmos de processamento de imagens;

Desenvolvimento do software que ir capturar a imagem de uma webcam;

Desenvolvimento do algoritmo, utilizando o mtodo de Threshold, que ir filtrar a


imagem;

Estudos da imagem filtrada, para localizar o melhor caminho a ser percorrido;

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

3.4 . Caso de uso

FIGURA 10 Diagrama de caso de uso


Use case Capturar imagem
Atores - Usurio
Descrio - Este caso de uso comea quando o usurio captura a imagem a ser processada.

27

Use case Filtrar imagem


Atores No h atores neste processo
Descrio Aps a captura da imagem, o sistema ir filtrar a imagem(transform-la em preto
e branco) deixando pronta para o prximo passo.

Use case Identificar caminhos


Atores No h atores neste processo
Descrio Feito o filtro na imagem, o sistema ir dividir a imagem em 3 partes e ir calcular
a quantidade de pixels brancos existem em cada parte da imagem.

Use case Selecionar o melhor caminho


Atores No h atores neste processo
Descrio Aps ser feita a identificao dos caminhos, o sistema ir selecionar a parte que
contiver a maior quantidade de pixels brancos, pois ser a parte que contm o melhor caminho
a ser seguido.

28

Use case Gerar ao / Enviar comandos para o rob


Atores No h atores neste processo
Descrio Aps a identificao do melhor caminho, o sistema ir gerar a ao para o rob,
para que ele possa se locomover e ser enviado via porta serial.

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.

FIGURA 11 Tela do sistema


Para melhor entendimento ser explicado cada parte do programa, comeando pelo
mapa panormico.
O mapa panormico mostra a regio onde o rob poder se locomover, como mostra o
QUADRO 1.

30

O b sta c u lo s

QUADRO 1 Mapa panormico

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

QUADRO 2 Mapa de locomoo


Logo aps temos os botes de comando, onde voc seleciona qual a operao que
deseja ser executada, que no caso ser o processamento da imagem, onde o software ir fazer
o tratamento da imagem, como mostra o QUADRO 3.

QUADRO 3 Botes de comando


O boto para processar a imagem ir fazer o tratamento da imagem deixando-a em
preto e branco e fazendo os clculos necessrios para a localizao do melhor caminho, sendo
o campo que tiver o maior valor ser o melhor caminhos a ser percorrido e esses valores
sero impressos nos campos de resultados como mostra o QUADRO 4

32

QUADRO 4 - Campos de resultados


Nesta parte ser mostrada a imagem original e a imagem tratada, como mostra o
QUADRO 5.

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

QUADRO 5 rea de tratamento da imagem


Cada parte apresentada a cima tem sua devida importncia para que possa ser
analisada pelo usurio.

33

3.6 Diagrama funcional

Processos de execuo do software desenvolvido para processamento digital de imagens:


1 Capturar a imagem para o processamento;
2 Processar a imagem para localizao do caminho;
3 Selecionar o melhor caminho a ser percorrido (Caminho1 (Esquerda), Caminho2
(Frente), Caminho3 (Direita));
4 Executar a ao para que o rob se locomova.

Capturar Imagem

Processar Imagem

Caminho 1

Caminho 2

Caminho 3

Seleo do melhor caminho a percorrer

Executar processo

FIGURA 12 Diagrama Funcional


34

Como mostra o diagrama funcional (FIGURA 12), o software ir capturar a imagem


passando ela por um processamento onde ser aplicado o mtodo de Threshold e a partir da
imagem tratada ser gerado 3 caminhos (esquerda, frente, direita), onde o sistema ir
selecionar o melhor caminho a ser percorrido pelo rob e ir executar o processo, ordenando a
ao.

35

3.7 Simulao do processamento da imagem


A simulao ser feita por uma base de dados (imagens) j existente no software
desenvolvido para analise, pois no temos o rob em si para fazer os testes, ento ser tudo
uma simulao.
O usurio ir capturar (selecionar) a imagem, e ir mandar processar a imagem.
O software ir trat-la e verificar qual o melhor caminho a ser percorrido, isso ser
feito imagem por imagem.
Como mostra a FIGURA 13, o rob est em sua posio inicial no mapa de
locomoo.

Po si o inic ia l d o rob

FIGURA 13 Imagem inicial


Ao clicarmos no boto Processar Imagem, o software ir fazer a aplicao do mtodo
de Threshold na imagem e aps a aplicao do mtodo o software ir fazer os clculos para
definir qual o melhor caminho a ser percorrido pelo rob, sendo que se os resultados dos
campos de resultados (variveis) forem iguais (1,1,1), o rob ir em frente, pois isto foi uma

36

regra definida no desenvolvimento do algoritmo, a FIGURA 14 mostra o rob em sua nova


posio e tambm a nova imagem a ser processada.

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

FIGURA 14 Aps processamento


Como mostra a FIGURA 14 todos os valores exibidos nos campos de valores foram
iguais (1,1,1) ento o sistema ir fazer com que o rob avance para frente e a nova imagem a
ser processada j foi carregada para o prximo processamento.

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

FIGURA 15 Aps processamento

Na FIGURA 15 o rob se deslocou para a esquerda, pois foi onde o software


encontrou o maior espao em branco na imagem, como est impresso nos campos de
resultados (esquerda = 0,83, centro = 0,49, direita = 0,72).

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

FIGURA 16 Aps processamento

J na FIGURA 16 o rob se deslocou para a direita, pois foi onde o software


encontrou o maior espao em branco na imagem, como est impresso nos campos de
resultados (esquerda = 0,62, centro = 0,63, direita = 0,96).

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.

ALBUQUERQUE, M. P.; ALBUQUERQUE, M. P . Processamento de Imagens:


Mtodos e Anlises. Disponvel via URL em:
http://www.cbpf.br/cat/pdsi/pdf/ProcessamentoImagens.PDF. Acessado em 03 de junho
de 2007.

2.

BERTOZZI, M., BROGGI, A. & FASCIOLI, A., (2000), Vision-based intelligent


vehicles: state of the art and perspectives. Robotics and Autonomous systems 32, pp. 116.

3.

Conceitos Bsicos. Disponvel via URL em:


<http://www.ee.furg.br/~silviacb/DIP/Conceitos_Basicos.html >. Acessado em 25 de
novembro de 2007

4.

Criao de desenhos para abstrair fotografias. Disponvel via URL em:


<http://w3.impa.br/~lvelho/ip02/demos/sossai/Apresentacao.pdf>. Acessado em 31 de
outubro de 2007.

5.

Extrao de Caractersticas. Disponvel via URL em:


<http://www.tecgraf.puc-rio.br/~mgattass/ra/ppt/03Caracteristicas.ppt#307,8,Srie de
Taylor>. Acessado em 31 de outubro de 2007.

6.

Facocientifica.org. Disponvel via URL em:


<http://www.faccaocientifica.org/index.php?option=com_content&task=view&id=169&I
temid=135>. Acessado em 25 de novembro de 2007.

7.

GONZALEZ, C. R. & WOODS, E. R., (2000), Processamento de Imagens Digitais,


So Paulo, Editora Edgard Blucher Ltda.

8.

J. Richards, "Remote Sensing Digital Image Analysis", Springer-Verlag, 1986

9.

Neto, A. M. Navegao de Robs Autnomos baseada em Monoviso. 2007. 134 f.


Tese (Mestrado em Engenharia Mecnica) Universidade Estadual de Campinas,
Campinas.

10. Origens da Computao Grfica. Disponvel via URL em:


<http://www.inf.pucrs.br/~pinho/CG/Aulas/Intro/intro.htm>. Acessado em 15 de
novembro de 2007.

De acordo com a ABNT Associao Brasileira de Normas Tcnicas.

41

11. Ozawa, D. M. Processamento e Reconhecimento de Imagens Digitais da Retina


Humana. 2004. 46 f. Universidade Estadual de Londrina. Disponvel em:
<http://www.dc.uel.br/nou-rau/document/?view=140>. Acessado em 03 de junho de
2007.
12. Persiano, R. C. M. and Oliveira, A. A. F. (1989). Introduo Computao Grfica.
Livros Tcnicos e Cientficos Editora Ltda.
13. Processamento de Imagens. Disponvel via URL em:
<http://atlas.ucpel.tche.br/~vbastos/pi.htm>. Acessado em 05 de maio de 2007
14. R. Gonzalez, R. Woods, "Digital Image Processing", 2nd Ed.Prentice Hall, 2002
15. TECGRAF. Disponvel em: <http://www.tecgraf.org/~mgattass/ra/trb03/MichelAlain/>.
Acessado em 03 de junho de 2007.
16. UFSC. Disponvel em: <http://s2i.das.ufsc.br/harpia/downloads/apostila-sistemasvisao.pdf>. Acessado em 03 de junho de 2007.
17. Universidade Federal de Santa Catarina. Disponvel via URL em:
<http://www.inf.ufsc.br/~visao/1998/seara/index.html>. Acessado em 31 de outubro de
2007

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

if (panel == 7){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); }


if (panel == 8){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp"); }
if (panel == 9){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto9.bmp"); }
if (panel == 10){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp"); }
if (panel == 11){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp"); }
if (panel == 12){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp"); }

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

if (panel == 9){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto9.bmp"); }


if (panel == 10){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp"); }
if (panel == 11){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp"); }
if (panel == 12){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp"); }

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

if (panel == 7){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); }


if (panel == 8){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp"); }
if (panel == 9){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto9.bmp"); }
if (panel == 10){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp"); }
if (panel == 11){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp"); }
if (panel == 12){ pBitmap>LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp"); }
Form1->Canvas->Draw(0,0,pBitmap);
TColor c;
// Executa a funo do boto Transferir
btnTransferirClick(Sender);
// Transferi a imagem original para o segundo plano para ser processada
for( linha=0;linha<pBitmap->Height;linha++)
for( coluna=0;coluna<pBitmap->Width;coluna++) //Image1->Width;coluna++)
{
c = Canvas->Pixels[coluna+col0][linha+lin0];
if (c>RGB(ScrollBar6->Position,ScrollBar6->Position,ScrollBar6>Position)) c=255;
else c=0;
Canvas->Pixels[coluna+col0][linha+lin0]=RGB(c,c,c);
Canvas->Pixels[coluna+col0][linha+lin0]=RGB(c,c,c);
}
// Calcula a quantidade de pixel total da imagem
for( linha1=180;linha1<240;linha1++)
for( coluna1=0;coluna1<106;coluna1++)
{
cont1 = cont1 + 1;
if (Canvas->Pixels[coluna1+col0][linha1+lin0] == RGB(255,255,255)) aux1
= aux1 + 1;
}
for( linha1=180;linha1<240;linha1++)
for( coluna2=107;coluna2<212;coluna2++)
{
cont2 = cont2 + 1;
if (Canvas->Pixels[coluna2+col0][linha1+lin0] == RGB(255,255,255)) aux2
= aux2 + 1;
}
for( linha1=180;linha1<240;linha1++)
for( coluna3=213;coluna3<320;coluna3++)
{
cont3 = cont3 + 1;
if (Canvas->Pixels[coluna3+col0][linha1+lin0] == RGB(255,255,255)) aux3
= aux3 + 1;
}

46

// Calcula
tot1
tot2
tot3

a
=
=
=

maior quantidade de pixel branco


aux1 / cont1;
aux2 / cont2;
aux3 / cont3;

// Verifica qual o melhor caminho a percorrer


caminho = 2;
maior = tot2;
if (tot1
maior =
caminho
}
if (tot3
maior =
caminho
}

> 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

Prof. Dr. Andr Mendeleck

Renan Costa Sbeghen

53