Processamento Digital de Imagem



Documentos relacionados
DETECÇÃO DE CORES DE SOLUÇÕES QUÍMICAS PARA PESSOAS COM NENHUMA OU BAIXA VISÃO UTILIZANDO OPENCV

4 Sistema Computacional:

Mídias Discretas. Introdução à Ciência da Informação

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Introdução à Informática

Processamento e Reprodução de Imagem com Arduíno 1

Introdução ao Processamento de Imagens

Prof. Daniel Gondim Informática

Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA. Utilizando JAVA. TCC - Monografia

Computação Gráfica - 12

Introdução a Análise de Imagens Digitais

RECONHECIMENTO FACIAL 2D

Programa 25/02/2019. Objetivo Geral: Processamento Digital de Imagens I Turma A. Objetivos Específicos:

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Universidade Federal do Paraná - Setor de Ciências da Terra

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Princípios sobre imagens digitais

-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Morfologia Matemática: algumas aplicações. Rosana Gomes Bernardo Universidade Federal Fluminense

Processamento de Imagens Digitais

Processamento Digital de Imagens

Processamento Digital de Imagens

Organização e Arquitetura de Computadores I

PMR2560 Visão Computacional Conversão e Limiarização. Prof. Eduardo L. L. Cabral

Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem Monocromática. Propriedades da Imagem

Sensoriamento Remoto

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

PROGRAMAÇÃO DE COMPUTADORES

BANCO DE DADOS GEOGRÁFICOS E WEBMAPPING. Prof. Angelo Augusto Frozza, M.Sc.

INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS PROGRAMA DE PÓS-GRADUAÇÃO EM SENSORIAMENTO REMOTO DIVISÃO DE PROCESSAMENTO DE IMAGENS

2 Segmentação de imagens e Componentes conexas

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

Como capturar imagens de alta resolução?

PLANEJAMENTO E AUTOMAÇÃO DE SOFTWARE PARA UTILIZAÇÃO NA DISCIPLINA DE CÁLCULO DIFERENCIAL E INTEGRAL

Orientação a Objetos - Programação em C++

Processamento Digital de Imagens

Introdução ao Processamento de Imagens Digitais Aula 01

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

Extração de objetos de interesse em imagens digitais utilizando a biblioteca de Visão Computacional OpenCV

Processamento Digital de Imagens

T4.1 Processamento de Imagem

Detecção e Correção Automáticas de Olhos Vermelhos

MouseCam: aplicação de controle do mouse via câmera

Capítulo III Processamento de Imagem

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

FACULDADE PITÁGORAS PRONATEC

MANUAL DO USUÁRIO. Figura 1: Tela de Apresentação do FaçaCalc.

Imagem Digital. Claudio Carvilhe

Algoritmos e Técnicas de Programação. Professora Luciana Faria

Universidade do Estado de Minas Gerais Curso de Sistemas de Informações. Multimídia. A Imagem (Parte I)

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

Mapas e suas representações computacionais

Conceitos Básicos Linguagem C

Processamento digital de imagens

Processamento Digital de Imagens

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais

Guia de qualidade de cores

Buffer de Rede Configuração de Rede <x> Modo NPA Comutação p/ PCL Configuração p/ PS Binário PS p/ MAC

Minicurso de FTOOL. Lívia Braga Sydrião de Alencar

MÉTODO DE DETECÇÃO DE PONTOS DE INTERESSE PARA SENSOR DE TRIANGULAÇÃO LASER APLICADA A SOLDAGEM

Unidade 2: Estruturas de Controle Parte 1 - Scanner e Estrutura IF Prof. Daniel Caetano

METODOLOGIA DE MEDIÇÃO AUTOMÁTICA DE DUREZA BRINELL POR MEIO DE TÉCNICAS DE VISÃO COMPUTACIONAL

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

Motivação Por que estudar?

O Sistema de Computação

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2

Aula 3: Algoritmos: Formalização e Construção

PROCESSAMENTO DIGITAL DE IMAGENS

Gerenciamento de Redes: Protocolo SNMP

Arquitetura de Von Neumann

MICROCOMPUTADORES. Professor Adão de Melo Neto

Guia do CFTV Sistemas de CFTV, IP, Seguranà a Eletrà nica, Conectividade, Informaà ões, Fórum e Tecnologia.

Tutorial. Georreferenciamento de Imagens. versão /08/2008. Autores: Rafael Bellucci Moretti, Vitor Pires Vencovsky

Transcrição:

Renan Costa Sbeghen 0450071, 8 Semestre Processamento Digital de Imagem Jaguariúna 2007

Renan Costa Sbeghen 0450071, 8 Semestre Processamento Digital de Imagem Monografia apresentada à disciplina Trabalho de Graduação, do curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Dr. André Mendeleck, como exigência parcial para conclusão do curso de graduação. Jaguariúna 2007 2

Sbeghen, Renan Costa. Processamento Digital de Imagem. Monografia defendida e aprovada na FAJ em 13 de dezembro de 2007 pela banca examinadora constituída pelos professores: Prof. Dr. André Mendeleck Prof. Ms. Fernando Augusto Zancheta Prof. José Arnaldo Geraldini Nunes 3

Dedico este humilde trabalho a todos aqueles que com muito esforço e fé em Deus, trilharam COMIGO este longo caminho e cá estão como vencedores. 4

AGRADECIMENTOS estou hoje. Primeiramente a Deus, que me deu a oportunidade de chegar onde A todos os meus amigos que com uma palavra, dica ou um simples gesto me ajudaram. Agradeço a todos que me ajudaram na realização deste trabalho. Particularmente agradeço: Meu orientador, Prof. Dr. André Mendeleck, pelo seu apoio, confiança e paciência, que foram fundamentais para a realização e finalização desta monografia. Aos meus pais Eliana e Miguel e irmão Renato, que com muito amor me deram apoio, conselhos, e tiveram muita paciência com as longas noites em claro. Aos professores do curso de Ciência da Computação que, durante a graduação, tanto contribuíram para o meu crescimento intelectual e pessoal. E de uma forma especial, a todos os amigos do curso de Ciência da Computação pelos momentos alegres durante todos estes anos. 5

Ninguém é tão grande que não possa aprender, nem tão pequeno que não possa ensinar. (Píndaro, poeta romano) 6

Sbeghen, Renan Costa. Processamento Digital de Imagem. 2007. Monografia (Bacharelado em Ciência da Computação) Curso de Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO Estudos na área de processamento de imagem têm como objetivo o reconhecimento de ambientes desconhecidos. Atualmente existem vários 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 visão, onde se desenvolveu um método para o reconhecimento de ambientes para que o robô possa se locomover entre objetos. A implementação de um modelo computacional para processamento de imagens. Utilizou-se o software Borland C/C++ builder para a criação do modelo computacional. Palavras-chave: Computação, Processamento de Imagem, Computação Gráfica, Robôs. 7

Sbeghen, Renan Costa. Processamento Digital de Imagem. 2007. Monografia (Bacharelado em Ciência da Computação) Curso de Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. 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. 8

SUMÁRIO LISTA DE ILUSTRAÇÕES...10 1. INTRODUÇÃO...11 2. AQUISIÇÃO DE IMAGENS DIGITAIS...14 2.1. REGIÃO DE INTERESSE...19 2.2. PASSOS PARA O PROCESSAMENTO DE IMAGEM...20 2.3. PRÉ-PROCESSAMENTO DE IMAGEM...21 2.4. SEGMENTAÇÃO DE IMAGEM...22 3. DESCRIÇÃO 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 Simulação do processamento da imagem...36 4 CONCLUSÃO...40 REFERÊNCIAS BIBLIOGRÁFICAS...41 ANEXO I...43 9

LISTA DE ILUSTRAÇÕES FIGURA 01 - Aquisição de imagem... 14 FIGURA 02 - Diagrama em blocos de um sistema gen. de processamento de imagens... 15 FIGURA 03 - Convenção dos eixos para representação 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 panorâmico... 31 QUADRO 2 - Mapa de locomoção... 32 QUADRO 3 - Botões 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 - Após processamento... 37 FIGURA 15 - Após processamento... 38 FIGURA 16 - Após processamento... 39 10

1. INTRODUÇÃO O Processamento de Imagens são técnicas para a análise de dados multidimensionais, que manipula imagens para obter informações que podem conduzir à tomada de decisão. O elemento principal é a imagem ou um conjunto delas, captadas através de uma câmera, de um scanner laser, de um ultra-som, de um ressonador magnético, ou por qualquer outro meio. A Computação Gráfica consiste na geração, manipulação e interpretação de modelos e imagens de objetos utilizando o computador. A computação gráfica tem relação com 3 sub-áreas[persiano and Oliveira, 1989]: Síntese de Imagens: produção de representações visuais a partir das especificações geométricas e visuais de seus componentes. Processamento de Imagens: envolve técnicas de transformação de imagens, tanto a imagem original quanto a imagem resultado, apresentam-se sob uma representação visual (geralmente matricial). Essas transformações visam melhorar as características visuais da imagem. Análise de Imagens: procura obter a especificação dos componentes de uma imagem a partir de sua representação visual (primitivas geométricas elementares que compõem a imagem). podemos citar: E em processamento digital de imagens, existem vários tipos de aplicação, onde Melhoria da informação visual para a interpretação humana. Processamento de dados de cenas para percepção automática através de máquinas. O processamento digital de imagens tem como objetivo melhorar as características estruturais da imagem fornecendo subsídios para a sua interpretação, de tal forma a permitir, por exemplo, a sua utilização para o reconhecimento de ambientes para aplicações em 11

robótica e também para outros processamentos, onde os algoritmos realizam operações com o objetivo de segmentá-las. Para GONZALEZ & WOODS (2000), Podem ser considerados como a partição de imagens digitais em conjuntos de pixels considerando-se a necessidade geral e critérios previamente definidos. Para Albuquerque (2000, p.1), O processamento de imagens é certamente uma área em crescimento. Diversos temas científicos são abordados e em alguns casos de caráter interdisciplinar. Entre eles podemos citar: a compreensão de imagens, a análise em multiresolução e em multi-freqüência, a análise estatística, a codificação e a transmissão de imagens, etc. O Processamento Digital de Imagens tem crescido muito nas últimas décadas, com a utilização de imagens e gráficos em uma grande variedade de aplicações, possibilitando a utilização de sistemas mais eficientes e mais baratos. Muitas áreas vêm utilizando Sistemas de Processamento Digital de Imagens, como por exemplo: reconhecimento de padrões, medicina, meteorologia, pesquisas espaciais etc. Pode-se aplicar o processamento digital de imagens em análise de recursos naturais, análise ambiental, meteorologia, onde é necessário realçar as informações da imagem. Em contrapartida, o tipo e a quantidade de sensores, como por exemplo a quantificação e sensoriamento remoto na investigação geográfica, determinam o volume de dados para o processamento e composição da imagem do ambiente, impondo na maioria dos casos, alto custo computacional. Para BERTOZZI (et al., 2000), Muitas das aplicações para controle de veículos autônomos que apresentaram bons resultados, tanto para ambientes externos quanto para ambientes internos, utilizavam a visão computacional como parte integrante do conjunto de sensores. Neste trabalho considerou-se somente um sensor(câmera), a monovisão, isto é, um sensor irá adquirir imagens do ambiente e estas fornecerão informações ao sistema computacional. Embora a monovisão seja uma solução bastante econômica, possui a desvantagem de não conseguir obter informações de profundidade, limitando a percepção do sistema, sendo trivial para o sistema humano, construir cenas tridimensionais a partir de imagens bidimensionais captadas pelo sistema de visão, e a partir destas tomar decisões precisas para a navegação, pode não ser trivial para os sistemas computacionais. Diferentemente do sistema humano, sistemas de processamento e análise de imagens computacionais mais complexos podem desencadear alguns prejuízos como a velocidade de 12

resposta do sistema devido ao tempo de processamento. Como exemplo, temos a alta demanda de informações que são submetidas ao sistema de visão, em função da relação existente entre um sistema de decisão em tempo real, com um sistema de leitura de imagens que opera em uma determinada taxa de captação/leitura, isto é, quantidade de imagens geradas por segundo. 13

2. Aquisição de Imagens Digitais Para ser feito o processamento da imagem é preciso obtê-la, onde é utilizada uma câmera para a captura da imagem. Um sistema genérico mínimo de processamento de imagens deve permitir as seguintes operações com imagens: aquisição visualização manipulação Como mostra a FIGURA 01, a aquisição é feita por uma câmera, onde passará pelo processamento que fará o tratamento da imagem, logo após ela poderá ser armazenada em discos ou mostrada em monitores e impressoras. AQUISIÇÃO Câmeras PROCESSAMENTO processamento SAÍDA Monitores de video Impressoras ARMAZENAMENTO Discos Vídeo FIGURA 01 Aquisição de imagem Alguns dos componentes de um sistema de visão artificial podem ser os sensores de visão (câmeras), sistema de digitalização de imagens, memória para armazenamento das imagens, um processador para acessar a memória 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 genérico de processamento de imagens. Fonte: [3] - Processamento de Imagens: Métodos e Análises. O módulo de entrada é constituído por uma câmera que capta a imagem real de uma cena. Uma imagem digital é discretizada espacialmente (ou seja em x e y) e em luminância (níveis de cinza / cores). Alguns exemplos de módulos de aquisição são: as câmeras, os scanners ou ainda alguns sensores dedicados (como sistemas de infravermelho, mapeamento magnético de uma superfície, sensoriamento de radares, etc). Sendo que a câmera de vídeo é o sensor de aquisição de imagem mais freqüentemente utilizado. Uma câmera de vídeo apresenta características de sensibilidade, resolução e função de transferência (entre a imagem captada da cena e a intensidade do sinal de vídeo fornecido). Algumas câmeras mais sofisticadas permitem ainda controlar o offset ou ganho do sinal de vídeo, possibilitando uma correção do contraste da imagem em tempo real. Em alguns casos podemos encontrar módulos que permitem o ajuste da iluminação de fundo ou ainda realçar os contornos dos objetos através da execução de funções específicas. Neste trabalho foi considerado somente imagens em níveis de cinza, pois grande parte dos algoritmos de análise de imagens coloridas são feitas recombinando as componentes de 15

cores e trabalhando com a informação de luminância somente. No caso de imagens coloridas cada componente da imagem ("Red", "Green" e "Blue") é armazenada separadamente na memória principal. A imagem de saída é geralmente reconstruída através de conversores digitais /Analógicos (DAC), onde são somados pulsos de sincronização para geração do sinal de vídeo. Este formato de sinal é bastante utilizado por ser padrão adotado por todos os fabricantes de equipamentos de vídeo. A imagem é, nada mais, que uma função bidimensional de intensidade da luz, sendo f(x,y), onde x e y são as coordenadas e o valor f em qualquer ponto (x,y) proporciona um nível de cinza da imagem, conforme mostrado na FIGURA 03. FIGURA 03 - Convenção dos eixos para representação de imagens A visão computacional é uma ótima forma de ter informações 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 visão computacional pode ser uma importante ferramenta para recuperar ou obter informações 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 interpretação 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 nítida), a segmentação da imagem (procura-se distinguir as partículas umas das outras e do fundo, onde permitirá ao programa interpretar pixels contíguos e agrupá-los em regiões), o pósprocessamento (técnicas de luminosidade, reparo de cores), a extração de atributos (faz medidas na imagem novamente e aplicam-se os métodos), classificação 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ô (simulação). 17

FIGURA 05 Imagem original Após obter a imagem, deve-se deixá-la em tom de cinza, onde é reduzida a quantidade de informações fornecidas pela imagem, facilitando a obtenção dos parâmetros necessários para a escolha da trajetória 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 navegação, que considera-se as regiões em branco, como mostra a FIGURA 07. 18

FIGURA 07 Imagem preto e branco Todos estes processos são feitos com a varredura dos pixels da imagem, fazendo comparações das cores RGB do pixel, onde se o valor do RGB for maior que o valor do Threshold o pixel será preto senão 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. Região de Interesse Um conceito importante em processamento de imagens é a Região de Interesse. Entende-se como Região de Interesse a região definida automaticamente a partir de parâmetros obtidos na própria imagem (ou por um usuário) onde o processamento estará totalmente concentrado. Podemos, por exemplo, definir uma região de interesse onde sabemos por antecedência que a iluminação de fundo é constante ou foi corrigida. Normalmente, nas técnicas de processamento de imagens iremos sempre encontrar problemas no tratamento das bordas da imagem. A criação de regiões de interesse faz com que apareçam também problemas nas bordas das regiões de interesse. A solução deste problema é completamente dependente do problema ao qual o processamento de imagens esta associado, i.e., ao que conhecemos e podemos levar em consideração anteriormente ao processamento. 19

Com a região 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 aplicação de vários métodos/algoritmos para se atingir os objetivos. A primeira etapa consiste em adquirir a imagem digital com uma câmera digital ou uma webcam. FIGURA 08 Após adquirida a imagem, a mesma passa por um processo de filtragem para melhorar o conteúdo da imagem, como o realce do contraste e a remoção de ruído, podendo assim dar mais nitidez a ela. Em seguida são aplicados métodos de segmentação a imagem, dividindo em partes para a produção de uma nova imagem com menos cores. Segmentar consiste na realidade em dividir a imagem em diferentes regiões, que serão posteriormente analisadas por algoritmos especializados em busca de informações ditas de "alto-nível". Com o processo de seleção de características, tentamos extrair características que tenham alguma informação quantitativa de interesse ou que sejam básicas para discriminação entre classes de objetos. O último estágio envolve reconhecimento e interpretação, onde o reconhecimento atribui um parâmetro a um objeto e a interpretação envolve a atribuição 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 visão computacional utilizam algoritmos de filtragem altamente sofisticados. Na maior parte, imagens em nível de cinza são usadas, porém em outros, imagens coloridas: este é o caso do MOSFET9 robô móvel, que utiliza um algoritmo de segmentação 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á necessário utilizarmos as imagens em preto e branco para a interpretação de caminhos para podermos enviá-las para um robô. Algumas aplicações típicas são: a determinação do número de células presentes em um tecido biológico, o cálculo das formas dos contornos de uma célula ou ainda a determinação da distribuição de uma população específica de um conjunto de células. As técnicas dedicadas à análise de imagens podem variar significativamente segundo a sua complexidade e a necessidade em tempo de processamento. E nesta área que vamos encontrar um nível elevado de complexidade no tratamento da informação. Um exemplo prático e quando da classificação automática de células doentes dentro de um conjunto de células observadas em microscopia. 21

2.4. Segmentação de Imagem A segmentação consiste na primeira etapa de processamento da imagem quando consideramos uma análise do ponto de vista da INFORMAÇÃO nela presente. O termo segmentação vem do termo em inglês "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 informação em uma imagem. Segmentar consiste em dividir a imagem em diferentes regiões, que serão posteriormente analisadas por algoritmos especializados em busca de informações ditas de "alto-nível". Existem diversas técnicas de segmentação de imagens, mas não existe nenhum método único que seja capaz de segmentar todos os tipos de imagem. Globalmente, uma imagem em níveis de cinza pode ser segmentada de duas maneiras: ou consideramos a semelhança entre os níveis de cinza ou consideramos as suas diferenças. A detecção de um contorno de um objeto, através de matrizes do tipo Passa-Alta, é um exemplo de técnicas baseado nas diferenças. Neste caso estamos segmentando as imagens em regiões que pertencem a borda do objeto. Neste trabalho será utilizado a segmentação para localização de um caminho a ser percorrido, onde a imagem será divida em 3 partes para ser feita a análise em cada parte e escolher o melhor caminho. 22

3. DESCRIÇÃO DO PROJETO O projeto consiste em fazer o tratamento de imagens capturadas por câmeras (webcam), onde o mesmo aplicará os tratamentos necessários para que o robô possa de deslocar. O modelo computacional será criado a partir da linguagem de programação C++, um software que recebe a entrada de valores através da interação com o usuário pela interface gráfica, fará a modelagem dos dados e a execução da simulação do movimento de um robô em um determinado plano. Para a programação será utilizado o software C++ BUILDER 6. Os objetivos deste trabalho são: A implementação de um modelo computacional para processamento digital de imagens, onde o robô consiga interpretar um caminho a ser percorrida sendo como sua inspiração biológica, o olhar do ser humano. O modelo computacional será uma simulação. Após os experimentos e implementação computacional, será criado um modelo real do robô. 23

3.1 Diagrama estrutural do projeto Este diagrama representa os módulos para se processar a imagem e localizar o caminho onde se obtém o resultado final, onde os módulos são: Capturar Imagem: O usuário ou o robô utilizará uma câmera para capturar a imagem; Filtrar Imagem: Assim que capturada a imagem, aplica-se o filtro de imagem, onde será utilizado o método de Threshold que deixará a imagem em preto e branco; Identificação: O sistema irá dividir a imagem em 3 partes e contar a quantidade de pixel de cada parte para a identificação do caminho, onde ele selecionará o melhor caminho a ser percorrido pelo robô; Gerar ação: O sistema irá gerar a ação para o robô, onde ele utilizará um gerador de movimento para ajudar; Enviar comandos para o robô: Após todos os processos o sistema irá enviar os comandos para o robô, onde o mesmo irá executar. CAPTURAR IMAGEM THRESHOLD FILTRAR IMAGEM LOCALIZAR CAMINHO GERADOR DE MOVIMENTO IDENTIFICAÇÃO GERAR AÇÃO ENVIAR COMANDOS P/ ROBO FIGURA 09 Passos a serem executados pelo software 24

A imagem será capturada por uma câmera passando por um filtro utilizando os métodos (Threshold ) para fazer a identificação da imagem que irá localizar o caminho a ser percorrido pelo robô, gerando a ação que fará o robô entender qual caminho ele terá que percorrer e enviar para o robô. 3.2 Metodologia Neste tópico será abordado sobre as etapas que foram feitas para a conclusão deste trabalho. As etapas deste trabalho são: Estudo de computação gráfica; Estudo de processamento digital de imagens; Estudo de vários métodos 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 método de Threshold, que irá filtrar a imagem; Estudos da imagem filtrada, para localizar o melhor caminho a ser percorrido; Programação para a saída de dados via porta serial do computador, para que o modelo real possa receber os dados necessários para a execução dos movimentos; Analisar resultados; Conclusão. 25

3.3 Projeto O projeto consiste em criar um modelo computacional de processamento de imagens para locomoção de um robô em ambiente desconhecido, que servirá como base para implementação da programação em C++ (linguagem de programação). O modelo computacional terá uma interface para capturar (seleção) da imagem para que possam ser acionadas as ações. Através dessa interface será aplicado o tratamento da imagem, onde será aplicado o método de Threshold com um nível de 95. A imagem então 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 número 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 - Usuário Descrição - Este caso de uso começa quando o usuário captura a imagem a ser processada. 27

Use case Filtrar imagem Atores Não há atores neste processo Descrição Após a captura da imagem, o sistema irá filtrar a imagem(transformá-la em preto e branco) deixando pronta para o próximo passo. Use case Identificar caminhos Atores Não há atores neste processo Descrição 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 Não há atores neste processo Descrição Após ser feita a identificação dos caminhos, o sistema irá selecionar a parte que contiver a maior quantidade de pixels brancos, pois será a parte que contêm o melhor caminho a ser seguido. 28

Use case Gerar ação / Enviar comandos para o robô Atores Não há atores neste processo Descrição Após a identificação do melhor caminho, o sistema irá gerar a ação para o robô, para que ele possa se locomover e será enviado via porta serial. 29

3.5 Interface É uma forma de interação com o usuário, no caso homem-maquina e refere-se às informações gráficas e textuais apresentadas ao usuario, e as sequências de controle (como comandos de teclado ou movimentos do mouse) para interagir com o programa. A interface é dividida em 5 partes onde temos: Mapa panorâmico, mapa de locomoção(das fotos), botões 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, começando pelo mapa panorâmico. O mapa panorâmico mostra a região onde o robô poderá se locomover, como mostra o QUADRO 1. 30

O b sta c ulos QUADRO 1 Mapa panorâmico Em seguida temos o mapa de locomoção, onde temos todas as imagens do local onde o usuário 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 locomoção Logo após temos os botões de comando, onde você seleciona qual a operação 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 Botões de comando O botão para processar a imagem irá fazer o tratamento da imagem deixando-a em preto e branco e fazendo os cálculos necessários para a localização do melhor caminho, sendo o campo que tiver o maior valor é será o melhor caminhos a ser percorrido e esses valores serão impressos nos campos de resultados como mostra o QUADRO 4 32

QUADRO 4 - Campos de resultados QUADRO 5. Nesta parte será mostrada a imagem original e a imagem tratada, como mostra o Lo c a l d a im a g e m o rig ina 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 importância para que possa ser analisada pelo usuário. 33

3.6 Diagrama funcional Processos de execução do software desenvolvido para processamento digital de imagens: 1 Capturar a imagem para o processamento; 2 Processar a imagem para localização do caminho; 3 Selecionar o melhor caminho a ser percorrido (Caminho1 (Esquerda), Caminho2 (Frente), Caminho3 (Direita)); 4 Executar a ação para que o robô se locomova. Capturar Imagem Processar Imagem Caminho 1 Caminho 2 Caminho 3 Seleção 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 método 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 ação. 35

3.7 Simulação do processamento da imagem A simulação será feita por uma base de dados (imagens) já existente no software desenvolvido para analise, pois não temos o robô em si para fazer os testes, então será tudo uma simulação. O usuário 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 posição inicial no mapa de locomoção. Posiç ã o inic ia l d o rob ô FIGURA 13 Imagem inicial Ao clicarmos no botão Processar Imagem, o software irá fazer a aplicação do método de Threshold na imagem e após a aplicação do método o software irá fazer os cálculos para definir qual o melhor caminho a ser percorrido pelo robô, sendo que se os resultados dos campos de resultados (variáveis) 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 posição e também 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 rob ô Posiç ã o a nte rio r FIGURA 14 Após processamento Como mostra a FIGURA 14 todos os valores exibidos nos campos de valores foram iguais (1,1,1) então o sistema irá fazer com que o robô avance para frente e a nova imagem a ser processada já foi carregada para o próximo processamento. 37

No va im a g e m c a rre g a d a Nova p osiç ã o d o ro b ô Va lo re s d a s va ria ve is im p re ssos Posiç ã o a nte rio r FIGURA 15 Após processamento Na FIGURA 15 o robô se deslocou para a esquerda, pois foi onde o software encontrou o maior espaço 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 Nova p osiç ã o d o ro b ô / p osiç ã o fina l Posiç ã o a nte rior Va lo re s d a s va ria ve is im p re ssos FIGURA 16 Após processamento Já na FIGURA 16 o robô se deslocou para a direita, pois foi onde o software encontrou o maior espaço em branco na imagem, como está impresso nos campos de resultados (esquerda = 0,62, centro = 0,63, direita = 0,96). 39

4 CONCLUSÃO Para o desenvolvimento do programa responsável pelo processamento das imagens, foi necessário estudar aspectos técnicos da visão humana e computação gráfica. Com os resultados obtidos, que um modelo computacional pode simular o processamento da imagem para a navegação de um robô em um plano com êxito. Pode-se concluir que através do modelo computacional desenvolvido, é possível a criação de simulação de navegação em ambientes desconhecidos. A implementação do processamento de imagens para o robô real é um projeto futuro, onde será integrado o software desenvolvido para a simulação de processamento de imagens. 40

REFERÊNCIAS BIBLIOGRÁFICAS 1 1. ALBUQUERQUE, M. P.; ALBUQUERQUE, M. P. Processamento de Imagens: Métodos e Análises. Disponível 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. 1-16. 3. Conceitos Básicos. Disponível via URL em: <http://www.ee.furg.br/~silviacb/dip/conceitos_basicos.html >. Acessado em 25 de novembro de 2007 4. Criação de desenhos para abstrair fotografias. Disponível via URL em: <http://w3.impa.br/~lvelho/ip02/demos/sossai/apresentacao.pdf>. Acessado em 31 de outubro de 2007. 5. Extração de Características. Disponível via URL em: <http://www.tecgraf.puc-rio.br/~mgattass/ra/ppt/03caracteristicas.ppt#307,8,série de Taylor>. Acessado em 31 de outubro de 2007. 6. Facçãocientifica.org. Disponível 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, São Paulo, Editora Edgard Blucher Ltda. 8. J. Richards, "Remote Sensing Digital Image Analysis", Springer-Verlag, 1986 9. Neto, A. M. Navegação de Robôs Autônomos baseada em Monovisão. 2007. 134 f. Tese (Mestrado em Engenharia Mecânica) Universidade Estadual de Campinas, Campinas. 10. Origens da Computação Gráfica. Disponível via URL em: <http://www.inf.pucrs.br/~pinho/cg/aulas/intro/intro.htm>. Acessado em 15 de novembro de 2007. 1 De acordo com a ABNT Associação Brasileira de Normas Técnicas. 41

11. Ozawa, D. M. Processamento e Reconhecimento de Imagens Digitais da Retina Humana. 2004. 46 f. Universidade Estadual de Londrina. Disponível 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). Introdução à Computação Gráfica. Livros Técnicos e Científicos Editora Ltda. 13. Processamento de Imagens. Disponível 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. Disponível em: <http://www.tecgraf.org/~mgattass/ra/trb03/michelalain/>. Acessado em 03 de junho de 2007. 16. UFSC. Disponível em: <http://s2i.das.ufsc.br/harpia/downloads/apostila-sistemasvisao.pdf>. Acessado em 03 de junho de 2007. 17. Universidade Federal de Santa Catarina. Disponível 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"); 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"); TColor c; for( int linha=0;linha<pbitmap->height;linha++) for( int coluna=0;coluna<pbitmap->width;coluna++) //Image1- >Width;coluna++) { c = Canvas->Pixels[coluna+col0][linha+lin0]; 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) // Variáveis { 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"); TColor c; // Executa a função do botão 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 a maior quantidade de pixel branco tot1 = aux1 / cont1; tot2 = aux2 / cont2; tot3 = aux3 / cont3; // Verifica qual o melhor caminho a percorrer caminho = 2; maior = tot2; if (tot1 > maior) { maior = tot1; caminho = 1; if (tot3 > maior) { maior = tot3; caminho = 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"); TColor c; exit; if (caminho == 2) { panel = 12; Image14->Left = 264; Image14->Top = 34; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp"); 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"); 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"); TColor c; exit; if (caminho == 2) { panel = 10; Image14->Left = 264; Image14->Top = 274; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp"); 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"); TColor c; exit; if (caminho == 2) { panel = 8; Image14->Left = 144; Image14->Top = 34; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp"); TColor c; exit; if (caminho == 3) { panel = 12; Image14->Left = 164; Image14->Top = 34; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto12.bmp"); 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"); 48

TColor c; exit; if (caminho == 2) { panel = 7; Image14->Left = 144; Image14->Top = 154; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); TColor c; exit; if (caminho == 3) { panel = 11; Image14->Left = 164; Image14->Top = 154; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto11.bmp"); 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"); TColor c; exit; if (caminho == 2) { panel = 6; Image14->Left = 144; Image14->Top = 274; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp"); TColor c; exit; if (caminho == 3) { panel = 10; Image14->Left = 164; Image14->Top = 174; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto10.bmp"); 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"); TColor c; exit; if (caminho == 3) { panel = 8; Image14->Left = 144; Image14->Top = 34; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto8.bmp"); 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"); TColor c; exit; if (caminho == 3) { panel = 7; Image14->Left = 144; Image14->Top = 154; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); 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"); TColor c; exit; if (caminho == 3) { panel = 6; Image14->Left = 144; Image14->Top = 274; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto6.bmp"); 50

TColor c; exit; if (panel == 15) { Image14->Left = 144; Image14->Top = 154; pbitmap- >LoadFromFile("D:\\Faculdade\\TCC\\CIMAGEM001\\foto7.bmp"); 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"); 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; 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"); 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; Image14->Left = 144; Image14->Top = 394; 51

//--------------------------------------------------------------------- // 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"); 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; 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