CENTRO UNIVERSITÁRIO DA FEI THIAGO MIZUTANI FABRÍCIO LOPES DE SOUZA MAURÍCIO KENITI HIROTA IVAN SHIGUENORI MACHIDA

Tamanho: px
Começar a partir da página:

Download "CENTRO UNIVERSITÁRIO DA FEI THIAGO MIZUTANI FABRÍCIO LOPES DE SOUZA MAURÍCIO KENITI HIROTA IVAN SHIGUENORI MACHIDA"

Transcrição

1 CENTRO UNIVERSITÁRIO DA FEI THIAGO MIZUTANI FABRÍCIO LOPES DE SOUZA MAURÍCIO KENITI HIROTA IVAN SHIGUENORI MACHIDA M-FIT: EDITORAÇÃO ELETRÔNICA DE VÍDEOS COM DETECÇÃO DE TRANSIÇÕES Orientador: Paulo Sérgio Silva Rodrigues

2 THIAGO MIZUTANI FABRÍCIO LOPES DE SOUZA MAURÍCIO KENITI HIROTA IVAN SHIGUENORI MACHIDA M-FIT: EDITORAÇÃO ELETRÔNICA DE VÍDEOS COM DETECÇÃO DE TRANSIÇÕES Trabalho de Conclusão de Curso, apresentado no Centro Universitário da FEI, como parte dos requisitos necessários para obtenção do título de Bacharel em Ciências da Computação, orientado pelo Prof. D.Sc. Paulo Sérgio Silva Rodrigues. São Bernardo do Campo 2008

3 THIAGO MIZUTANI FABRÍCIO LOPES DE SOUZA MAURÍCIO KENITI HIROTA IVAN SHIGUENORI MACHIDA M-FIT: Editoração Eletrônica de Vídeos com Detecção de Transições Trabalho de Conclusão de Curso - Centro Universitário da FEI Comissão Julgadora: Prof. Dr. Sc. Paulo Sérgio Silva Rodrigues Orientador e Presidente Examinador (1) Examinador (2) São Bernardo do Campo 2008

4 RESUMO Na área de Editoração de Vídeos, uma das atividades mais demandadas é a detecção de transição de tomadas, que é basicamente a concatenação do final de uma tomada com o início de outra. Essa tarefa tem várias utilidades em diversas aplicações, como indexação, recuperação, análise e edição de vídeos. Estas transições podem ocorrer de diversas formas, tais como: cortes, fades ou dissolve. Este trabalho apresenta o M-FIT, um framework que possibilitará o reconhecimento automático das transições de tomadas de cenas a partir de uma determinada amostragem de imagens (frames de um vídeo) através do uso de técnicas de Ritmo Visual e Segmentação de Imagens. O M-FIT permite ao usuário aplicar efeitos básicos de edição de imagens no vídeo, de forma rápida e simples. Sua interface é baseada em QT, o que torna o M-FIT um sistema com uma interface simples e de fácil entendimento. ii

5 ABSTRACT In the field of Video Editing, the main goal is detecting take transitions, which is basically the connection of the end of one take to the begining of the next. This work have much utilities in many applications, such as indexing, recovering, analysing and video editing. These transitions can occur in several ways, such as: cuts, fades, and dissolve. This work presents the M-FIT, a framework that will let the automatic detection of take transitions from a sample of images (frames of a video) using techniques based on Visual Rhythm and image segmentation. The M-FIT allows the user to apply basic effects in the video, so quick and simple. Your interface is made with QT, making M-FIT a system with a simple interface and easy for all users. iii

6 Sumário 1 INTRODUÇÃO Objetivo Contribuições do Trabalho Estrutura da Monografia TRABALHOS RELACIONADOS Detecção de Transições Técnicas de PDI REVISÃO BIBLIOGRÁFICA Vídeo Edição de Vídeo Fade-in Fade-out Corte Dissolve Sistemas de Vídeo Sistemas de Cor RGB HSV CMYK Detecção de Transições Ritmo Visual Ritmo Visual por sub-amostragem Ritmo Visual por Histograma Processamento de Baixo Nível Filtragem Espacial Detecção de Bordas Processamento de Médio Nível Morfologia Matemática Segmentação de Imagens Processamento de Alto Nível Método Baseado em Entropia METODOLOGIA Cortes Fade Dissolve iv

7 SUMÁRIO v 5 ESPECIFICAÇÃO DE REQUISITOS Requisitos de Negócio Automatização do processo de detecção de transições Requisitos de Usuário Aplicação de efeitos Agrupamento de efeitos possíveis Carregamento do vídeo Controladores de reprodução de vídeo Drag and Drop Enumeração de transições Intervenção manual Lista de transições Preview de frames Seleção de transições Timeline Requisitos de Sistema Arquivo de controle do projeto Classificação das transições Detecção de transições Compatibilidade de Sistema Operacional Limiar Localização de arquivo Montagem do mapa de bordas Montagem do Ritmo Visual OpenCV QT Tipos de arquivo MODELAGEM DO SISTEMA Casos de Uso Cenário Principal Cenário Edição Cenário Detecção de Transição Cenário Detecção de Cortes Cenário Detecção de Fades Cenário Detecção de Dissolve Diagrama de Classes Classe: Color Classe: Cut Classe: DetectConfig Classe: DetectTransitions Classe: Dilate Classe: Dissolve Classe: DTWindow Classe: Effect Classe: Erode Classe: Fade Classe: Filters

8 SUMÁRIO vi Classe: Frame Classe: Histogram Classe: Interface Classe: Log Classe: Morphology Classe: Project Classe: QTreeWidgetEffect Classe: QWidgetTimeline Classe: Render Classe: RenderThread Classe: Transition Classe: TransitionEdit Classe: Video Classe: VideoPlayer Classe: VisualRythim Classe: Xml Diagramas de Sequência Carregamento do vídeo Detecção de transições geral Detecção de Cortes Detecção de Fades Detecção de dissolve Edição de vídeo Diagrama de Estados Estado: Busca Vídeo Estado: Carrega Vídeo Estado: Detecção de Transições Estado: Atualizando Timeline Estado: Ajuste manual Estado: Repouso Estado: Em edição Estado: Renderizando Vídeo RESULTADOS ESPERADOS 98 8 RESULTADOS OBTIDOS Resultados obtidos: Interface Resultados obtidos: Detecção Resultados obtidos: Detecção - Cortes Resultados obtidos: Detecção - Fade Resultados obtidos: Detecção - Dissolve CONCLUSÃO 127

9 Lista de Figuras 3.1 Definição de um Vídeo Exemplo de fade-in em uma sequência de frames. Fi representa o i-ésimo frame Exemplo de Fade-out em uma seqüência de frames. Fi representa o i-ésimo frame Exemplo de corte em uma seqüência de frames. Fi representa o i-ésimo frame Exemplo de Dissolve em seqüência de frames. Fi representa o i-ésimo frame Sistema de Codificação e Decodificação de um vídeo no formato MPEG Sistema de armazenamento AVI Sistema RGB Representação do sistema HSV: a) A mistura de cores representada por um círculo; b) Modelo de representação do padrão HSV; Misturas de cores no padrão CMYK Transições Detectadas (imagem ilustrativa) Transformação da diagonal principal dos frames de um vídeo em colunas do Ritmo Visual Representações de Ritmo Visual: a) cortes; b) fade-out seguido de fade-in; c) duas transições consecutivas do tipo dissolve Representações de Ritmo Visual Por Histograma Exemplos de Máscaras para filtro passa-alta Máscara 3x3 sendo utilizada para a filtragem de uma imagem digital. No caso, o ND a ser recalculado é do pixel X a) Imagem Original; b) Passa-baixa; c) Passa-alta a) Imagem Original; b) Sobel Horizontal; c) Sobel Vertical; d) Sobel Completo Mapa de bordas gerado com operador de Canny Elemento estruturante: a) Cruz; b) Quadrado; c) Hexágono a) Imagem Original; b) Imagem Erodida a) Imagem Original; b) Imagem Dilatada Exemplo de limiar com histograma a) Figura original; b) Limiar 150; c) Limiar 100; d) Limiar Diagrama esquemático da metodologia proposta Metodologia utilizada para a detecção de Cortes Metodologia utilizada para a detecção de Fade RVH de uma sequência que contém uma transição do tipo fade-in vii

10 LISTA DE FIGURAS viii 4.5 Trecho do RVH derivado de uma sequência que contém uma transição do tipo fade-in, seguida de um fade-out. Eixo X representa os frames do vídeo, eixo Y representa a derivada da luminância do frame Metodologia utilizada para a detecção de dissolve Caso de Uso para cenário principal do sistema Caso de Uso para cenário de edição de vídeo Caso de Uso para cenário geral de detecção de transições Transições Detectadas Caso de Uso para cenário de detecção de cortes Caso de Uso para cenário de detecção dos fades Caso de Uso para cenário de detecção do dissolve Diagrama de classes do sistema Diagrama de sequência para carregamento do vídeo Diagrama de sequência para detecção de transições Diagrama de sequência para detecção de cortes Diagrama de sequência para detecção de fades (fade-in e fade-out) Diagrama de sequência para detecção de dissolve Diagrama de sequência para edição de vídeo Diagrama de estados do sistema Interface de abertura de um novo Vídeo Area de trabalho sem ter as transições detectadas Area de trabalho com as transições detectadas Tela inicial do sistema Tela do sistema após carregamento de um vídeo Tela do sistema detectando transições Tela do sistema após processo de detecção de transições Tela do sistema rendeziando o vídeo Tela do sistema antes (a) e depois (b) da aplicação de um efeito Ritmo Visual do vídeo Batman.avi Ritmo Visual filtrado com o operador de Canny utilizando limiares T min = 100 e T max = Ritmo Visual filtrado com o operador de Canny utilizando limiares T min = 20 e T max = Trecho do Ritmo Visual do vídeo Batman.avi Trecho do Ritmo Visual Derivado do vídeo Batman.avi

11 Lista de Tabelas 3.1 Tabela do comprimento de onda de um espectro de luz Tabela com algumas das muitas combinações de cores possíveis com o sistema RGB Seleção de nível de cores (Matriz) Transições do tipo Corte encontradas pelo sistema no vídeo Batman.avi Transições do tipo Corte encontradas pelo sistema no vídeo IronMan.avi Transições do tipo Corte encontradas pelo sistema no vídeo Teste.avi Transições do tipo Fade encontradas pelo sistema no vídeo Teste.avi Transições do tipo Fade encontradas pelo sistema no vídeo Ironman.avi Transições do tipo Fade não encontradas pelo sistema no vídeo Ironman.avi Transições do tipo Fade encontradas pelo sistema no vídeo Batman.avi Transições do tipo fade que não encontradas pelo sistema no vídeo Batman.avi Transições do tipo Dissolve encontradas pelo sistema no vídeo Batman.avi Transições do tipo dissolve encontradas pelo sistema no vídeo Ironman.avi Transições do tipo Dissolve encontradas pelo sistema no vídeo Batman.avi. 126 ix

12 Capítulo 1 INTRODUÇÃO O setor de entretenimento está sempre em constantes mudanças e experimentando inovações. Isto se deve ao fato dele estar diretamente ligado a outros setores dinâmicos, como o setor de marketing e cinema. Devido a isto, o número de novos vídeos cresce rapidamente. Entre uma das tarefas mais demandadas da indústria de produção de vídeos está a edição, que consiste na transformação de um vídeo através da aplicação de filtros ou efeitos como, por exemplo, ajustes de cor, brilho, contraste e remoção de objetos. Sendo assim, aliada à sua grande demanda, a área de editoração eletrônica de vídeo é uma das mais rentáveis e que mais vem crescendo nas últimas décadas. Um vídeo é normalmente formado por um conjunto de sub-vídeos, chamados tomadas. Em uma pré-edição, estas tomadas são agrupadas formando o vídeo completo. Todas estas tomadas são interligadas através de efeitos chamados transições, as quais podem ser de vários tipos, desde um simples corte, até uma transição mais complexa como fade ou dissolve. Tais transições são inseridas no vídeo com o objetivo de caracterizar o ponto de término de uma tomada e o início de uma outra seguinte, além de suavizar este processo. Por este fato, a edição de vídeos torna-se uma atividade trabalhosa, visto que, para a aplicação de um efeito qualquer em uma determinada tomada, o editor deverá definir qual o início e fim desta tomada manualmente. Além disso, um vídeo pode ser armazenado ou classificado baseando-se em suas tomadas individuais. Sendo assim, a detecção e localização de transição é uma das tarefas mais importantes no processo de indexação e edição de vídeo digital. No entanto, este processo é trabalhoso e demorado, tornando necessária cada vez mais a produção de sistemas automáticos para detecção de transições. 1

13 CAPÍTULO 1. INTRODUÇÃO Objetivo de vídeo. Desenvolver um sistema automático de detecção de transição de tomadas e edição 1.2 Contribuições do Trabalho O presente trabalho de conclusão de curso apresenta as seguintes contribuições: Estudo e implementação de métodos para detecção de transições de vídeos. Um modelo UML que serve como base para um sistema de editoração eletrônica de vídeos baseado nas transições encontradas. Uma framework, que utiliza como interface gráfica o QT, que permite uma manipulação rápida e simples de efeitos em tomadas de um vídeo 1.3 Estrutura da Monografia O restante do trabalho está dividido da seguinte maneira: O Capítulo 2 apresenta alguns trabalhos publicados na literatura científica relacionados ao assunto desta monografia; No Capítulo 3 são apresentados os conceitos básicos necessários para entendê-la; No Capítulo 4 é apresentada a metodologia proposta; Os Capítulos 5 e 6 apresentam a especificação de requisitos e a modelagem do sistema M-FIT. No Capítulo 7 é mostrada uma prévia de como será a interface do sistema. No Capítulo 8 são mostrados os resultados obtidos deste trabalho, tanto a interface gerada como a análise dos resultados dos processos de detecção de transições. No Capítulo 9 é mostrada a Conclusão do trabalho.

14 Capítulo 2 TRABALHOS RELACIONADOS 2.1 Detecção de Transições Uma das técnicas mais comuns e importantes na área de editoração de vídeos é a detecção de transições. [GUIMARAES et al., 2003] propuseram um método para fazer a detecção de transições em um vídeo, aplicando o operador gradiente multi-escalar morfológico em cima de uma determinada amostragem do vídeo. Através deste método, puderam obter bons resultados em relação à detecção de transições graduais, porém, o método não foca na dimensão da transição. [GUIMARAES et al., 2004] propuseram um método para detectar transições graduais (fade,dissolve) utilizando ritmo visual e morfologia matemática. O foco principal é usar operadores de morfologia matemática, no caso, o operador gradiente multi-escalar morfológico, para aumentar os vestígios de transições na imagem do ritmo visual, não alterando os já explícitos. Com a aplicação deste método obtiveram uma taxa de acerto de 93.5% e um custo computacional mais baixo do que em outros experimentos. O método em si não garante uma eficácia quanto a outros tipos de transições. Com o objetivo de realizar a identificação e classificação de transições graduais entre duas zonas planas consecutivas (conjunto de pontos consecutivos com os mesmos tons de cinza), [GUIMARAES et al., 2004] aplicaram um método baseado na decomposição hierárquica dos componentes da imagem em resíduos morfológicos. Com o uso deste método, é possível retirar as informações necessárias sobre a transição e ainda fazer a reconstrução exata da imagem a partir dos seus resíduos. Desta forma, conseguiram fazer 3

15 CAPÍTULO 2. TRABALHOS RELACIONADOS 4 a detecção e identificação das transições facilmente. Apesar de o método funcionar bem em relação às transições graduais, o trabalho não faz referência às transições bruscas. [GUIMARAES et al., 2001a] desenvolveram um método para a detecção de cortes de vídeos digitais, a partir da aplicação de ritmo visual. Com este método, conseguiram obter com sucesso as transições de corte de um vídeo. A partir deste estudo, é possível desenvolver métodos para detecções de outros tipos de transições. [SIMOES, 2004] apresentou um método para detecção de transições abruptas (cortes) em vídeos, baseado em algoritmos de identificação de padrão em sinais 1D. O método proposto possibilitou a detecção de transições abruptas, ficando aberto a novas propostas para a detecção de outros tipos de transição. [NGO et al., 1999] com a intenção de fazer a detecção de transições do tipo corte e dissolve, propuseram um método baseado em Ritmo Visual, com o qual foi possível fazer a detecção e classificação das transições de uma maneira eficiente. Ressalta-se ainda que, futuramente, pretende-se fazer uma análise de tomadas de vídeos para fazer indexação de vídeos e recuperação de dados. [GUIMARAES et al., 2004] propuseram um método que faz uso de Ritmo Visual (transformação dos eventos do vídeo em padrões de imagens 2D), juntamente com a aplicação de operadores de Morfologia Matemática e Topologia Digital para fazer a detecção e identificação dos eventos de transição de um vídeo, com isso, puderam fazer a detecção de fades curtos com uma baixa taxa de erros, sendo possível ainda desenvolver uma extensão do método para detecção de outros tipos de transições, assim como fazer a aplicação do método diretamente nos dados do vídeo. [LEFÈVRE et al., 2003], apresentaram uma gama de algoritmos referentes a identificação de transições em vídeos sem compressão utilizando métodos baseados em pixel, histograma, bloco, características, movimento, entre outros. O objetivo era analisar o custo computacional de cada algoritmo e compará-los. Concluiu-se que os algoritmos de baixa complexidade geralmente possuem um baixo custo computacional, porém, dispõem de uma qualidade menor nas detecções. Em contrapartida, algoritmos que utilizam lógicas mais complexas, como a análise de movimento e característica, ou um método que use vários algoritmos, conseguem obter um resultado final com boa qualidade em termos de detecção de transição. Porém, possuem um custo computacional mais alto. [GUIMARAES et al., 2001b] propuseram um método que transforma o problema

16 CAPÍTULO 2. TRABALHOS RELACIONADOS 5 de segmentação de vídeo em um problema de detecção de padrões, onde cada efeito de vídeo é transformado em diferentes padrões de ritmo visual. Obtiveram bons resultados em comparação à outros métodos em relação a robustez, falhas e medidas de gama, porém foram piores que outros métodos em relação a quantidade de detecções quando não há nenhuma falsa-detecção (falseless error). [GUIMARAES et al., 2002b] propuseram um método para detecção de transições parametrizadas e direcionais, baseado em resíduos morfológicos considerando elementos linearmente estruturados. Com o método proposto, puderam identificar facilmente as transições, fato que não é possível, por exemplo, com o método que utiliza o gradiente Soille [GUIMARAES et al., 2002a]. Com o objetivo de identificar o limite entre tomadas consecutivas de um determinado segmento de vídeo, [GUIMARAES et al., 2002c] utilizaram um método baseado no ritmo visual e Morfologia matemática, onde cada evento de vídeo é representado por um padrão em uma imagem 2D. Através da aplicação destes métodos, puderam identificar facilmente as transições de um segmento de vídeo, porém foram somente aplicadas aos efeitos de transições fades, cortes e dissolve. Com o objetivo de identificar cortes de uma cena utilizando um único algoritmo, [FANG et al., 2006] propuseram a aproximação de lógica Fuzzy para integrar funcionalidades híbridas para a detecção de cortes de uma cena dentro de um vídeo aleatório. A aproximação da lógica Fuzzy contém dois modos de processamento, onde um é dedicado à detecção de cortes bruscos de cenas e também transições do tipo dissolve, e o outro para transições graduais. Estes dois modos são unificados por um seletor de modos que decide qual modo o esquema deve trabalhar para atingir o melhor desempenho de detecção. Com o objetivo de detectar cortes de cenas e otimizar o custo de tempo humano, [YU and SRINATH, 2001] utilizaram a diferença de métrica baseado no histograma de cores de sucessivos frames de uma seqüência de vídeo utilizando a entropia de um limiar, onde o limiar é a base da diferença dos histogramas de tons de cinza de um determinado frame. Por outro lado, para confirmar os resultados, são necessárias interações humanas e um procedimento de eliminação de falsa detecção futuramente será desenvolvido para melhorar a precisão.

17 CAPÍTULO 2. TRABALHOS RELACIONADOS Técnicas de PDI Para realizar a detecção de transições ou qualquer tipo de editoração de vídeos, são necessárias técnicas de PDI como Morfologia Matemática, Filtragem Espacial, Detecção de Bordas, entre outras. Com o objetivo de segmentar imagens, [BERTRAND et al., 1997] utilizaram transformações de níveis e homotópicas (estudos dos pontos de cruzamento da topologia e reconstrução da transformação). Utilizando estas técnicas, conseguiram segmentar imagens em tons de cinza, sendo que estas não se aplicam a imagens RGB. Com o objetivo de analisar a morfologia de imagens 3D, [MICHIELSEN et al., 2001] utilizaram o corte dos lados de um cubo 3D e aplicaram a morfologia matemática e a tripla periódica mínima que verifica a continuidade de uma superfície. Com estas técnicas, conseguiram caracterizar a morfologia de uma imagem 3D em tons de cinza, sendo que não se aplicam a imagens em RGB.

18 Capítulo 3 REVISÃO BIBLIOGRÁFICA Neste Capítulo, serão definidos os principais conceitos para o entendimento de todo o projeto e a metodologia do sistema proposto. 3.1 Vídeo Um vídeo é uma sequência de várias imagens (as quais são chamadas de frames) que são apresentadas de forma sequencial. Estes vídeos comumente são agrupados com outros vídeos, assim sendo chamados de tomadas. Essas tomadas quanto agrupadas, formam uma cena. Por fim, estas cenas formam um vídeo completo, como pode ser visto na figura Edição de Vídeo A edição de vídeos consiste em um conjunto de operações que modificam o conteúdo original de um vídeo. Tais operações podem consistir desde a segmentação do vídeo para futuras modificações de indexação ou armazenamento, até a aplicação de efeitos visuais, como por exemplo, uma mudança de cores, o nivelamento da luminosidade entre frames de uma tomada, eliminação de ruídos, equalização de som com imagem, entre outros, os quais são intensamente utilizados no setor cinematográfico, de pesquisa e entretenimento. É comum organizar a edição de vídeos através de tomadas, as quais são interligadas por transições. Portanto, é importante que seja feita a detecção destas transições antes 7

19 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 8 Figura 3.1: Definição de um Vídeo Fonte: Autor adaptado de [PARMANI, 2006]. da edição do vídeo para que um determinado efeito aplicado, ou qualquer outra operação de edição, possa ser delimitado a tomadas específicas e não para o vídeo todo. Existem diversos tipos de transições. Dentre elas, as principais são o fade-in, fadeout, dissolve e corte. A seguir, descrevemos cada uma delas e mais tarde, apresentaremos técnicas para sua detecção Fade-in O fade-in é uma transição gradativa entre um frame escuro e o primeiro frame mais claro de uma determinada tomada. Este tipo de transição geralmente é utilizado no início do vídeo ou no início de um bloco de tomadas. Pode-se visualizar a ocorrência de um Fade-in na Figura 3.2, aproximadamente entre os frames F 3 e F 4. Uma boa abordagem sobre o fade-in pode ser encontrada em [GUIMARAES et al., 2004]

20 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 9 Figura 3.2: Exemplo de fade-in em uma sequência de frames. Fi representa o i-ésimo frame. Fonte: Autor adaptado de [GUIMARAES et al., 2002c], p Fade-out O fade-out é como o fade-in, porém possui um efeito contrário, onde a transição ocorre da parte mais clara de um determinado frame até que este frame torne-se completamente preto. F 5 e F 6. Um exemplo desta transição pode ser observado na Figura 3.3, em torno dos frames Figura 3.3: Exemplo de Fade-out em uma seqüência de frames. Fi representa o i-ésimo frame. Fonte: [GUIMARAES et al., 2002c], p.3. Pode-se encontrar mais sobre fade-out em [GUIMARAES et al., 2004] Corte Cortes são transições bruscas e secas entre tomadas, onde o último frame de uma determinada tomada é concatenado ao primeiro frame da tomada seguinte diretamente. Este tipo de transição é utilizada quando é necessária uma mudança rápida de tomada. Nota-se claramente que no exemplo da Figura 3.4, a transição ocorre entre o frame F 3 e o frame F 4. Uma boa referência para as transições do tipo corte pode ser vista em [YU and SRINATH, 2001].

21 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 10 Figura 3.4: Exemplo de corte em uma seqüência de frames. Fi representa o i-ésimo frame. Fonte: [GUIMARAES et al., 2002c], p Dissolve O dissolve é uma transição onde a primeira tomada dá lugar a uma segunda tomada gradualmente, havendo uma sobreposição dos primeiros frames da próxima tomada sobre os últimos da tomada anterior. Geralmente, este tipo de transição é usado na mudança de paisagens. Podemos visualizar este efeito na Figura 3.5, ocorrendo aproximadamente do frame F 2 ao frame F 5. Figura 3.5: Exemplo de Dissolve em seqüência de frames. Fi representa o i-ésimo frame. Fonte: [GUIMARAES et al., 2002c], p.3. Pode-se observar na Figura 3.5 a primeira tomada(f1) dando lugar gradativamente para a segunda tomada até que não haja mais sobreposição de imagens(f6). Uma boa abordagem sobre a definição do dissolve pode ser encontrada em [FERNANDO et al., 1999].

22 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Sistemas de Vídeo Os sistemas de vídeo consistem na organização em que uma determinada informação de vídeo é armazenada em forma digital, tais como AVI (Audio Video Interleave), MPEG (Movie Pictures Experts Group, entre outros. O MPEG é um padrão internacional definido pela ISO (International Organization for Standardization) que tem como característica a compressão de um vídeo, onde, ao comprimir uma determinada amostragem de um vídeo, o mesmo é passado pelo canal compressor e, ao exibir esta mesma amostragem, o vídeo passa pelo canal expansor (Figura 3.6). Figura 3.6: Sistema de Codificação e Decodificação de um vídeo no formato MPEG. Fonte: Autor. Por outro lado, o AVI é um padrão criado pela Microsoft em 1992, formato derivado do padrão RIFF (Resource Interchange File Format), o qual divide os dados em blocos. Ao contrário dos outros padrões, o AVI não possui compressão, resultando em arquivos com tamanhos grandes, porém, sem perda de qualidade. Na Figura 3.7 observa-se que, da direita para a esquerda, a estrutura de dados de um arquivo AVI é formada primeiramente pelo cabeçalho RIFF, onde seus respectivos componentes são: tamanho do arquivo total, bloco de dados ou lista de bloco de dados. Quando o bloco de dados é definido em sub-blocos, cada parte é identificado pelo ID e em seguida o tamanho do sub-bloco correspondente. Neste trabalho, serão usados somente videos AVI, por serem os mais populares e fáceis de encontrar exemplos para testes do M-FIT.

23 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 12 Figura 3.7: Sistema de armazenamento AVI. Fonte: Autor adaptado de [Subcommittee, 1997], p Sistemas de Cor O sistema de cor consiste nos padrões que definem as propriedades de uma determinada cor. Por exemplo, o branco é composto por todas as outras cores, onde um espectro de luz visível pode então assumir diversas cores (desde o violeta até o vermelho) em função do comprimento de onda observada na Tabela 3.1. Como visto em [GATTASS, 2006], existem três características básicas de um espectro de luz são, a matriz (definida pelo comprimento da onda), brilho (intensidade da luz fonte) e saturação (predominância do branco matriz). Existem dois processos de formação de cores ([GATTASS, 2006]): aditivo e subtrativo. A formação do sistema de cores no processo aditivo é obtida a partir de duas fontes luminosas, onde, cores diferentes são projetadas em duas regiões; sendo assim, na intersecção entre as cores há a formação de uma nova cor. Por outro lado o processo subtrativo é geralmente feito com a utilização de slides. Um exemplo tem-se quando emite-se uma luz branca (que possui todos os comprimentos de onda) sobre um filtro verde, o qual filtra todos os comprimentos de onda deixando passar somente o comprimento de onda relativa à cor verde (absorção da cor), produzindo assim o verde. Dentro do sistema de

24 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 13 cores, os padrões mais conhecidos são: RGB, CMYK, HSV, RYB, Highcolor, Imagem binária, SRGB, Munsell, entre outros. Tabela 3.1: Tabela do comprimento de onda de um espectro de luz. Cor Violeta Azul Verde Amarelo Vermelho Comprimento da Onda mm mm mm mm mm RGB Figura 3.8: Sistema RGB. Fonte: [GATTASS, 2006], p.13. Formado pelas cores vermelha, verde e azul, o RGB é um padrão de cores utilizado em monitores/televisores, em tubos de raios catódicos, cristal liquido ou de plasma. Utiliza 8 bits de informação para representar cada canal de cor (vermelho, verde, azul), podendo variar de 0 a 255 para cada canal. É possível alcançar mais de 16 milhões de cores com suas combinações de tons. Algumas destas cores estão representadas na Tabela 3.2:

25 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 14 Tabela 3.2: Tabela com algumas das muitas combinações de cores possíveis com o sistema RGB. Cor R G B Preto Vermelho Verde Azul Branco Ciano Cinza Magenta Amarelo Na Figura 3.8 é possível observar o seu modelo mapeado em um cubo HSV Figura 3.9: Representação do sistema HSV: a) A mistura de cores representada por um círculo; b) Modelo de representação do padrão HSV; Fonte: Autor adaptado de [TUTIDA, 1998]. O HSV (Hue, Saturation, e Value), também conhecido como HSB (Hue, Saturation e Brightness), é o sistema de cores mais próximo à percepção da visão humana, por esse motivo, apresenta maiores vantagens em relação aos demais sistemas, em aplicações de visão computacional. Sua representação é dada por um cone (Figura a). A vantagem deste modelo é a capacidade de representar as cores do espaço HSV em um único objeto. Devido à natureza bidimensional das interfaces de computador, o modelo cônico HSV é mais

26 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 15 adequada para selecionar as cores para computação gráfica. Tabela 3.3: Seleção de nível de cores (Matriz). Ângulo Cor 0-60 Vermelho Amarelo Verde Ciano Azul Magenta Este sistema é composto por 3 canais: Tonalidade (ou Matriz), Saturação e Valor, onde a tonalidade é a cor definida pela faixa de valores de 0 a 360 graus (Tabela 3.3) e tem sua representação dada por um círculo que corta o cone transversalmente. A saturação varia pelo percentual da presença de tons de branco de 0 a 100%. O valor é definido pelo brilho composto variando de 0 a 100% (Figura b). Nessa representação, o eixo central do cone, que varia de 0 (base) a 1 (upse), representa os tons de cinza (sem cores), onde 0 é preto e 1 é branco CMYK Figura 3.10: Misturas de cores no padrão CMYK. Fonte: Autor. O CMYK (Cyan, Magenta, Yellow e Black), também conhecido como modelo de cores baseado na subtração (absorção de luz), é formado pelas cores Ciano, Magenta, Amarelo e Preto, utilizado com maior freqüência para impressões gráficas. A Figura 3.10 representa as misturas de cores de um sistema CMYK.

27 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 16 Neste trabalho, usaremos predominantemente os modelos RGB e HSV, por serem os mais populares e com maior número de estudos sobre eles.

28 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Detecção de Transições A detecção de transições de um vídeo, tema central desta monografia, como já mencionado na Seção 3.2, é o passo principal para o início da manipulação de qualquer amostra de vídeos, pois evidenciam marcos de início e fim de cada tomada do vídeo. Para cada tipo de transição existem métodos de maior ou menor eficiência. Dentre os métodos de detecção de transições de vídeo, a aplicação do Ritmo Visual (visto na Seção seguinte) e Morfologia Matemática são as mais utilizadas. Com a aplicação da morfologia matemática nas amostras de vídeo, é possível por exemplo, decompor as imagens em resíduos morfológicos e assim, retirar informações sobre as transições existentes. Com a aplicação deste método, bons resultados podem ser obtidos em relação a transições graduais, porém, o mesmo não ocorre em transições bruscas. Aplicando Ritmo Visual e Segmentação de Imagens, é possível representar um determinado evento de vídeo por um padrão de imagem 2D. Este método permite detectar transições como fades, cortes e dissolves. Como exemplo, na Figura 3.11, um vídeo representado na forma de timeline, onde as suas transições foram detectadas, delimitadas e nomeadas. Figura 3.11: Transições Detectadas (imagem ilustrativa). Fonte: Autor. Este trabalho tem como resultado esperado um produto final com funcionalidade próxima à Figura 3.11.

29 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Ritmo Visual Ritmo Visual é definido como a representação de um segmento de imagens 2D + t (um vídeo) em uma única imagem na dimensão 2D, sendo portanto uma tentativa de tornar o trabalho de análise de vídeo mais simplificado. Existem dois tipos de representações do ritmo visual. Ritmo Visual por histograma e por sub-amostragem. A seguir, ambos são apresentados mais detalhadamente Ritmo Visual por sub-amostragem O Ritmo Visual por sub-amostragem caracteriza-se pela transformação de determinadas faixas de pixels (amostras) de cada um dos frames de um vídeo em uma coluna da representação 2D, como representado na Figura Desta forma, pode-se dizer que o Ritmo Visual é uma simplificação do vídeo. O padrão desta representação pode ser alterado conforme a escolha dos pixels, portanto, o padrão do ritmo visual é totalmente dependente do tipo da amostragem retirada do vídeo. Bons resultados podem ser obtidos se a sub-amostragem do frame for dada pela sua diagonal principal, uma vez que ela trará características horizontais e verticais do frame, podendo assim fazer uma boa representação do mesmo. Uma melhor abordagem sobre este processo pode ser encontrada em [GUIMARAES et al., 2003] e [GUIMARAES et al., 2001a]. Figura 3.12: Transformação da diagonal principal dos frames de um vídeo em colunas do Ritmo Visual. Fonte: Autor adaptado de [GUIMARAES et al., 2002c], p.2. Na Figura 3.12 pode ser observado o processo de transformação das diagonais principais dos frames 1, 2, 3, 4 e 5 nas colunas 1, 2, 3, 4, e 5 do Ritmo Visual.

30 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 19 Formalmente, pode-se definir Ritmo Visual (RV) da seguinte maneira ([GUIMARAES et al., 20 Seja = I 1, I 2,..., I n um vídeo e I i (x, y) um frame V. Um pixel qualquer de um frame é definido como p(x, y) com x, y N, sendo que os valores de x e y variam de 0 até o valor de largura e altura do frame, respectivamente. Em uma imagem em tons de cinza, cada pixel possui um valor de luminância L 0, 1,..., 255. Sendo assim, se L(x, y) = 0, o pixel é definido como preto e caso L(x, y) = 255, o pixel é definido como branco. Por outro lado, em uma imagem RGB (Seção 3.4.1), L(x, y) é definido pelo conjunto do tom das 3 cores (vermelho, verde e azul) deste sistema de cores. Para cada cor existe um l(x, y) 0,..., 255, cuja combinação resulta em uma cor com uma determinada tonalidade do pixel P (x, y). Sendo assim, em um sistema RGB, define-se que L(x, y) = [l(x, y), l(x, y), l(x, y)]. Neste trabalho, as imagens serão todas tratadas em tons de cinza. Portanto, Ritmo Visual é definido como: Seja D i uma diagonal do frame I i. A sequência de todas as diagonais D i, chama-se Ritmo Visual do vídeo. Na Figura 3.13 podem ser observados três exemplos de Ritmo Visual. Cada tipo de transição gera uma coluna com características, padrões diferentes no ritmo visual. (a) (b) (c) Figura 3.13: Representações de Ritmo Visual: a) cortes; b) fade-out seguido de fade-in; c) duas transições consecutivas do tipo dissolve. Fonte: [GUIMARAES et al., 2002c], p.4. Como visto na Figura a, os cortes são caracterizados no Ritmo Visual por linhas verticais. Porém, pela possível existência de ruídos na imagem gerada, nem todas as linhas verticais devem ser consideradas necessariamente um corte. Para resolver este problema, algumas técnicas de filtragem espacial podem ser aplicadas, diminuindo a intensidade dos ruídos.

31 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Ritmo Visual por Histograma Como o Ritmo Visual por sub-amostragem, o Ritmo Visual por Histograma (RVH) tem como objetivo simplificar a representação de um vídeo. O processo de criação de um RVH é : 1. Captura da diagonal principal do frame. 2. Calculo do histograma desta diagonal. 3. Obtenção do valor médio da luminância deste histograma. 4. Os passos 1, 2 e 3 são repetidos para todos os frames, e os pontos obtidos com o passo 3, são agrupados. Figura 3.14: Representações de Ritmo Visual Por Histograma Fonte: Autor. A Figura 3.14 representa os passos para a criação do RVH. O passo 3 é representado pela reta horizontal vermelha no histograma da diagonal. Matematicamente: Seja Hi o histograma da diagonal Di do frame Ii, a função med(hi) o valor médio das luminâncias presentes no frame (i.e., a média do histograma). A sequência de todos os med(hi) agrupados é chamado de RVH.

32 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 21 Neste trabalho, as técnicas de Ritmo Visual serão utilizadas para transformar o nosso problema de segmentação de vídeos em um problema de segmentação de imagens. 3.7 Processamento de Baixo Nível Filtragem Espacial Filtragem Espacial é uma técnica utilizada na área de processamento de imagens para realizar a suavização ou realce de detalhes da imagem, ou até mesmo a eliminação de elementos indesejáveis dessas imagens, como por exemplo, os ruídos. Como visto em [FELGUEIRAS, 2006] para a aplicação de um filtro, utiliza-se o conceito de operadores de vizinhança, que consiste em alterar o Nível Digital (N D), o qual pode ser o nível de tons de cinza, ou cor, de um pixel através do ND de seus pixels vizinhos. Dependendo do filtro a ser utilizado este cálculo pode ser alterado. Geralmente, cria-se uma máscara de convolução, que nada mais é do que uma matriz (normalmente de tamanho 3 3, como na Figura 3.15) que possui um determinado peso em cada uma de suas posições. Figura 3.15: Exemplos de Máscaras para filtro passa-alta. Fonte: Autor adaptado de [FELGUEIRAS, 2006]. O pixel a ter seu ND recalculado é sempre aquele que estiver sob a posição central da matriz, como mostrado na Figura 3.16: O cálculo do novo ND de um pixel é dado pelo processo de convolução, que consiste na soma dos produtos entre os valores da matriz e pixels correspondentes da imagem, onde esta matriz percorre toda a imagem pixel a pixel, partindo da esquerda para a direita. Tal deslocamento é obtido através da soma de 1 pixel na posição X atual da matriz, como pode ser observado na Figura é dado por: O cálculo do ND de um pixel, através do processo de convolução de uma imagem

33 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 22 Figura 3.16: Máscara 3x3 sendo utilizada para a filtragem de uma imagem digital. No caso, o ND a ser recalculado é do pixel X. Fonte: Autor adaptado de [FELGUEIRAS, 2006]. ND = n MiOi (3.1) i=1 Onde M é uma matriz de convolução 3 3, O é a imagem a ser filtrada e n é o número de elementos de M. Entre os principais tipos de filtragem está o filtro passa-alta, que pode ser uma boa alternativa para fazer a detecção de bordas e o filtro passa-baixa, com o qual é possível realizar a suavização da imagem, resultando na diminuição de possíveis ruídos presentes na mesma. Como pode ser observado na Figura b, ao aplicar um filtro passa-baixa na imagem, ela torna-se mais homogênea e também perde-se nitidez, porém os ruídos são suavizados. Já na Figura c, foi aplicado um filtro passa-alta na imagem, havendo um aumento do contraste entre os objetos e o fundo da imagem, ganha-se nitidez e caso existam ruídos na imagem original, estes poderão ser realçados assim como as bordas dos objetos. Uma abordagem mais completa sobre este assunto pode ser encontrada em [FELGUEIRAS, 2006], [STIVANELLO and GOMES, 2006] e [GONZALEZ and WOODS, 2002].

34 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 23 (a) (b) (c) Figura 3.17: a) Imagem Original; b) Passa-baixa; c) Passa-alta. Fonte: Adaptado de OpenCV Samples.

35 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Detecção de Bordas Detecção de Bordas é uma técnica para localizar os pontos e linhas que dividem regiões distintas de uma determinada imagem. A detecção das bordas pode ser feita através do uso de diversos operadores. Como visto em [VALE and POZ, 2002], computacionalmente, define-se uma borda como sendo uma região que possui um gradiente de alta magnitude. Por este fato, o operador de Sobel é uma interessante forma de se realizar a detecção de bordas, visto que este operador é baseado no cálculo do gradiente e sua magnitude. Segundo [SEARA, 1998], o cálculo do gradiente é dado por: E sua magnitude é dada por: f = Gx = Gy f x f y (3.2) mag( f) = [G 2 x + G 2 y] 1 2 (3.3) Onde: G x = e G y = São operadores que aplicam o processo de convolução na imagem como visto no tópico anterior. Através destes cálculos é possível obter, além da magnitude, a direção do gradiente. Este operador realiza a detecção de bordas em duas etapas. Primeiramente, fará a detecção das bordas horizontais da imagem (Figura b), utilizando a máscara G x e depois fará a detecção das bordas verticais (Figura c), aplicando a máscara G y.

36 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 25 (a) (b) (c) (d) Figura 3.18: a) Imagem Original; b) Sobel Horizontal; c) Sobel Vertical; d) Sobel Completo. Fonte: Adaptado de OpenCV Samples. Com a união e normalização do resultado destes dois processos de detecção de bordas, obtém-se o mapa de bordas da imagem (Figura c). Através da aplicação deste operador, é possível obter uma boa detecção de bordas. Em contrapartida, este processo pode causar um indesejável aumento dos ruídos na imagem. Isto se deve ao fato de que, ao passar pelos processos de convolução e cálculo de magnitude do gradiente, os ruídos, assim como as bordas, retornam um valor de magnitude elevada, sendo necessário aplicar outros processos de filtragem para a redução dos mesmos. Outro método também eficiente para realizar a detecção de bordas de uma imagem,

37 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 26 é a utilização do operador de Canny. Este operador é baseado em três critérios básicos [SEARA, 1998], os quais, segundo Canny, qualquer filtro para detecção de bordas deve atender [VALE and POZ, 2002]. São eles: 1. Alta razão Sinal/Ruído (SNR) 2. Ótima localização (L) 3. Boa resposta Onde SNR representa a eficiência do filtro em relação a falsos positivos (detecção de falsas bordas, ruídos), ou seja, o filtro deve detectar o máximo de bordas verdadeiras (Sinal) existentes na imagem. Quanto maior o SNR, melhor será a detecção. O critério de localização, como o nome já diz, está ligado à localização real da borda na imagem e àquela apontada pelo filtro. Quanto menor a distância entre a borda detectada e a borda real, melhor será o filtro. O último dos critérios corresponde à quantidade de respostas geradas pelo filtro em relação a uma única borda. Para cada borda existente na imagem, o filtro deve apontar somente uma resposta. Para atender a estes critérios, são adotados, além de processos de convolução (Seção 3.7.1), processos de Supressão não Máxima e Histerese. A Supressão não Máxima consiste na eliminação dos pixels da região perpendicular à direção da borda que não possuírem magnitude máxima [VALE et al., 2004], onde a magnitude dos pixels é dada por: M(x, y) = [I x (x, y) 2 + I y (x, y) 2 ] 1 2 (3.4) Onde I x é a imagem convoluída na direção X e I y é a imagem convoluída na direção Y. Como visto no início desta seção, as bordas são representadas por pixels que possuem gradiente de alta magnitude. Devido à ruídos presentes na imagem, após os processos de convolução da imagem, podem haver diversos pixels representando um único ponto de borda verdadeiro devido à existência de ruídos na imagem. Porém, aquele que possuir

38 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 27 o gradiente com maior magnitude é o candidato mais forte para representar a borda. Através do processo de supressão não máxima, os pixels de magnitude não máxima são eliminados, restando somente 1 pixel representando 1 ponto de borda, o que melhora a performance do filtro e atende ao terceiro critério citado anteriormente. Exemplos e melhores explicações da aplicação deste processo podem ser encontradas em [VALE and POZ, 2002]. Para atender ao critério da localização, é utilizado o processo de histerese, ou limiarização adaptativa [VALE et al., 2004]. Este processo consiste em aplicar duas vezes o processo de limiarização em uma mesma imagem, com a utilização de dois limiares, T 1 e T 2, onde T 1 = 2T 2 ou T 1 = 3T 2. A limiarização se dá da seguinte forma: 1. Verifica-se se a luminância do pixel é maior que T 1, se for, ele é automaticamente aceito como borda; 2. Se a luminância do pixel for menor que T 2, este pixel será automaticamente rejeitado; 3. Se o valor da luminância estiver entre os dois limiares, este será aceito somente se os seus pixels imediatamente vizinhos, forem pixels com alto valor de luminância. Com a aplicação destes operadores é possível obter o Mapa de Bordas de uma imagem, que é a imagem original filtrada, onde os pixels pertencentes a uma borda, são destacados (representados por pixels brancos) e aqueles que não forem pertencentes a uma borda são ignorados (representados por pixels pretos). Um exemplo de mapa de bordas pode ser visto na Figura Figura 3.19: Mapa de bordas gerado com operador de Canny. Fonte: Autor

39 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 28 Neste trabalho, serão utilizadas técnicas de detecção de bordas para fazer o realce das bordas do ritmo visual que possivelmente representem uma transição. Melhores abordagens sobre estes métodos podem ser encontradas em [SANTOS, 2005], [MADRUGA and PAIVA, 2005], [BOTELHO and CENTENO, 2007], [FELGUEIRAS, 2006], [STIVANELLO and GOMES, 2006] e [GONZALEZ and WOODS, 2002]. 3.8 Processamento de Médio Nível Morfologia Matemática Morfologia Matemática é basicamente o estudo das formas de objetos através da aplicação de determinadas operações matemáticas. Na área de processamento de imagens a morfologia pode ser aplicada em uma imagem com o objetivo de realizar o seu reconhecimento, a eliminação de ruídos, detecção de bordas, através do uso de algumas operações morfológicas. Segundo [NOGUEIRA et al., 2002], a base da morfologia matemática é composta por dois operadores básicos, a erosão e a dilatação. A erosão consiste na retirada de pontos indesejáveis da imagem, enquanto a dilatação é a propagação de um determinado ponto para áreas ao seu redor. Neste trabalho, a morfologia matemática é utilizada para a aplicação de efeitos como erosão e dilatação no vídeo em edição no M-FIT. Figura 3.20: Elemento estruturante: a) Cruz; b) Quadrado; c) Hexágono. Fonte: [NOGUEIRA et al., 2002], p.79 Ambas as operações são sempre baseadas em um elemento estruturante que é um conjunto pequeno definido e conhecido (forma, tamanho) que é sempre comparado a um conjunto desconhecido da imagem. O elemento estruturante pode ser de vários tipos conforme observado na Figura A boa escolha de um elemento estruturante está

40 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 29 diretamente ligada à qualidade dos resultados das operações. Na Figura b, pode ser observada a aplicação de uma erosão em uma imagem: (a) (b) Figura 3.21: a) Imagem Original; b) Imagem Erodida Fonte: Autor adaptado de Batman - O Cavaleiro das Trevas. Segundo [NOGUEIRA et al., 2002], a erosão de um elemento é dada por: [ε B (f)](x) = min b Bf(x + b) B(b) (3.5) Onde f é a região da imagem a ser erodida e B é o elemento estruturante. Como é possível observar na Figura b, uma imagem erodida resulta em uma imagem com seus pontos escuros expandidos, enquanto os claros são diminuídos em relação à imagem original. (a) (b) Figura 3.22: a) Imagem Original; b) Imagem Dilatada. Fonte: Autor adaptado de Batman - O Cavaleiro das Trevas. A dilatação, segundo [NOGUEIRA et al., 2002], é dada por:

41 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 30 [ε B (f)](x) = max b Bf(x + b) (3.6) Onde f é a região da imagem a ser dilatada e B é o elemento estruturante. Como é possível observar na Figura b, ao contrário da imagem erodida, uma imagem dilatada tem seus pontos claros expandidos, enquanto os escuros são diminuídos em relação à imagem original. Neste trabalho, a Morfologia Matemática será utilizada para demonstrar a aplicação de efeitos visuais no vídeo Segmentação de Imagens Em visão computacional, segmentação é o processo de dividir uma imagem em múltiplas regiões, com a intenção de subdividir a imagem em areas de interesse, ou simplesmente modificá-las, ambos a fim de facilitar uma análise posterior. Em imagens monocromáticas algoritmos de segmentação são baseados em uma das propriedades básicas de valores de níveis de cinza: descontinuidade (detecção de bordas) e similaridade (agrupamento de regiões homogêneas). Na descontinuidade, o objetivo é particionar a imagem tendo como regra mudanças bruscas nas escalas de cinza. A similaridade baseia-se na limiarização ([BASTOS, 2006]. A limiarização ou binarização de uma imagem é dada a partir do nível de cinza de seus pixels. Tal processo é dado pela definição de um limiar T no histograma da imagem e comparação dos níveis de tom de cinza dos pixels com o limiar T. Valores que forem menores que o limiar, têm seus valores de níveis de cinza aproximados para 255, tornandose brancos, e aqueles que tiverem níveis de cinza maiores que o limiar, têm seus valores em níveis de cinza aproximados para 0, tornando-se pretos. A Figura 3.23 mostra um exemplo de histograma com limiar definido. Como pode ser observado nos exemplos das Figuras b, c e d dependendo do limiar escolhido o resultado se altera. Quanto menor o valor do limiar mais pixels terão seus níveis de cinza aproximados de 255, deixando a imagem com mais pontos brancos do que pretos. A recíproca também é verdadeira. Existem diversas formas de se estimar o limiar, os mais conhecidos são:

42 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 31 Figura 3.23: Exemplo de limiar com histograma. Fonte: Autor. limiar iterativo [YANG et al., 2006], por entropia não-extensiva [RODRIGUES et al., 2006] e limiar adaptativo [BLAYVAS et al., 2001]. Neste trabalho, técnicas de segmentação de imagens serão utilizadas para identificar a área de interesse em vídeos que estejam no formato widescreen, ou seja, para realizar a extração das tarjas pretas, pois estas podem invalidar os resultados obtidos.

43 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA 32 (a) (b) (c) (d) Figura 3.24: a) Figura original; b) Limiar 150; c) Limiar 100; d) Limiar 50 Fonte: Adaptado de OpenCV Samples.

44 CAPÍTULO 3. REVISÃO BIBLIOGRÁFICA Processamento de Alto Nível Método Baseado em Entropia Nascida na termodinâmica, a entropia tem como objetivo, medir o grau de desordem de um sistema, em outras palavras, determinar o quanto instável se encontra um determinado estado de um sistema. O conceito de instabilidade, ou desordem de um sistema termodinâmico está associado à quantidade de troca de calor entre um estado A e outro estado B. Isto porque a desordem de um sistema aumenta ou diminui conforme for o ganho ou perda de calor na passagem de um estado para outro. Por exemplo, para passar a água do estado sólido para o estado líquido é necessário que o estado sólido receba uma determinada quantidade de calor Q. Quando inicia-se o processo de aquecimento do cubo de gelo, suas moléculas, inicialmente estáveis, passam a ter um aumento da energia cinética, conseqüentemente tornando o sistema mais instável. Esta movimentação pode ser considerada como desordem, sendo assim, é possível dizer que no estado líquido, a entropia do sistema é maior do que quando o sistema se encontra no estado sólido. O método baseado em entropia é um método não muito utilizado e neste trabalho este método não será aplicado. Uma abordagem sobre este assunto pode ser encontrado em [MENDELSSOHN, 1962].

45 Capítulo 4 METODOLOGIA Neste Capítulo, serão definidas as metodologias a serem utilizada para a realização da detecção de transições. Figura 4.1: Diagrama esquemático da metodologia proposta. Fonte: Autor. 34

46 CAPÍTULO 4. METODOLOGIA 35 A Figura 4.1 mostra um esquema geral da metodologia proposta neste trabalho, que consiste em: a partir de um dado vídeo de entrada o sistema realizará a detecção de suas transições (corte/fade/dissolve), sendo que para cada tipo de transição, será aplicada uma metodologia diferente, as quais serão detalhadas posteriormente. Após estes processos o vídeo poderá ser editado, com aplicação de efeitos visuais. 4.1 Cortes Figura 4.2: Metodologia utilizada para a detecção de Cortes. Fonte: Autor. do tipo Corte: A Figura 4.2 representa a metodologia utilizada para a detecção de transições

47 CAPÍTULO 4. METODOLOGIA Vídeo: É feita a entrada do vídeo no qual será feita a detecção dos cortes. 2. Montagem do Ritmo Visual por sub-amostragem: Para realizar a detecção das transições, o sistema irá gerar uma imagem 2D que representa o Ritmo Visual do vídeo, como definido na Seção 3.6. Este processo se dá de acordo com os seguintes passos: (a) Obtenção do Frame; (b) Conversão do Frame para tons de cinza; (c) Cálculo da Diagonal Principal deste Frame. Tais passos se repetem do primeiro, até o último frame do vídeo. 3. Segmentação de Imagem - Extração da área de interesse: Para vídeos que estejam no formato widescreen, será realizada a extração da área de interesse (área do vídeo), para que não haja interferência nos resultados por parte das bordas pertencentes ao widescreen. 4. Detecção de Bordas - Operador Canny: Será aplicado o operador de Canny para realizar a detecção das bordas. Como visto na Seção 3.7.2, com a aplicação deste operador, é possível obter o mapa de bordas do Ritmo Visual, o qual irá mostrar a localização de possíveis transições de cortes no vídeo. 5. Mapa de Bordas: Gerado com a aplicação do Operador Canny no RV, o mapa de bordas possibilitará a definição dos pontos onde há a ocorrência dos cortes. 6. Limiar de corte e contagem de pontos: Gerado o mapa de bordas, será necessário determinar quais bordas serão consideradas transições de cortes e quais serão ignoradas pelo fato de pertencerem a objetos da imagem. Tal processo será realizado através da contagem de pontos pertencentes às retas verticais detectadas. Quanto maior for este número, maior a possibilidade da borda estar representando um corte. Para isso, define-se um limiar, o que possibilita realizar a classificação entre aquilo que representa uma borda gerada por um objeto, e daquilo que representa uma transição de corte.

48 CAPÍTULO 4. METODOLOGIA Validação dos pontos encontrados: Neste ponto o sistema verifica se o ponto apontado como transição de corte não se trata de um fade através da análise da média da luminância dos próximos frames e dos frames anteriores. Se esta for muito baixa, significa que os próximos frames ou os frames anteriores são pretos, ou bastante escuros, o que torna alta a probabilidade destes frames serem pertencentes ao início ou final de um fade. Além disso, é realizado o cálculo da diferença entre a média da luminância dos dois próximos frames e a média da luminância dos dois frames anteriores. Se esta for nula, ou muito baixa, há grande chance do sistema ter detectado uma borda no Ritmo Visual gerada por um objeto de cena. Caso ocorra um destes casos, o ponto será ignorado. 8. Transições: No final deste processo, estarão identificadas as transições do vídeo do tipo corte. 4.2 Fade Como visto na Seção 3.2.1, o fade-in é uma transição que parte de tomadas mais escuras para tomadas mais claras, enquanto o fade-out, visto na Seção 3.2.2, possui um efeito inverso, partindo de tomadas mais claras para tomadas mais escuras. O processo para detecção de transições do tipo fade será: 1. Vídeo: É feita a entrada do vídeo no qual será realizada a detecção dos Fades. 2. Ritmo Visual por Histograma (RVH): A partir do vídeo de entrada, cria-se uma simplificação do mesmo chamada Ritmo Visual por Histograma (Seção 3.6.2). O processo para criar um RVH possui os seguintes passos: (a) Obtenção do Frame; (b) Converte Frame para tons de cinza; (c) Cálculo da Diagonal Principal deste Frame; (d) Obtenção do Histograma desta diagonal. (e) Obtenção da média do Histograma. Tais passos se repetem seqüencialmente do primeiro, até o último frame do vídeo.

49 CAPÍTULO 4. METODOLOGIA 38 Figura 4.3: Metodologia utilizada para a detecção de Fade. Fonte: Autor.

50 CAPÍTULO 4. METODOLOGIA 39 Um exemplo de um RVH de uma sequência de vídeo onde ocorre um fade-in pode ser visto na Figura 4.4. Onde o eixo x representa os valores de luminância extraídos de cada diagonal do frame, e o eixo y representa cada frame do vídeo. Figura 4.4: RVH de uma sequência que contém uma transição do tipo fade-in. Fonte: Adaptado de [FERNANDO et al., 1999]. 3. Cálculo das Derivadas do RVH: Obtido o RVH, calcula-se a sua derivada primeira. A partir da função derivada, é possível visualizar o comportamento de um fade-in. No momento em que a sequência estiver com seus frames mais escuros, a curva se manterá constante. Ao iniciar o processo da transição (clareamento da tomada), ocorrerá uma forte variação na curva, a qual se manterá até o momento em que a luminosidade dos frames deixe de variar, fazendo com que o comportamento da curva torne-se estável novamente. 4. Análise das Derivadas: Tendo as derivadas calculadas, é feita a análise, a fim de encontrar padrões de fadein e fade-out, os quais podem ser vistos na Figura 4.5. Nota-se que em ambos os casos de fade, fica evidente que um fade é representado por um intervalo de variação na derivada do ritmo-visual. Então a sequência de derivadas é percorrido ponto a ponto, em busca de intervalos onde a derivada sofre uma variação, como nas Figuras 4.4 e 4.5. Para que o sistema comece a avalizar um intervalo de variação esta precisa atender as seguintes condições:

51 CAPÍTULO 4. METODOLOGIA 40 Figura 4.5: Trecho do RVH derivado de uma sequência que contém uma transição do tipo fade-in, seguida de um fade-out. Eixo X representa os frames do vídeo, eixo Y representa a derivada da luminância do frame Fonte: Autor. (a) Sua derivada deverá sofrer uma variação (não deve ser constante); (b) Esta variação não deve ser abrupta (Pois pode evidenciar um Corte); (c) O ponto anterior não deve ter variação alguma, ou seja, deve ser constante. A partir disso, o sistema começa a analisar a variação encontrada. O ponto final desta variação é determinado quando a derivada para de variar e torna-se constante novamente. Sob posse do intervalo da variação, o sistema verifica as seguintes condições: (a) O intervalo da variação deve conter mais do que 10 Frames, visto que valores abaixo deste limiar podem evidenciar um Corte; (b) O intervalo não deve ter em seu ponto final uma variação muito abrupta, podendo assim, evidenciar um Corte Assim, fica definido que uma variação é de fato um fade. Para ser feita a diferenciação entre um Fade-in e um Fade-out, são adotados os seguintes critérios:

52 CAPÍTULO 4. METODOLOGIA 41 (a) Fade-in: O primeiro ponto da variação é um Frame com predominância de cor preta. (b) Fade-out: O último ponto da variação é um Frame com predominância de cor preta. 4.3 Dissolve Figura 4.6: Metodologia utilizada para a detecção de dissolve. Fonte: Adaptado de [FERNANDO et al., 1999].

53 CAPÍTULO 4. METODOLOGIA 42 A Figura 4.2 representa a metodologia utilizada para a detecção de transições do tipo Dissolve: 1. Vídeo: É feita a entrada do vídeo no qual será feita a detecção das transições do tipo Dissolve. 2. Cálculo do Ritmo Visual por Histograma: Para a realização da detecção de transições do tipo dissolve, o sistema irá primeiramente gerar o RVH do vídeo. Este processo se dá através dos seguintes passos: (a) Obtenção do Frame; (b) Converte Frame para tons de cinza; (c) Cálculo da Diagonal Principal deste Frame; (d) Obtenção do Histograma desta diagonal; Tais passos se repetem seqüencialmente do primeiro, até o último frame do vídeo. 3. Verifica comportamento do RVH: Para cada ponto do Ritmo Visual por Histograma, serão verificados os próximos 7 pontos. Se estes pontos possuírem um comportamento crescente ou decrescente, o primeiro deles será considerado um possível local de ocorrência de Dissolve. 4. Derivada dos possíveis pontos de Dissolve: Será calculada a primeira derivada dos trechos em que há uma possível ocorrência de Dissolve, a qual será submetida a um processo de limiarização. Se todas as derivadas de um determinado trecho estiverem abaixo do limiar definido, este será considerado um ponto de ocorrência de Dissolve. 5. Retirar transições do tipo fade: Será feita a análise da média do nível de luminância dos Frames pertencentes ao trecho apontado como Dissolve. Caso um deles possua uma média de luminância próxima de zero, significa que o ponto detectado pode não ser um Dissolve e sim um Fade. Desta forma o ponto é ignorado. 6. Dissolve detectado: No final deste processo, estarão identificados os pontos de ocorrência de transições do tipo Dissolve.

54 Capítulo 5 ESPECIFICAÇÃO DE REQUISITOS 5.1 Requisitos de Negócio Automatização do processo de detecção de transições Realizar a detecção de transições de um vídeo fornecido pelo usuário, tornando o processo automático, sem a necessidade de intervenções humanas. 5.2 Requisitos de Usuário Aplicação de efeitos Para aplicar um efeito visual, o sistema deve permitir ao usuário que o mesmo seja aplicado em todo o vídeo, ou somente em uma determinada tomada, sendo possível ainda, escolher entre aplicar em apenas uma, ou em diversas tomadas, cabendo ao sistema realizar a aplicação do efeito conforme as opções selecionadas pelo usuário Agrupamento de efeitos possíveis O sistema fornecerá ao usuário, em uma área centralizada, ferramentas para aplicação de efeitos simples de edição de imagens. 43

55 CAPÍTULO 5. ESPECIFICAÇÃO DE REQUISITOS Carregamento do vídeo Ao carregar o vídeo no sistema, o usuário poderá escolher entre realizar a detecção de transições durante o carregamento ou posteriormente, dando ao usuário a flexibilidade de realizar a detecção das transições no momento em que desejar Controladores de reprodução de vídeo A aplicação fornecerá ao usuário, controles de reprodução de vídeo, permitindo ao usuário ter uma prévia deste após a sua edição Drag and Drop Um efeito de edição de vídeo, uma alteração do esquema de cores por exemplo, poderá ser aplicado no vídeo simplesmente pela ação de drag and drop (arrastar e soltar). O usuário escolhe a ferramenta da box de efeitos a ser utilizada e a arrasta sobre a tomada que desejar editar Enumeração de transições Para facilitar a navegação e localização do usuário perante o vídeo, as transições do vídeo serão enumeradas conforme a detecção de transições ocorrer, onde a transição número 0 será sempre o início do vídeo. Desta forma, ficam enumeradas as tomadas do vídeo, onde a primeira vai da transição número 0 (início do vídeo), até a ocorrência da transição número 1, e assim por diante Intervenção manual Caso haja necessidade, os pontos de transição detectados pelo sistema poderão ser modificados pelo usuário manualmente. Para isso o usuário será capaz de alterar a posição da transição na lista de transições, ou até mesmo deletá-la Lista de transições Realizada a detecção e identificação das transições do vídeo, estas deverão ser listadas para o usuário em uma pequena box da janela principal do sistema. Tais transições

56 CAPÍTULO 5. ESPECIFICAÇÃO DE REQUISITOS 45 serão enumeradas para facilitar na navegação pelo vídeo Preview de frames O sistema deverá disponibilizar ao usuário uma prévia do frame em que o cursor da timeline estiver posicionando, a qual será exibida na janela principal do sistema Seleção de transições Ao selecionar uma transição da lista de transições, o frame em que foi indicada a sua ocorrência deverá ser mostrado na janela onde é passado o vídeo, assim como a tomada que a transição dá início deverá ser marcada na timeline. Caso o usuário selecione mais de uma transição, todas as tomadas correspondentes deverão ser marcadas na timeline Timeline Ao realizar o carregamento do vídeo, será disponibilizada para o usuário a visualização de uma timeline do vídeo exibindo seus frames de forma seqüencial e sem nenhuma identificação, ou com as suas transições marcadas e identificadas, no caso da detecção das transições ter sido executada junto do carregamento do vídeo. 5.3 Requisitos de Sistema Arquivo de controle do projeto Todo o projeto será salvo em um arquivo XML, o qual deverá conter todas as informações necessárias para que o sistema consiga retomar a edição do vídeo sem intervenção nenhuma do usuário, partindo do ponto exato onde o usuário interrompeu a edição. O arquivo deverá conter informações como: nome do projeto, diretório de trabalho do projeto, nome e caminho completo do vídeo carregado, pontos onde houveram transições no vídeo etc Classificação das transições A aplicação deverá classificar automaticamente as transições detectadas. Tal classificação será dividida em:

57 CAPÍTULO 5. ESPECIFICAÇÃO DE REQUISITOS 46 Corte Dissolve Fade-in Fade-out Detecção de transições O sistema deverá detectar automaticamente o máximo possível das transições presentes no vídeo Compatibilidade de Sistema Operacional O sistema deverá ser compatível com sistema operacional Windows Limiar Para as operações que exijam um limiar, caso o usuário não forneça nenhum valor, o sistema irá utilizar seus valores padrões, por exemplo, durante o processo de detecção de transições do tipo corte, serão consideradas cortes somente as retas verticais que ultrapassarem 45% da altura total do Ritmo Visual Localização de arquivo O sistema deverá ser capaz de abrir arquivos que estejam em qualquer tipo de mídia de armazenamento, pen drives, HD, CD s, entre outros, assim como permitir que o usuário salve seus projetos em qualquer local Montagem do mapa de bordas bordas. Aplicar o operador de Canny sobre o Ritmo Visual, obtendo assim o seu mapa de

58 CAPÍTULO 5. ESPECIFICAÇÃO DE REQUISITOS Montagem do Ritmo Visual Aplicação de cálculos para extração da diagonal principal de cada frame do vídeo, afim de criar uma simplificação do mesmo OpenCV Necessária a inclusão das bibliotecas do OpenCV, biblioteca específica para aplicações de funções de PDI QT A interface do sistema deverá ser desenvolvida através da ferramenta QT Tipos de arquivo O sistema deverá ser compatível no mínimo com arquivos do tipo AVI.

59 Capítulo 6 MODELAGEM DO SISTEMA 6.1 Casos de Uso Cenário Principal Figura 6.1: Caso de Uso para cenário principal do sistema. Fonte: Autor. A Figura 6.1 representa o cenário principal do sistema Caso de uso: Carrega Vídeo Cenário Principal: O usuário informa ao sistema o diretório do vídeo a ser carregado no sistema. O sistema realiza o carregamento do vídeo. 48

60 CAPÍTULO 6. MODELAGEM DO SISTEMA 49 Cenário Alternativo: O vídeo informado pelo usuário não é um tipo de vídeo suportado pelo sistema Caso de uso: Informar caminho do vídeo Cenário Principal: O usuário deverá informar o caminho completo do local onde está armazenado o vídeo para carregá-lo no sistema. Cenário Alternativo: O usuário informa o caminho onde será salvo o vídeo Caso de uso: Exibe timeline Cenário Principal: Feito o carregamento do vídeo no sistema, este disponibilizará ao usuário uma timeline do vídeo Caso de uso: Edita Vídeo Cenário Principal: Feito o carregamento correto do vídeo ou projeto, estarão habilitadas ao usuário as funções de edição de vídeo. Cenário Alternativo: As funções para edição de vídeo ficam bloqueadas enquanto não houver vídeo carregado no sistema Caso de uso: Detecta Transições Cenário Principal: Feito o carregamento correto do vídeo ou projeto, estarão habilitadas ao usuário as funções para realizar a detecção e classificação das transições de tomadas existentes no vídeo. Cenário Alternativo: As funções para detecção de transições ficam bloqueadas enquanto não houver vídeo carregado no sistema Caso de uso: Edita Transições Cenário Principal: Após a execução dos processos de detecção de transições do vídeo, o usuário altera manualmente os pontos de ocorrência de transições ou remove um ponto qualquer.

61 CAPÍTULO 6. MODELAGEM DO SISTEMA Caso de uso: Salva Projeto Cenário Principal: Usuário salva o projeto, apontando em qual diretório deverá ser salvo o projeto e o nome do arquivo a ser gerado Caso de uso: Carrega Projeto: Cenário Principal: O usuário informa ao sistema o diretório do projeto a ser carregado no sistema Caso de uso: Informar Caminho do Projeto: Cenário Principal: O usuário deverá informar o caminho completo do local onde está armazenado o projeto para carregá-lo no sistema. Cenário Alternativo: O usuário informa o caminho onde será salvo o projeto Caso de uso: Renderiza Vídeo Cenário Principal: O usuário solicita ao sistema que o vídeo seja salvo após sua edição. Cenário Alternativo: Não há vídeo carregado no sistema Cenário Edição A Figura 6.2 representa o cenário para os processo de edição de vídeo Caso de uso: Aplica Efeito Cenário Principal: O usuário aplica um ou mais efeitos de edição no vídeo carregado. Cenário Alternativo: Não há vídeo carregado no sistema e os controles de edição estão desabilitados Caso de uso: Define intervalo de aplicação Cenário Principal: O usuário deve definir qual será o trecho do vídeo em que deverá ser aplicado o efeito selecionado. Por default, o sistema aplica o efeito na tomada que estiver selecionada, ou no vídeo todo, caso não haja nenhuma transição detectada.

62 CAPÍTULO 6. MODELAGEM DO SISTEMA 51 Figura 6.2: Caso de Uso para cenário de edição de vídeo. Fonte: Autor Caso de uso: Erode Imagem Cenário Principal: O usuário aplica efeitos de erosão em uma ou mais tomadas Caso de uso: Dilata Imagem Cenário Principal: O usuário aplica efeitos de dilatação em uma ou mais tomadas Caso de uso: Alteração do Esquema de Cores Cenário Principal: O usuário aplica efeitos para alteração do esquema de cores de uma ou mais tomadas do vídeo. Será possível apenas converter as imagens para tons de cinza Cenário Detecção de Transição A Figura 6.3 representa o cenário geral para detecção de transição.

63 CAPÍTULO 6. MODELAGEM DO SISTEMA 52 Figura 6.3: Caso de Uso para cenário geral de detecção de transições. Fonte: Autor Caso de uso: Detecta Transições Cenário Principal: O usuário solicita ao sistema que seja feita a detecção de transições do vídeo carregado. O sistema, por sua vez, realiza a detecção dos cortes, fades (fade-in e fade-out) e dissolve presentes em todo o vídeo Caso de uso: Gera lista de transições enumeradas Cenário Principal: Realizada a detecção de transições, o sistema disponibilizará ao usuário uma lista com todas as transições do vídeo indexadas, facilitando a navegação do usuário pelas tomadas do vídeo Caso de uso: Marca timeline com pontos de transição Cenário Principal: Realizada a detecção de transições, o sistema exibirá a mesma timeline gerada ao carregar o vídeo no sistema, porém, com suas transições marcadas, como pode ser visto na Figura 6.4. Cenário Alternativo: O vídeo não possui nenhum tipo de transição, portanto a timeline não terá nenhum ponto marcado.

64 CAPÍTULO 6. MODELAGEM DO SISTEMA 53 Figura 6.4: Transições Detectadas. Fonte: Autor Caso de uso: Ajuste manual de pontos de transição Cenário Principal: O usuário altera manualmente os pontos de transição detectados pelo sistema. transição. Cenário Alternativo: O usuário não altera o ponto de ocorrência de nenhuma Cenário Detecção de Cortes Figura 6.5: Caso de Uso para cenário de detecção de cortes. Fonte: Autor. A Figura 6.5 representa o cenário específico de detecção de cortes.

65 CAPÍTULO 6. MODELAGEM DO SISTEMA Caso de uso: Detecta Cortes Cenário Principal: O usuário solicita ao sistema que seja realizada a detecção de transições do tipo Corte. Cenário Alternativo: O usuário cancela a operação de detecção de transições. A mesma poderá ser feita posteriormente através dos menus do sistema Caso de uso: Montagem do Ritmo Visual Cenário Principal: Para a realização da detecção de cortes, o sistema deve montar o Ritmo Visual do vídeo Caso de uso: RV por sub-amostragem Cenário Principal: Para a detecção de cortes, o Ritmo Visual será montado através da extração de amostras de todos os frames do vídeo. Esta amostra é dada pela diagonal principal do frame, a qual será transformada em uma coluna do Ritmo Visual de forma seqüencial, como visto na Figura 3.12 da Seção Caso de uso: Cálculo da diagonal principal do frame Cenário Principal: É realizado o cálculo da diagonal principal de cada frame do vídeo devido à necessidade de montar o Ritmo Visual do vídeo Caso de uso: Remove widescreen Cenário Principal: Após a geração do Ritmo Visual do vídeo, será necessário fazer a remoção das tarjas pretas que compõem o formato widescreen de vídeo para que estas não interfiram no processo de detecção de transições. Cenário Alternativo: O vídeo não está no formato widescreen, não sendo necessária a remoção de nenhuma parte do ritmo visual Caso de uso: Detecção de Bordas: Operador Canny Cenário Principal: O sistema aplica o Operador Canny na imagem para realizar a detecção de bordas da imagem do Ritmo Visual (mapa de bordas).

66 CAPÍTULO 6. MODELAGEM DO SISTEMA Caso de uso: Definição de Limiar de Corte Cenário Principal: O sistema utiliza o seu limiar de corte padrão, ou seja, um limiar que define quais bordas verticais (representação de transições de corte no Ritmo Visual) serão consideradas cortes e quais serão ignoradas. Cenário Alternativo: O usuário define manualmente este limiar de corte Caso de uso: Contagem de pontos de linha Cenário Principal: Após a definição do limiar de corte, o sistema conta os pontos pertencentes às retas verticais detectadas no mapa de bordas. As retas que obtiverem um número de pontos maior ou igual ao limiar são consideradas transições de cortes Cenário Detecção de Fades tipo fade. Figura 6.6: Caso de Uso para cenário de detecção dos fades. Fonte: Autor. A Figura 6.6 representa o cenário para o processo de detecção de transições do

67 CAPÍTULO 6. MODELAGEM DO SISTEMA Caso de uso: Detecta Fade Cenário Principal: O usuário solicita ao sistema que seja realizada a detecção de transições do tipo Fade Caso de uso: Montagem do RV por histograma Cenário Principal: Para a detecção de fades, o RVH será montado na representação de uma curva num gráfico, onde cada ponto da curva tem informações sobre um frame do video Caso de uso: Cálculo da Diagonal Principal do Frame Ver: Caso de uso: Obtenção da Media do Histograma Cenário Principal: A partir do histograma de cada amostra (diagonal do frame), é obtido a média do valor de luminância. Este valor representará um ponto na reta do RV H Caso de uso: Cálculo das derivadas dos pontos do RVH Cenário Principal: Calcula-se a primeira derivada do RVH Caso de uso: Análise da derivada Cenário Principal: É feita uma busca por variações na curva das derivadas, a fim de encontrar possíveis Fades e classificá-los entre Fade-In e Fade-Out Cenário Detecção de Dissolve A Figura 6.7 representa o cenário para o processo de detecção de transições do tipo dissolve Caso de uso: Detecta Dissolve Cenário Principal: O usuário solicita ao sistema que seja realizada a detecção de transições do tipo Fade.

68 CAPÍTULO 6. MODELAGEM DO SISTEMA 57 Figura 6.7: Caso de Uso para cenário de detecção do dissolve. Fonte: Autor.

69 CAPÍTULO 6. MODELAGEM DO SISTEMA Caso de uso: RV por Histograma (RVH) Cenário Principal: A partir do vídeo de entrada, é calculado o Histograma de cada Frame do vídeo, juntando todos em um Ritmo Visual Caso de uso: Cálculo da diagonal principal do frame Ver: Caso de uso: Obtenção do pico do histograma Ver: Caso de uso: Verifica os 7 frames seguintes Cenário Principal: Verifica se os próximos 7 frames, a partir do primeiro frame da região candidata a ser um dissolve, possuem um comportamento crescente ou decrescente Caso de uso: Derivada dos possíveis pontos de Dissolve Cenário Principal: A partir do Ritmo Visual por Histograma do video, é calculada a derivada da região de possível ocorrência de dissolve Caso de uso: Compara pontos da derivada com limiar definido Cenário Principal: A partir da derivada do RHV é definido um limiar para separar transições do tipo dissolve e fade. 6.2 Diagrama de Classes A Figura 6.8 representa o modelo do diagrama de classes do sistema Classe: Color Classe responsável em aplicar efeitos de cor. Métodos:

70 CAPÍTULO 6. MODELAGEM DO SISTEMA 59 Figura 6.8: Diagrama de classes do sistema. Fonte: Autor.

71 CAPÍTULO 6. MODELAGEM DO SISTEMA Frame* convert2gray() Função que converte o frame para escala de cinza. 2. Frame* applyeffect() Função que aplica o efeito de conversão de cores para escalas de cinza. 3. Color(long framestart, long frameend) Construtor que armazena o frame inicial e o frame final de um efeito aplicado no vídeo. O objeto criado será posteriormente adicionado à lista de efeitos do projeto. 4. Color() Construtor da classe Classe: Cut Classe responsável por identificar transições do tipo Corte. Métodos: 1. Cut() Construtor. 2. void createbordermap() Cria o mapa de bordas aplicando o filtro de Canny sobre o Ritmo Visual. 3. void detecttransitions() Função que faz a detecção das transições do tipo corte. 4. int definetreshold() Processo para a definição do limiar de corte para o processo de detecção de transições do tipo corte. 5. int countpoints() Função que faz contagem dos pontos das bordas verticais detectadas. 6. int validatecut() Função que valida se a transição encontrada é realmente um corte.

72 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: DetectConfig Classe para a janela de configurações de detecção de transição. Métodos: 1. DetectConfig() Construtor da janela de configurações. Inicializa as variáveis em 0 e cria conexões entre as threads. 2. void on okbutton clicked() Salva as configurações e fecha a janela. 3. void changepage() Altera as páginas da janela conforme item selecionado no menu Classe: DetectTransitions Classe pai de todas as detecções de transições. Métodos: 1. void detecttransitions() Função principal para detecção de transições. Desencadeia a chamada da função com este mesmo nome nos objetos filhos, por fim armazena o resultado no vector passado por parâmetro. 2. bool validatetransition() Verifica se já existem transições detectadas na posição de uma nova transição. 3. void run() Método chamado quando a thread de detecção de transição é instanciada Classe: Dilate Classe responsável em aplicar efeitos de dilatação. Métodos:

73 CAPÍTULO 6. MODELAGEM DO SISTEMA Frame* applyeffect() Aplica o efeito de dilatação em um Frame utilizando métodos da classe Morphology. 2. Dilate() Construtor que inicializa os atributos do objeto. 3. Dilate(long framestart, long frameend) Construtor que inicializa os atributos do objeto e seta os intervalos de início e fim de aplicação do efeito Classe: Dissolve Classe responsável por detectar transições do tipo dissolve. Métodos: 1. void detecttransitions() Realiza a detecção das transições do tipo Dissolve. 2. int calcfirstderivative() Calcula primeira derivada Classe: DTWindow Classe responsável por controlar a exibição da tela de progresso da detecção das transições. Métodos: 1. DTWindow() Construtor responsável por inicializar o objeto. 2. receivemessage() Recebe uma mensagem enviada pela thread e monta a janela a partir dos dados recebidos.

74 CAPÍTULO 6. MODELAGEM DO SISTEMA setdetectthread() Determina qual a thread que a janela deve utilizar. 4. start() Inicia a thread de detecção e a exibição do progresso na janela Classe: Effect Métodos: 1. virtual Frame* applyeffect() Função abstrata para aplicação de efeito. Será implementada por todas as classes filhas deste objeto Classe: Erode Classe que implementa o operador de morfologia matemática Dissolve como efeitos a ser aplicado. Métodos: 1. Erode() Construtor que inicializa os atributos internos. 2. Erode(long framestart, long frameend) Construtor que inicializa os atributos, e seta os valores de inicio e fim do efeito. 3. Frame* applyeffect() Aplica o efeito de erosão em um Frame utilizando métodos da classe Morphology Classe: Fade Classe responsável por identificar todos os tipos de fade. Métodos: 1. double* calcderivative() Calcula a derivada do Ritmo Visual por Histograma.

75 CAPÍTULO 6. MODELAGEM DO SISTEMA void detecttransitions() Realiza a detecção das transições do tipo fade-in/fade-out e empilha o resultado no vector Classe: Filters Classe que agrupa filtros de processamento de imagens digitais. Métodos: 1. void Sobel() Aplica o Operador Sobel em uma imagem. 2. void lowpass() Aplica um filtro passa-baixa em uma imagem. 3. void highpass() Aplica um filtro passa alta em uma imagem. 4. void segment() Realiza a segmentação da imagem, a partir do limiar informado. 5. void Canny() Aplica o filtro de Canny em uma imagem Classe: Frame Classe responsável pela manipulação de uma imagem. Armazena todas as suas propriedades, e possibilita a sua manipulação. Métodos: 1. Frame() Construtor que inicializa as variáveis internas. 2. Frame(char*) Construtor que recebe o nome de uma imagem, abre esta imagem e preenche as estruturas necessárias.

76 CAPÍTULO 6. MODELAGEM DO SISTEMA Frame(IplImage* ) Construtor que recebe uma imagem, realiza a cópia desta imagem. 4. Frame(Frame* ) Construtor que recebe uma frame, realiza a cópia deste frame. 5. Frame(double*, int, float, bool) Construtor que recebe um array, a partir deste array é criado uma imagem (gráfico) representativo do mesmo. Utilizado para representar Histogramas. 6. Frame() Destrutor, libera a memória alocada para o Frame. 7. QImage* IplImageToQImage() Converte uma imagem do tipo IplImage (OpenCv) para o tipo QImage (QT). 8. Histogram* createhistogram() Cria o histograma do Frame. 9. Frame* getdiagonal() Pega a diagonal do Frame. 10. Frame* verticalcat() Concatena verticalmente o Frame corrente com o passado por parâmetro. 11. Frame* resize() Redimensiona o Frame a partir das especificações passadas por parâmetro. 12. int removewide() Remove as tarjas pretas horizontais do Frame; 13. int removeborder() Remove as tarjas pretas verticais do Frame;

77 CAPÍTULO 6. MODELAGEM DO SISTEMA void binarizeimage() Binariza a imagem. Tudo aquilo que possuir luminância menor do que o limiar passado, terá seu valor alterado para 0 e tudo aquilo que tiver luminância acima do valor do limiar terá seu valor alterado para void initattr() Inicializa todos os atributos do Frame com nulo. 16. void write() Escreve a imagem em arquivo. 17. double calcluminanceavarage() Calcula a média de luminância do Frame. 18. static void imgcopy() Realiza a cópia de uma imagem. 19. static void imgdealloc() Desaloca o espaço de memória reservado à uma imagem. 20. static IplImage* imgalloc(frame* frame) Função que centraliza a alocação de memoria e criação de uma imagem a partir de um Frame de entrada. 21. static IplImage* imgalloc(cvsize size, int depth, int channels) Aloca o espaço de memória de uma imagem, copiando as dimensões da imagem passada por parâmetro. 22. void setimage() Auxiliar que atualiza as variáveis internas de um objeto Frame. Deve ser usada toda vez que for alterar a imagem de um Frame. 23. void setpixel() Função que define a luminância de um pixel.

78 CAPÍTULO 6. MODELAGEM DO SISTEMA int getpixel() Função que retorna o valor de luminância de um determinado pixel (x,y). 25. Frame operator+=() Sobrecarga do operador += o qual realiza a concatenação dos frames, sendo que a soma só poderá ser feita entre dois objetos, e não dois ponteiros. 26. Frame operator=() Sobrecarga do operador =. 27. int getmaxlum() Função que retorna a maior luminância de um frame Classe: Histogram Classe responsável por armazenar os dados do histograma de um frame. Métodos: 1. Histogram() Construtor da classe que inicializa as variáveis internas. 2. Histogram(IplImage* img) Construtor para Histogram que recebe uma imagem do tipo IplImage e com isso gera o histograma, preenchendo os atributos necessários Classe: Interface Classe que faz manipulação e controle de todos os componentes da interface do sistema. Métodos: 1. void on actionopenproject triggered() Tratar o evento da ação OpenProject. 2. void on actionsave triggered() Tratar o evento da ação Save.

79 CAPÍTULO 6. MODELAGEM DO SISTEMA void on actionsaveas triggered() Tratar o evento da ação SaveAs. 4. void on actionloadvideo triggered() Tratar o evento da ação LoadVideo. Abre o vídeo e atualiza a lista de propriedades do vídeo. 5. void on playbutton clicked() Tratar o evento do botão PLAY. Inicia a thread do video player. 6. void on pausebutton clicked() Tratar o evento do botão PAUSE. Se a thread estiver rodando ela é parada. 7. void on stopbutton clicked() Tratar o evento do botão STOP. Se a thread estiver rodando ela será encerrada e posiciona o ponteiro do vídeo para o primeiro frame. 8. void on backbutton clicked() Trata o botão backward. Volta o vídeo em um frame. 9. void on forwardbutton clicked() Trata o botão forward. Avança o vídeo em um frame. 10. void updateplayer() Atualiza o frame exibido na label do player. 11. void updatehist() Atualiza o histograma da widgethistogram. 12. void on transitionstree itemselectionchanged() Trata as seleções da lista de transição e manda pintar uma linha no header da timeline identificando a sua tomada. 13. void on actionalltransitions triggered() Trata o evento gerado pelo botão para detecção de todas as transições, iniciando o processo de detecção.

80 CAPÍTULO 6. MODELAGEM DO SISTEMA void on actiononlycuts triggered() Trata o evento gerado pelo botão para detecção de todas as transições do tipo corte, iniciando o processo de detecção. 15. void on actionallfades triggered() Trata o evento gerado pelo botão para detecção de todas as transições do tipo fade, iniciando o processo de detecção. 16. void on actiononlydissolve triggered() Trata o evento gerado pelo botão para detecção de todas as transições do tipo dissolve, iniciando o processo de detecção. 17. void on actionrendervideo triggered() Trata evento gerado pelo botão para renderização do vídeo. 18. void on actiondetectconfig triggered() Solicita a abertura de uma janela com as configurações para os processos de detecção de transição. 19. void on actionexit triggered() Fecha a aplicação. 20. int askdetection() Cria uma caixa de diálogo perguntando ao usuário se este deseja realizar a detecção de transições logo após o carregamento do vídeo. 21. bool askusersave() Pergunta se o usuário deseja salvar o projeto antes de fechar a aplicação. 22. void enablecontrols() Habilita todos os botões de reprodução do vídeo, detecção de transições e lista de efeitos. 23. void showdetectionconfigs() Abre a janela de configurações para detecção de transições.

81 CAPÍTULO 6. MODELAGEM DO SISTEMA void openrecentfile() Trata o evento de clicar em um dos arquivos da lista de Arquivos Recentes e abre o arquivo selecionado. 25. void on effectstree itemclicked() Trata evento de quando é selecionado um item na lista de efeitos. Mostra no player o primeiro/último (conforme for a seleção do usuário) frame da tomada que possui o efeito selecionado. 26. void on transitionstree itemclicked() Mostra no player o primeiro frame da transição selecionada na lista de transições e atualiza o cursor da timeline. 27. void on transitionstree itemdoubleclicked() Trata o evento de duplo clique em um item na lista de transições. Abre a janela de edição da transição e trata os parâmetros definidos quando esta é fechada. 28. void alertuser() Função que mostra uma mensagem de alerta caso o usuário tente fazer qualquer operação que exija vídeo e este não estiver carregado. 29. Interface() Construtor da interface. 30. void addrecentfile() Adiciona um item na lista de arquivos recentes. 31. void updaterecentfilesact() Atualiza a lista de arquivos recentes. 32. void createrecentfilesactions() Cria a lista de arquivos recentes. 33. void changewindowtitle() Altera o título da janela principal.

82 CAPÍTULO 6. MODELAGEM DO SISTEMA void insertvideoproperty() Insere uma linha na lista de propriedades do vídeo. 35. void clearvideoproperty() Limpa a lista de propriedades do vídeo. 36. void setvideotime() Seta a posição do vídeo em HH:MM:SS na box que mostra o tempo do vídeo ( videotime ). 37. void createtimeline() Cria a timeline do vídeo carregado. 38. void settimeline() Desenha a imagem da timeline em sua label. 39. void updatetimeline() Atualiza a posição do cursor da timeline conforme a passagem do vídeo. 40. void inserttransitionstree() Adiciona uma transição na lista de transições. 41. void inserttransitionstimeline() Marca na timeline os pontos onde ocorrem as transições. 42. void updatetransitions() Atualiza a lista de transições e marca pontos de transição na timeline. 43. void cleartransitionstree() Limpa a lista de transições. 44. static char* QStringToChar() Transforma uma QString em um char* 45. void updatetransitionheader(unsigned int transitionid, int clean) Traça uma linha acima da timeline identificando a localização da tomada.

83 CAPÍTULO 6. MODELAGEM DO SISTEMA void updatetransitionheader(qtreewidgetitem * item) Traça uma linha no header da timeline referente ao item selecionado na lista de transições. 47. void cleartransitionheader() Varre todas as transições e retira uma a uma do header da timeline. 48. void inserteffecttree() Insere um item na lista de efeitos do vídeo. 49. void updateeffecttree() Atualiza a lista de efeitos. 50. void effecttreeclear() Limpa a lista de efeitos. 51. void movescrollarea() Movimenta o SCROLL, posiciona a transição selecionada no centro da timeline. 52. void enablesavebutton() Habilita o botão salvar. 53. void disablesavebutton() Desabilita o botão salvar. 54. void recreatetimeline() Restaura a TimeLine original e redesenha as transições. 55. void on actionnewproject triggered() Cria um novo projeto, limpando todas as estruturas da interface. 56. void closeevent() Trata o evento de close da aplicação. Fecha/libera todos os objetos abertos/instanciados.

84 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: Log Classe responsável pela geração de logs da aplicação. Métodos: 1. static int writelog() Escreve no arquivo de log Classe: Morphology Classe que agrupa filtros de morfologia matemática. Métodos: 1. Frame* erode(frame*) Aplica o efeito de Erosão em um Frame. 2. Frame* dilate(frame*) Aplica o efeito de dilatação em um Frame Classe: Project Classe responsável em armazenar os dados relacionados ao projeto corrente. Métodos: 1. Project() Construtor da classe. 2. void cleartransitionlist() Limpa a lista de transições. 3. void cleareffectlist() Limpa a lista de efeitos. 4. int openproject() Abre um arquivo XML do projeto e carrega as estruturas necessárias.

85 CAPÍTULO 6. MODELAGEM DO SISTEMA int saveproject() Salva o projeto em um arquivo XML. 6. int openvideo() Realiza a abertura de um vídeo novo. Preenche a videopropertiestree com informações do vídeo. Caso já tenha um vídeo aberto, as estruturas referentes à este vídeo serão reescritas. 7. void sorttransitionlist() Ordena a lista de transições. 8. long FrameToTimelinePos() Obtém, a partir de um número de frame a posição em que o cursor da timeline deve aparecer. 9. long TimelinePosToFrame() Converte a posição do cursor da timeline para o número do frame correspondente. 10. void rendervideo() Renderiza o vídeo com os efeitos aplicados. 11. Frame* applyeffect() Aplica qualquer tipo de efeito nos frames de uma ou várias tomadas. 12. int gettransitionbypos() Obtém a transição que dá início à transição sobre a qual o cursor da timeline se encontra. 13. void removeeffect() Remove um efeito do vídeo e da lista de efeitos. 14. void removetransition() Remove uma transição apontada pelo sistema da lista de transições.

86 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: QTreeWidgetEffect Classe que armazena dados e estruturas referentes à lista de transições da interface. Métodos: 1. QTreeWidgetEffect() Construtor, cria o connect da opção Remover Efeito. 2. void contextmenuevent() Trata evento de abertura do menu de contexto. 3. void deleteitem() Remove o item selecionado da lista de efeitos Classe: QWidgetTimeline Classe que armazena todos os dados e estruturas da timeline exibida na interface. Métodos: 1. QWidgetTimeline() Construtor da classe. 2. void mousepressevent() Trata o evento gerado quando o mouse é pressionado sobre a timeline. 3. void dragmoveevent() Trata o evento de DragMove. Este evento ocorre quando um objeto for arrastado dentro da região da timeline. 4. void dragenterevent() Trata o evento de DragEnter. Este evento ocorre quando um objeto que está sendo arrastado entra na região de tratamento da timeline. 5. void dropevent() Trata o evento de Drop na timeline. Aplica o efeito arrastado no intervalo da transição escolhida.

87 CAPÍTULO 6. MODELAGEM DO SISTEMA int getitembyevent() A partir do evento, retorna qual Efeito vai ser aplicado. 7. int selectdroptransition() A partir de um ponto, pinta o Header da timeline referente a uma transição. 8. void dragleaveevent() Trata o evento de DragLeave. Este evento ocorre quando um objeto que está sendo arrastado, sai da região da timeline Classe: Render Classe responsável pela janela de progresso da renderização de um vídeo. Métodos: 1. Render() Construtor do objeto. 2. void setprogress() Seta a barra de progresso com a porcentagem passada 3. void startrenderthread() Inicializa a thread responsável pelo processo de renderização. 4. void writeframe() Escreve um frame na estrutura do vídeo. 5. void closeevent() Trata o evento de fechar a janela Classe: RenderThread Classe responsável pela thread de renderização do vídeo. Métodos:

88 CAPÍTULO 6. MODELAGEM DO SISTEMA RenderThread() Construtor do objeto. 2. void run() Inicia o processo de renderização do Video 3. void sendprogress() Envia para a janela a porcentagem atual do processo Classe: Transition Classe responsável por representar uma transição. Métodos: 1. Transition() Construtor que inicializa os atributos. 2. Transition(int, long, char*) Construtor que inicializa os atributos, definindo o tipo da transição, sua posição e label. 3. long getposcurrent() const Retorna o valor utilizado da posição, que pode ser ou o definido pelo Sistem ou o do Usuário, porém o segundo tem prioridade sobre o primeiro 4. bool operator <(const Transition) const Operador de comparação entre dois objetos do tipo Transition. 5. long getposcurrent() Retorna a posição corrente da transição. Caso o usuário tenha alterado a posição da transição detectada pelo sistema, esta será a posição retornada.

89 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: TransitionEdit Classe responsável por gerenciar as alterações feitas pelo usuário quanto à mudança da posição de ocorrência das transições. Métodos: 1. void on changebutton clicked() Evento do botão Change. Ativa a flag avisando que o ponto da transição deve ser modificado e salva a posição corrente do vídeo. 2. void on deletebutton clicked() vento do botão Delete. Ativa a flag avisando que a transição deve ser apagada. 3. void on cancelbutton clicked() Evento do botão Cancel. Ativa a flag avisando que nenhuma alteração deve ser efetivada. 4. void on okbutton clicked() Evento do botão Ok. Ativa a flag sinalizando que deve efetivar as alterações do usuário. 5. void on backbutton clicked() Evento do botão Back. Move o ponteiro do vídeo para o Frame anterior e pede para atualizar o preview. 6. void on forwardbutton clicked() Evento do botão Forward. Move o ponteiro do vídeo para o Frame posterior e pede para atualizar o preview. 7. TransitionEdit() Construtor da janela para alteração do ponto de ocorrência da transição. 8. void setid() Define o ID da transição que será editada. 9. void updatepreview() Atualiza a label de Preview com o Frame corrente do vídeo.

90 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: Video Classe responsável por fazer a manipulação de um vídeo. Métodos: 1. CvCapture* open() Função que realiza o carregamento do vídeo no sistema. 2. void resetroi() Inicializa a ROI (Region Of Interest/Região de Interesse). 3. Video(char *filename cy) Construtor que recebe uma string que é o nome do arquivo de video a ser aberto. 4. Frame getnextframe() Método responsável por obter o próximo frame em relação à posição atual do vídeo. 5. Frame getpreviousframe() Método responsável por obter o frame anterior em relação à posição atual do vídeo. 6. int seekframe() Método responsável em posicionar o ponteiro do vídeo na posição desejada, a qual é parecida como parâmetro da função. 7. void updatepos() Atualiza os controles internos referente a posição atual do ponteiro de vídeo. 8. void removewide() Remove o wide de um video inteiro, usando a função de remoção de wide de um frame. 9. void removeborder() Remove o wide de um video inteiro, usando a função de remoção de borda de um frame.

91 CAPÍTULO 6. MODELAGEM DO SISTEMA Video() Destrutor que desaloca o espaço alocado para o vídeo Classe: VideoPlayer Classe que gerencia os controles do player de vídeo. Métodos: 1. void run() Método que é executado quando a thread do VideoPlayer for iniciada. Pega frame a frame e emite sinal para a interface desenhar. 2. void setnewframe() Emissor de sinal para a interface desenhar um novo frame na janela do player. Emitido toda vez que o vídeo avança em 1 frame durante a reprodução do vídeo. 3. void sethistogram() Emissor de sinal para desenhar o histograma do novo frame. Emitido toda vez que o histograma é atualizado durante a reprodução do vídeo. 4. VideoPlayer() Construtor da classe que inicializa os atributos do objeto. 5. void updatehist() Método que envia um sinal, acionando a sethistogram, para o connect da interface fazer a atualização do histograma. 6. void updateplayer() Método que emite um sinal acionando a setnewframe para o connect da interface fazer a alteração do frame a ser exibido no player. 7. void updatecurrentframe() Atualiza a posição atual do cursor da timeline. Quando for aplicado um efeito, faz com que o vídeo preview mostre o frame com o frame aplicado.

92 CAPÍTULO 6. MODELAGEM DO SISTEMA Classe: VisualRythim Classe responsável por criar os dois tipos de ritmo visual. Métodos: 1. Frame createvr() Função que cria o Ritmo Visual por amostragem de um vídeo. 2. double* createvrh() Função que cria o Ritmo Visual por histograma de um vídeo. 3. float calcderivatives() Calcula primeira derivada da curva do gráfico do ritmo visual Classe: Xml Classe para manipulação de arquivos XML que armazenam os dados do projeto. Métodos: 1. int openxml() Função que realiza o carregamento do arquivo xml. 2. int readxml() Procura uma tag pelo XML. 3. int createxml() Escreve no arquivo XML aberto. 4. int closexml() Fecha o arquivo XML. 6.3 Diagramas de Sequência Nesta Seção serão apresentados os Diagramas de Sequência do sistema.

93 CAPÍTULO 6. MODELAGEM DO SISTEMA 82 Figura 6.9: Diagrama de sequência para carregamento do vídeo. Fonte: Autor.

94 CAPÍTULO 6. MODELAGEM DO SISTEMA Carregamento do vídeo A Figura 6.9 representa a sequência de processos para a realização do carregamento de vídeos no sistema. 1. Editor inicia a aplicação; 2. Aplicação cria objeto de interface INTERFACE; 3. Aplicação cria objeto de Projeto currentproject para armazenar informações sobre o projeto aberto; 4. Aplicação cria objeto de VideoPlayer vdo player para controle do player do vídeo; 5. INTERFACE solicita à currentproject a abertura do vídeo; 6. currentproject cria o objeto de Video vdo, carregando o vídeo solicitado; 7. currentproject solicita à INTERFACE a inserção das propriedades do vídeo na lista de propriedades; 8. currentproject solicita à INTERFACE a criação da Timeline do vídeo; 9. currentproject solicita à INTERFACE a atualização da lista de transições; 10. currentproject solicita à INTERFACE a inserção do vídeo aberto na lista de arquivos recentes; 11. currentproject solicita à INTERFACE a atualização da lista de arquivos recentes; 12. currentproject retorna o vídeo carregado; 13. INTERFACE habilita os controles para detecção de transições, reprodução de vídeo e aplicação de efeitos; 14. INTERFACE abre uma janela e pergunta ao editor se este deseja realizar a detecção de transições; 15. Editor define se realiza a detecção de transições neste momento ou posteriormente; 16. Caso a resposta seja positiva, INTERFACE cria objeto de Detecção de Transições DT;

95 CAPÍTULO 6. MODELAGEM DO SISTEMA INTERFACE solicita à DT a detecção de transições; 18. DT retorna para INTERFACE um array com as posições das transições; 19. INTERFACE redesenha a timeline com os identificadores nos pontos de ocorrência de transição Detecção de transições geral A Figura 6.10 representa a sequência de processos para a realização da detecção de todas as transições do vídeo. 1. Usuário solicita ao sistema que seja feita a detecção de transições do vídeo; 2. INTERFACE cria o objeto DT responsável por realizar todo tipo de detecção; 3. INTERFACE solitita à DT a detecção das transições do vídeo; 4. Objeto DT cria objeto DTC responsável pelas detecções de cortes; 5. DT solicita à DTC a detecção de transições do tipo corte; 6. Objeto DT cria objeto DTF responsável pelas detecções de fades (tanto fade-in, quanto fade-out); 7. DT solicita à DTF a detecção de transições do tipo fade; 8. Objeto DT cria objeto DTD responsável pela de dissolve; 9. DT solicita à DTD a detecção de transições do tipo dissolve; 10. DT retorna para INTERFACE as transições detectadas; 11. INTERFACE solicita à VDO que reposicione o ponteiro para o primeiro frame do vídeo; 12. INTERFACE atualiza a timeline e a lista de transições.

96 CAPÍTULO 6. MODELAGEM DO SISTEMA 85 Figura 6.10: Diagrama de sequência para detecção de transições. Fonte: Autor.

97 CAPÍTULO 6. MODELAGEM DO SISTEMA 86 Figura 6.11: Diagrama de sequência para detecção de cortes. Fonte: Autor.

98 CAPÍTULO 6. MODELAGEM DO SISTEMA Detecção de Cortes A Figura 6.11 representa a sequência de processos para a realização da detecção de transições do tipo corte presentes no vídeo. 1. DTC solicita à VDO o número total de frames do vídeo; 2. DTC solicita à VDO a posição atual do cursor da timeline; 3. DTC solicita à VDO o posicionamento do cursor na posição 0 do vídeo, para que a análise seja feita em todos os frames do vídeo; 4. DTC cria objeto VisualRythim; 5. DTC cria objeto VR; 6. DTC solicita à VR a criação do Ritmo Visual por sub-amostragem do vídeo; 7. VisualRythim extrai do Ritmo Visual gerado as bordas geradas pelo formato widescreen do vídeo; 8. DTC aplica o filtro de Canny no Ritmo Visual e obtém o mapa de bordas; 9. DTC define o limiar a ser utilizado para a detecção dos cortes; 10. DTC solicita à VisualRythim a maior luminância presente no ritmo visual; 11. VisualRythim binariza a imagem para garantir que a imagem seja composta somente por pixels brancos e pretos; 12. DTC faz contagem dos pontos das bordas presentes no Ritmo Visual para verificar quais bordas serão consideradas cortes; 13. DTC verifica se os pontos apontados como corte pelo processo anterior são válidos; 14. Se o ponto é válido DTC cria o objeto newtransition; 15. DTC verifica se o ponto definido como corte não está em duplicidade com uma outra transição detectada anteriormente; 16. DTC inclui a transição na lista de transições.

99 CAPÍTULO 6. MODELAGEM DO SISTEMA 88 Figura 6.12: Diagrama de sequência para detecção de fades (fade-in e fade-out). Fonte: Autor.

100 CAPÍTULO 6. MODELAGEM DO SISTEMA Detecção de Fades A Figura 6.12 representa a sequência de processos para a realização da detecção das transições do tipo fade presentes no vídeo. 1. DTF solicita à VDO a posição atual do ponteiro do video; 2. DTF solicita à VDO o posicionamento do ponteiro na posição 0 do vídeo, para que a análise seja feita em todos os frames do vídeo; 3. DTF cria objeto VR; 4. DTF solicita à VR a criação do Ritmo Visual por Histograma (RVH); 5. Loop: Enquanto a posição do frame corrente for diferente do tamanho do video 6. VR cria objeto FRAME; 7. VR solicita a VDO o próximo frame do vídeo; 8. VR solicita ao FRAME a diagonal do frame solicitado; 9. VR cria objeto HIST, criando o histograma do frame corrente; 10. VR solicita ao FRAME a média do histograma; 11. VR destrói objeto HIST; 12. VR destrói objeto FRAME; 13. Loop: fim; 14. DTF calcula as derivadas do RVH; 15. DTF Analisa as derivadas do RVH; 16. DTF Cria objeto transition; 17. DTF Adiciona a transição na lista de transições; 18. DTF solicita a VDO a restauração do ponteiro do video;

101 CAPÍTULO 6. MODELAGEM DO SISTEMA 90 Figura 6.13: Diagrama de sequência para detecção de dissolve. Fonte: Autor.

102 CAPÍTULO 6. MODELAGEM DO SISTEMA Detecção de dissolve A Figura 6.13 representa a sequência de processos para a realização da detecção de transições do tipo dissolve presentes no vídeo. 1. DTD solicita à VDO a quantidade de frames do video; 2. DTD cria objeto VR; 3. DTD solicita à VR o ritmo visual por histograma; 4. Loop: Enquanto a posição do frame corrente for diferente do tamanho do video 5. VR cria objeto FRAME; 6. VR solicita a VDO o próximo frame do vídeo; 7. VR solicita ao FRAME a diagonal do frame solicitado; 8. VR cria objeto HIST, criando o histograma do frame corrente; 9. VR solicita ao FRAME a média do histograma; 10. VR destrói objeto HIST; 11. VR destrói objeto FRAME; 12. Loop: fim; 13. DTD faz cálculo da primeira derivada do VRH obtido; 14. DTD cria objeto Transition; 15. DTD valida se há duplicidades de detecção antes de inserir no vetor de detecções; 16. DTD destrói objeto VR Edição de vídeo no vídeo. A Figura 6.14 representa a sequência de processos para a aplicação de um efeito 1. Editor solicita ao sistema edição de vídeo;

103 CAPÍTULO 6. MODELAGEM DO SISTEMA 92 Figura 6.14: Diagrama de sequência para edição de vídeo. Fonte: Autor. 2. Sistema cria objeto EFFECT; 3. Sistema solicita a EFFECT a aplicação do efeito no vídeo; 4. Sistema remove objeto EFFECT; 6.4 Diagrama de Estados A Figura 6.15 apresenta os estados em que o sistema poderá se encontrar durante a execução da aplicação Estado: Busca Vídeo Sistema entra no estado de busca do vídeo informado pelo usuário Estado: Carrega Vídeo Sistema passa para o estado de carregamento do vídeo, caso o caminho e arquivo informado pelo usuário estejam corretos, senão volta para o estado de busca do vídeo.

104 CAPÍTULO 6. MODELAGEM DO SISTEMA 93 Figura 6.15: Diagrama de estados do sistema. Fonte: Autor.

105 CAPÍTULO 6. MODELAGEM DO SISTEMA Estado: Detecção de Transições Caso o usuário opte por realizar a detecção de transições logo após o carregamento do vídeo, o sistema entra no estado de detecção de transições e segue para diversos outros estados internos dependendo da escolha do tipo de detecção a ser feita pelo usuário. O sistema entra neste estado sempre que o usuário solicitar a detecção de transições Estado: Detecção de Cortes Estado interno do estado Detecção de Transições. Sistema entra em estado de detecção de cortes. Neste estado são detectados todos os cortes do vídeo. Este estado possui os seguintes estados internos: 1. Obtendo RV por amostragem Sistema entra neste estado para a geração do Ritmo Visual por amostragem (extração de diagonais dos frames) do vídeo. 2. Montando Mapa de Bordas Sistema entra no estado de montagem do mapa de bordas. Neste estado é aplicado o operador de Canny no Ritmo Visual, gerando o mapa de bordas. 3. Definição de limiar Sistema entra no estado onde é definido o limiar de corte para a contagem de pontos das bordas verticais existentes na imagem. 4. Contando pontos de linhas Sistema entra no estado de contagem de pontos de linhas, onde é feita a contagem e seleção das retas que representam um corte no vídeo. 5. Validando pontos detectados Sistema faz a validação dos pontos de transição detectados, verificando se estas transições não são objetos em cena ou o início ou fim de uma transição do tipo fade.

106 CAPÍTULO 6. MODELAGEM DO SISTEMA Verificando duplicidade Sistema faz a verificação se o ponto apontado como transição de corte já não foi apontado anteriormente como ponto de ocorrência de outro tipo de transição Estado: Detecção de Fades Estado interno do estado Detecção de Transições. Sistema entra em estado de detecção de fades. Neste estado são detectados os Fades presentes no vídeo. Este estado possui os seguintes estados internos: 1. Obtendo RV por Histograma Sistema entra neste estado para a geração do Ritmo Visual por Histograma (extração de diagonais dos frames e cálculo dos histogramas) do vídeo. 2. Calculando Derivadas Sistema entra no estado em que é feito o cálculo das derivadas do RVH 3. Analisando as Derivadas Sistema faz análise das derivadas, buscando pontos de ocorrência de Fades e os classifica em Fade-In ou Fade-Out. 4. Verificando duplicidade Sistema faz a verificação se o ponto apontado como transição de Fade já não foi apontado anteriormente como ponto de ocorrência de outro tipo de transição Estado: Detecção de Dissolve Estado interno do estado Detecção de Transições. Sistema entra em estado de detecção de dissolve. transições do tipo dissolve. Este estado possui os seguintes estados internos: Neste estado são detectadas 1. Obtendo RV por Histograma Sistema entra neste estado para a geração do Ritmo Visual por Histograma.

107 CAPÍTULO 6. MODELAGEM DO SISTEMA Verificando possíveis pontos de Dissolve Sistema entra no estado em que são analisados os pontos do Ritmo Visual por Histograma, marcando os possíveis pontos de ocorrência de Dissolve. 3. Calculando Derivadas Sistema entra no estado em que é calculada a primeira derivada dos possíveis pontos de Dissolve determinados no estado anterior. 4. Validando Dissolve Os resultados da derivada são comparados a um limiar. Se todas as derivadas de um determinado trecho estiverem abaixo do limiar definido, este será considerado um ponto de ocorrência de Dissolve. Também é aplicado um limiar para distinção entre um Dissolve e um Fade. 5. Verificando duplicidade Sistema faz a verificação se o ponto apontado como transição de Dissolve já não foi apontado anteriormente como ponto de ocorrência de outro tipo de transição Estado: Atualizando Timeline Realizadas as detecções de transições, independente do tipo de detecção, o sistema entra em estado de atualização da timeline do vídeo Estado: Ajuste manual Caso os pontos de transição definidos pelo sistema não sejam aceitos pelo usuário, este poderá ajustá-los manualmente, fazendo com que o sistema entre no estado de ajuste manual das transições Estado: Repouso Após o carregamento do vídeo o usuário tem a opção de realizar a detecção de todas as transições do vídeo. Caso opte por não realizar a detecção de transições o sistema entra em estado de repouso, aguardando alguma ação do usuário.

108 CAPÍTULO 6. MODELAGEM DO SISTEMA Estado: Em edição Sistema entra no estado de edição do vídeo sempre que o usuário for realizar qualquer tipo de edição no vídeo (aplicação de efeitos, alteração de luminosidade, dentre outros) Estado: Renderizando Vídeo Sistema entra no estado de renderização de vídeo sempre que o usuário solicitar a renderização de um novo vídeo, seja ele editado ou não.

109 Capítulo 7 RESULTADOS ESPERADOS Nesta Seção são demonstradas algumas imagens que representam os resultados finais esperados. A Figura 7.1, representa a ação do sistema em resposta da inserção de um novo vídeo pelo editor, oferecendo a opção de detectar as transições naquele momento (pressionando OK ) ou somente posteriormente (pressionando Cancel ). Se a opção de escolha for o Cancel, o sistema não fará a detecção das transições, e a área de trabalho do editor será aberta com alguns elementos faltantes. O editor poderá a qualquer momento desejar que as transições sejam detectadas. Para isso é feito o acesso do menu Transition e escolhendo que tipo de transição ele deseja que seja detectado. Este tipo de procedimento pode ser realizado caso o editor queira detectar somente transições do tipo corte. Este exemplo pode ser verificado na Figura 7.2. Se a opção de escolha foi o OK, o sistema realizará a detecção de todas as transições do vídeo. A partir disso, irá gerar uma lista com todas as tomadas do vídeo. O editor então, tem a possibilidade de selecionar uma das várias tomadas da lista, delimitando-as assim na timeline. Esta visão pode ser visualizada na Figura

110 CAPÍTULO 7. RESULTADOS ESPERADOS 99 Figura 7.1: Interface de abertura de um novo Vídeo. Fonte: Autor.

111 CAPÍTULO 7. RESULTADOS ESPERADOS 100 Figura 7.2: Area de trabalho sem ter as transições detectadas. Fonte: Autor.

112 CAPÍTULO 7. RESULTADOS ESPERADOS 101 Figura 7.3: Area de trabalho com as transições detectadas. Fonte: Autor.

113 Capítulo 8 RESULTADOS OBTIDOS Nesta seção serão apresentados os resultados obtidos com a utilização do M-FIT para realizar a detecção de transições em alguns vídeos e também sua interface final. 8.1 Resultados obtidos: Interface A Figura 8.1 mostra a tela que será exibida assim que o sistema for inicializado. Nota-se ainda, que as funções de detecção (marcadas por círculos vermelhos) ficam desabilitadas enquanto não houver um vídeo carregado no sistema, assim como a lista para aplicação de efeitos. A Figura 8.2 mostra o sistema com um vídeo já carregado. É possível observar que ao carregar um vídeo, a lista com as propriedades do vídeo é automaticamente carregada, assim como a sua timeline. Na Figura 8.4 pode ser observada a tela do sistema após o processo de detecção das transições. Nota-se que cada transição é marcada com uma linha vertical na timeline e que para cada tipo de transição há uma cor diferente. Ao clicar na timeline, a tomada é automaticamente marcada por uma linha que vai da transição inicial até sua transição final. 8.2 Resultados obtidos: Detecção Visto que para cada tipo de transição, foi adotada uma metodologia diferente, esta seção apresentará os resultados obtidos para cada tipo de detecção separadamente, seguido 102

114 CAPÍTULO 8. RESULTADOS OBTIDOS 103 Figura 8.1: Tela inicial do sistema. Fonte: Autor.

115 CAPÍTULO 8. RESULTADOS OBTIDOS 104 Figura 8.2: Tela do sistema após carregamento de um vídeo. Fonte: Autor.

116 CAPÍTULO 8. RESULTADOS OBTIDOS 105 Figura 8.3: Tela do sistema detectando transições. Fonte: Autor.

117 CAPÍTULO 8. RESULTADOS OBTIDOS 106 Figura 8.4: Tela do sistema após processo de detecção de transições. Fonte: Autor.

118 CAPÍTULO 8. RESULTADOS OBTIDOS 107 Figura 8.5: Tela do sistema rendeziando o vídeo. Fonte: Autor.

119 CAPÍTULO 8. RESULTADOS OBTIDOS 108 (a) (b) Figura 8.6: Tela do sistema antes (a) e depois (b) da aplicação de um efeito. Fonte: Autor. dos resultados obtidos com a detecção de todos os tipos de transição. Para todos os tipos de transições foram utilizados os seguintes vídeos: Teste.avi O vídeo Teste foi criado pela equipe com o intuito de gerar um vídeo onde todas as transições sejam perfeitas, sem nenhum tipo de ruído ou caso atípico. Batman.avi Vídeo com o trailer do filme: Batman - O Cavaleiro das Trevas. Ironman.avi Vídeo com o trailer do filme: Homem de Ferro (Iron Man). A métrica utilizada para medir a qualidade dos resultados é baseada em Recall (revocação ou abrangência) e Precisão tendo como parâmetros os seguintes dados: TP - True Positive: Pontos do vídeo em que há ocorrência de transição e foram detectados pelo sistema; FP - Falso Positivo: Pontos do vídeo em que não há ocorrência de transição, porém foram detectados pelo sistema como pontos de transição; TN - True Negativo: Pontos do vídeo em que não há ocorrência de transição e não foram detectados pelo sistema;

120 CAPÍTULO 8. RESULTADOS OBTIDOS 109 FN - Falso Negativo: Pontos do vídeo em que há ocorrência de transição, porém não foram detectados pelo sistema. O conceito de Precisão é baseado na quantidade de respostas positivas e verdadeiras dentro de um universo de respostas retornadas por uma pesquisa, neste trabalho a Precisão representa quantas de todas as detecções realizadas pelo sistema apontam pontos do vídeo em que realmente exista uma transição ([CARDOSO, ]). Seu cálculo é dado por ([MAKHOUL et al., 1999]): T P (T P + F P ) (8.1) Desta forma, é possível observar que quanto maior a taxa de TP e mais baixa a taxa de FP, maior será a Precisão. O conceito de Recall é baseado na capacidade do sistema detectar transições, levando em consideração todas as transições presente no vídeo, ou seja, quantas de todas as transições presentes no vídeo o sistema conseguiu detectar ([CARDOSO, ]). Seu cálculo é dado por ([MAKHOUL et al., 1999]): T P (T P + F N) (8.2) Desta maneira é possível concluir que quanto maior a taxa de TP e menor a taxa de FN, maior o Recall. Tais métricas foram utilizadas por serem comumente empregadas como medição para métodos de detecção de transições, podendo ser observado em [FANG et al., 2006], [GUIMARAES et al., 2004], [GUIMARAES et al., 2003], [NGO et al., 1999] e [SIMOES, 2004] Estes conceitos podem ser melhor entendidos em [CARDOSO, ] e [MAKHOUL et al., 1999] Resultados obtidos: Detecção - Cortes Neste tópico serão apresentados os resultados obtidos nos vídeos propostos.

121 CAPÍTULO 8. RESULTADOS OBTIDOS Vídeo em análise: Batman.avi Número de frames: 3859 Número de cortes: 48 Número de não cortes: 3811 A Figura 8.7 mostra o Ritmo Visual gerado para o vídeo em análise. Notase que onde há a ocorrência de cortes é observada uma mudança brusca nos padrões da imagem. A partir destes pontos (C1 - C10), pode-se observar que há a formação de bordas (pontos B1 - B10) quando é aplicado o filtro de Canny sobre o Ritmo Visual (figura 8.8). Figura 8.7: Ritmo Visual do vídeo Batman.avi. Fonte: Autor. Figura 8.8: Ritmo Visual filtrado com o operador de Canny utilizando limiares T min = 100 e T max = 200. Fonte: Autor. Em resumo, os resultados obtidos para a detecção de cortes com esta metodologia foram os seguintes:

122 CAPÍTULO 8. RESULTADOS OBTIDOS 111 Tabela 8.1: Transições do tipo Corte encontradas pelo sistema no vídeo Batman.avi. Frame Validade Distância do ponto 1011 ok 1 frame 1896 ok ok 1 frame 1967 ok ok 1 frame 2134 falhou 2156 falhou 2244 falhou 2245 ok falhou 2309 ok 1 frame 2322 ok ok ok 1 frame 2540 ok 1 frame 2747 ok ok 1 frame 2879 ok 1 frame 2892 ok 1 frame 2908 ok falhou ok 1 frame 2965 ok 1 frame 1. Total de detecções: True positivos: Falsos positivos: 5 4. True negativos: Falsos negativos: 30 Onde Total de detecções representa o número de pontos apontados pelo sistema como locais de ocorrência de cortes, True Positivos representa os pontos detectados

123 CAPÍTULO 8. RESULTADOS OBTIDOS 112 pelo sistema em que realmente existe um corte e Falsos Positivos representa os pontos detectados pelo sistema em que não havia um corte. Nota-se pela Tabela 8.1 que das 23 transições detectadas pelo sistema, apenas 5 não são cortes, estes certamente são pontos em que há objetos de cena que causaram grande alteração no padrão da imagem, devido a uma movimentação ou aproximação da câmera. Além disso, é possível observar que o ponto da ocorrência da transição apontado pelo sistema é bastante preciso, variando em, no máximo, 1 framedo ponto exato da transição. Apesar do sistema ter detectado um número abaixo do número total de cortes presentes no vídeo, pode-se dizer que os resultados foram satisfatórios ao analisar os resultados em função da Precisão do sistema, visto que a Taxa de Precisão foi de 78,26%. Por outro lado, os resultados não apresentaram resultados tão satisfatórios quando a análise foi feita em função do Recall do sistema, onde seu valor ficou em 37,50%. É importante ressaltar que para a aplicação do filtro de Canny, o valor do limiar mínimo utilizado foi T min = 100 e o limiar máximo T max = 200, e para filtrar as bordas verticais e detectar somente aquelas que realmente forem um corte, foi utilizado um limiar que corresponde a 45% da altura do frame. Estes valores de limiar foram definidos com base em testes realizados no decorrer deste trabalho, como pode ser observado na Figura 8.8. Figura 8.9: Ritmo Visual filtrado com o operador de Canny utilizando limiares T min = 20 e T max = 40. Fonte: Autor. Percebe-se que a quantidade de bordas detectadas na Figura 8.9 é consideravelmente maior do que a quantidade de bordas detectadas na Figura 8.8. Isto se deve ao fato de que o limiar mínimo utilizado na Figura 8.9 foi T min = 20 e T max = 40, desta forma, qualquer pixel com luminância maior que 40 será imediatamente aceito como borda, o que

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

Manual Processamento de Imagem. João L. Vilaça

Manual Processamento de Imagem. João L. Vilaça Manual Processamento de Imagem João L. Vilaça Versão 1.0 31/1/2014 Índice 1. Sistema de eixo e movimentos possíveis do Drone... 3 2. Imagem... 3 3. Espaços de cor... 4 4.1 RGB... 5 4.2HSV... 5 4.3 GRAY...

Leia mais

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha Filtragem As técnicas de filtragem são transformações da imagem "pixel" a "pixel", que dependem do nível de cinza de um determinado "pixel" e do valor dos níveis de cinza dos "pixels" vizinhos, na imagem

Leia mais

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis Transformada de Hough Cleber Pivetta Gustavo Mantovani Felipe Zottis A Transformada de Hough foi desenvolvida por Paul Hough em 1962 e patenteada pela IBM. Originalmente, foi elaborada para detectar características

Leia mais

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP Caio Augusto de Queiroz Souza caioaugusto@msn.com Éric Fleming Bonilha eric@digifort.com.br Gilson Torres Dias gilson@maempec.com.br Luciano

Leia mais

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Universidade Federal do Rio de Janeiro - IM/DCC & NCE Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Tratamento da Imagem - Filtros Antonio G. Thomé thome@nce.ufrj.br Sala AEP/033 Sumário 2 Conceito de de Filtragem Filtros

Leia mais

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS André Zuconelli 1 ; Manassés Ribeiro 2 1. Aluno do Curso Técnico em Informática, turma 2010, Instituto Federal Catarinense, Câmpus Videira, andre_zuconelli@hotmail.com

Leia mais

Atividade: matrizes e imagens digitais

Atividade: matrizes e imagens digitais Atividade: matrizes e imagens digitais Aluno(a): Turma: Professor(a): Parte 01 MÓDULO: MATRIZES E IMAGENS BINÁRIAS 1 2 3 4 5 6 7 8 Indique, na tabela abaixo, as respostas dos 8 desafios do Jogo dos Índices

Leia mais

Guia de qualidade de cores

Guia de qualidade de cores Página 1 de 5 Guia de qualidade de cores O Guia de qualidade de cores ajuda você a entender como as operações disponíveis na impressora podem ser usadas para ajustar e personalizar a saída colorida. Menu

Leia mais

Formatos de Imagem PNG. Universidade Federal de Minas Gerais. Bruno Xavier da Silva. Guilherme de Castro Leite. Leonel Fonseca Ivo

Formatos de Imagem PNG. Universidade Federal de Minas Gerais. Bruno Xavier da Silva. Guilherme de Castro Leite. Leonel Fonseca Ivo Universidade Federal de Minas Gerais Formatos de Imagem PNG Bruno Xavier da Silva Guilherme de Castro Leite Leonel Fonseca Ivo Matheus Silva Vilela Rafael Avelar Alves Belém Belo Horizonte, 5 de maio de

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO DEPARTAMENTO DE INFORMÁTICA PÓS GRADUAÇÃO EM INFORMÁTICA

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO DEPARTAMENTO DE INFORMÁTICA PÓS GRADUAÇÃO EM INFORMÁTICA PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO DEPARTAMENTO DE INFORMÁTICA PÓS GRADUAÇÃO EM INFORMÁTICA INF2608 FUNDAMENTOS DE COMPUTAÇÃO GRÁFICA RELATÓRIO: IMAGENS SÍSMICAS VISUALIZAÇÃO E DETECÇÃO

Leia mais

Cores em Computação Gráfica

Cores em Computação Gráfica Cores em Computação Gráfica Uso de cores permite melhorar a legibilidade da informação, possibilita gerar imagens realistas, focar atenção do observador, passar emoções e muito mais. Colorimetria Conjunto

Leia mais

2.1.2 Definição Matemática de Imagem

2.1.2 Definição Matemática de Imagem Capítulo 2 Fundamentação Teórica Este capítulo descreve os fundamentos e as etapas do processamento digital de imagens. 2.1 Fundamentos para Processamento Digital de Imagens Esta seção apresenta as propriedades

Leia mais

Capítulo II Imagem Digital

Capítulo II Imagem Digital Capítulo II Imagem Digital Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra Resumo 1. Formação de uma imagem 2. Representação digital de uma imagem 3. Cor 4. Histogramas 5. Ruído

Leia mais

Figura 01: Aplicações do Filtro Espacial Passa-Baixa.

Figura 01: Aplicações do Filtro Espacial Passa-Baixa. 791 IMPLEMENTAÇÃO DE TÉCNICAS DE PRÉ-PROCESSAMENTO E PROCESSAMENTO DE IMAGENS PARA RADIOGRAFIAS CARPAIS Rafael Lima Alves 1 ; Michele Fúlvia Angelo 2 Bolsista PROBIC, Graduando em Engenharia de Computação,

Leia mais

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV Bruno Alberto Soares OLIVEIRA 1,3 ; Servílio Souza de ASSIS 1,3,4 ; Izadora Aparecida RAMOS 1,3,4 ; Marlon MARCON 2,3 1 Estudante

Leia mais

Redução de imagem no domínio espacial

Redução de imagem no domínio espacial Faculdade de Engenharia da Universidade do Porto Licenciatura em Engenharia Electrotécnica e de Computadores 5º Ano, 1º Semestre Televisão Digital - 2002/2003 Redução de imagem no domínio espacial Armando

Leia mais

PROF. DR. JACQUES FACON

PROF. DR. JACQUES FACON PUCPR- Pontifícia Universidade Católica Do Paraná PPGIA- Programa de Pós-Graduação Em Informática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO DUPLA DE ISTVÁN CSEKE PROJETO DE UMA RÁPIDA SEGMENTAÇÃO PARA

Leia mais

Imagem digital. Unidade 3

Imagem digital. Unidade 3 Imagem digital Unidade 3 Objectivos Reconhecer o potencial comunicativo/ expressivo das imagens; Reconhecer as potencialidades narrativas de uma imagem; A criação de sentido nas associações de imagens

Leia mais

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS

UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS UFGD FCA PROF. OMAR DANIEL BLOCO 4 PROCESSAMENTO DE IMAGENS Executar as principais técnicas utilizadas em processamento de imagens, como contraste, leitura de pixels, transformação IHS, operações aritméticas

Leia mais

Operações Algébricas e Lógicas. Guillermo Cámara-Chávez

Operações Algébricas e Lógicas. Guillermo Cámara-Chávez Operações Algébricas e Lógicas Guillermo Cámara-Chávez Operações Aritméticas São aquelas que produzem uma imagem que é a soma, diferença, produto ou quociente pixel a pixel Operações Aritméticas Fig A

Leia mais

Fotografia digital. Aspectos técnicos

Fotografia digital. Aspectos técnicos Fotografia digital Aspectos técnicos Captura CCD (Charge Coupled Device) CMOS (Complementary Metal OxideSemiconductor) Conversão de luz em cargas elétricas Equilíbrio entre abertura do diafragma e velocidade

Leia mais

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 Deliverable: D1 - Clip-art Simplification Tool Task: T1 - Clip-art Simplification

Leia mais

3 Classificação. 3.1. Resumo do algoritmo proposto

3 Classificação. 3.1. Resumo do algoritmo proposto 3 Classificação Este capítulo apresenta primeiramente o algoritmo proposto para a classificação de áudio codificado em MPEG-1 Layer 2 em detalhes. Em seguida, são analisadas as inovações apresentadas.

Leia mais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF TUTORIAL DE DIGITALIZAÇÃO DIRIGIDO AO USO DO PROCESSO ELETRÔNICO Adaptado do tutorial elaborado pelo colega MAICON FALCÃO, operador de computador da subseção judiciária de Rio Grande. Introdução Este tutorial

Leia mais

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Prof Fabrízzio Alphonsus A M N Soares 2012 Capítulo 2 Fundamentos da Imagem Digital Definição de Imagem: Uma imagem

Leia mais

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41 Filtragem Espacial (Processamento Digital de Imagens) 1 / 41 Filtragem Espacial Filtragem espacial é uma das principais ferramentas usadas em uma grande variedade de aplicações; A palavra filtro foi emprestada

Leia mais

PARA A CONSTRUÇÃO DOS GRÁFICOS

PARA A CONSTRUÇÃO DOS GRÁFICOS 1 PARA A CONSTRUÇÃO DOS GRÁFICOS Apresentamos dois materiais feitos por estudantes do Curso de Psicologia da Faculdade de Ciências Humanas e da Saúde para construção de gráficos. As instruções das páginas

Leia mais

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Processamento de Imagem Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Visão Computacional Não existe um consenso entre os autores sobre o correto escopo do processamento de imagens, a

Leia mais

Luz e Cor. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Luz e Cor. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Luz e Cor Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Luz Cromática Em termos perceptivos avaliamos a luz cromática pelas seguintes quantidades: 1. Matiz (Hue): distingue entre as várias cores

Leia mais

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto.

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto. Respostas Estudo Dirigido do Capítulo 12 Image Segmentation" 1 Com suas palavras explique quais os problemas que podem ocorrer em uma segmentação global baseada em níveis de cinza da imagem. Que técnicas

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS VINICIUS DA SILVEIRA SEGALIN FLORIANÓPOLIS OUTUBRO/2013 Sumário

Leia mais

Trabalho 2 Fundamentos de computação Gráfica

Trabalho 2 Fundamentos de computação Gráfica Trabalho 2 Fundamentos de computação Gráfica Processamento de Imagens Aluno: Renato Deris Prado Tópicos: 1- Programa em QT e C++ 2- Efeitos de processamento de imagens 1- Programa em QT e C++ Para o trabalho

Leia mais

Profa. Dra. Soraia Raupp Musse Thanks to Prof. Dr. Cláudio Rosito Jung

Profa. Dra. Soraia Raupp Musse Thanks to Prof. Dr. Cláudio Rosito Jung Introdução ao Processamento de Imagens Profa. Dra. Soraia Raupp Musse Thanks to Prof. Dr. Cláudio Rosito Jung Introdução Processamento de Imagens: processamento de sinais bidimensionais (ou n-dimensionais).

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Informática Aplicada a Radiologia

Informática Aplicada a Radiologia Informática Aplicada a Radiologia Apostila: Imagem Digital parte I Prof. Rubens Freire Rosa Imagem na forma digital A representação de Imagens na forma digital nos permite capturar, armazenar e processar

Leia mais

Thales Trigo. Formatos de arquivos digitais

Thales Trigo. Formatos de arquivos digitais Esse artigo sobre Formatos de Arquivos Digitais é parte da Tese de Doutoramento do autor apresentada para a obtenção do titulo de Doutor em Engenharia Elétrica pela Escola Politécnica da USP. Thales Trigo

Leia mais

Cálculo de volume de objetos utilizando câmeras RGB-D

Cálculo de volume de objetos utilizando câmeras RGB-D Cálculo de volume de objetos utilizando câmeras RGB-D Servílio Souza de ASSIS 1,3,4 ; Izadora Aparecida RAMOS 1,3,4 ; Bruno Alberto Soares OLIVEIRA 1,3 ; Marlon MARCON 2,3 1 Estudante de Engenharia de

Leia mais

Imagens Digitais Tratamento de Imagens

Imagens Digitais Tratamento de Imagens Imagens Digitais Imagens de Bitmap Bitmap = Mapa de Bits ou Imagens Raster São as imagens formadas por pixels em oposição às imagens vetoriais. Imagens de Bitmap Imagem de bitmap Imagem vetorial Imagens

Leia mais

Noções Básicas de Excel página 1 de 19

Noções Básicas de Excel página 1 de 19 Noções Básicas de Excel página 1 de 19 Conhecendo a tela do Excel. A BARRA DE FÓRMULAS exibe o conteúdo de cada célula (local) da planilha. Nela podemos inserir e alterar nomes, datas, fórmulas, funções.

Leia mais

Shutter: É o tempo de exposição da foto. Pode ser fixo ou automático.

Shutter: É o tempo de exposição da foto. Pode ser fixo ou automático. TREINAMENTO ITSCAM Ajustes de imagens Shutter: É o tempo de exposição da foto. Pode ser fixo ou automático. Ganho: Amplificador analógico conectado ao sensor de imagem. Pode ser fixo ou automático. Auto

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

Leia mais

Capítulo 5 Filtragem de Imagens

Capítulo 5 Filtragem de Imagens Capítulo 5 Filtragem de Imagens Capítulo 5 5.1. Filtragem no Domínio da Frequência 5.2. Filtragem no Domínio Espacial 2 Objetivo Melhorar a qualidade das imagens através da: ampliação do seu contraste;

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD )LOWURJDXVVLDQR O filtro Gaussiano pode ser usado como um filtro SDVVDEDL[D. Usando a função Gaussiana para obter valores de uma máscara a ser definida digitalmente. O Filtro de Gaussiano em 1-D tem a

Leia mais

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão)

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão) Tópico: Vídeo (Codificação + Compressão) Um vídeo pode ser considerado como uma seqüência de imagens estáticas (quadros). Cada um desses quadros pode ser codificado usando as mesmas técnicas empregadas

Leia mais

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PLACAS DE EXPANSÃO... 3 PLACAS DE VÍDEO... 3 Conectores de Vídeo... 4 PLACAS DE SOM... 6 Canais de Áudio... 7 Resolução das Placas de Som...

Leia mais

Projeção ortográfica da figura plana

Projeção ortográfica da figura plana A U L A Projeção ortográfica da figura plana Introdução As formas de um objeto representado em perspectiva isométrica apresentam certa deformação, isto é, não são mostradas em verdadeira grandeza, apesar

Leia mais

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial Manual de Conversão para PDF Manual de Conversão para PDF 3 Conversão para PDF Microsoft Office 2003 Instalação da impressora PDF O pacote de aplicativo Office 2003 não possui nativamente o recurso de

Leia mais

QUESTÃO 1 ALTERNATIVA B

QUESTÃO 1 ALTERNATIVA B 1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Processamento Digital de Imagens Israel Andrade Esquef a Márcio Portes de Albuquerque b Marcelo Portes de Albuquerque b a Universidade Estadual do Norte Fluminense - UENF b Centro Brasileiro de Pesquisas

Leia mais

Treinamento em BrOffice.org Calc

Treinamento em BrOffice.org Calc Treinamento em BrOffice.org Calc 1 Índice I. INTRODUÇÃO...3 II. NÚMEROS, TEXTOS, FÓRMULAS E DATAS...4 III. MENUS BÁSICOS...5 1. Arquivo...5 2. Editar...5 3. Formatar...5 IV. FÓRMULAS...8 V. REFERÊNCIAS

Leia mais

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens IntroduçãoàTecnologiaWeb HTML HyperTextMarkupLanguage XHTML extensiblehypertextmarkuplanguage FormatosdeImagens ProfªMSc.ElizabeteMunzlinger ProfªMSc.ElizabeteMunzlinger FormatosdeImagens Índice 1 FORMATOS

Leia mais

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de 2009. Computação Gráfica

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de 2009. Computação Gráfica COMPUTAÇÃO GRÁFICA Rasterização e Preenchimento de Regiões Objetivos Conhecer os fundamentos da construção de linhas e círculos Conhecer o modelo scan-line modelo de sementes para preenchimento de polígonos

Leia mais

29/08/2011. Radiologia Digital. Princípios Físicos da Imagem Digital 1. Mapeamento não-linear. Unidade de Aprendizagem Radiológica

29/08/2011. Radiologia Digital. Princípios Físicos da Imagem Digital 1. Mapeamento não-linear. Unidade de Aprendizagem Radiológica Mapeamento não-linear Radiologia Digital Unidade de Aprendizagem Radiológica Princípios Físicos da Imagem Digital 1 Professor Paulo Christakis 1 2 Sistema CAD Diagnóstico auxiliado por computador ( computer-aided

Leia mais

SEGEMENTAÇÃO DE IMAGENS. Nielsen Castelo Damasceno

SEGEMENTAÇÃO DE IMAGENS. Nielsen Castelo Damasceno SEGEMENTAÇÃO DE IMAGENS Nielsen Castelo Damasceno Segmentação Segmentação Representação e descrição Préprocessamento Problema Aquisição de imagem Base do conhecimento Reconhecimento e interpretação Resultado

Leia mais

O Software Face Match

O Software Face Match Apêndice A O Software Face Match A.1 - Desenvolvimento do software para a extração de características de imagens de faces humanas: Face Match. Para dar suporte à proposta do trabalho de mestrado iniciou-se

Leia mais

4 Experimentos Computacionais

4 Experimentos Computacionais 33 4 Experimentos Computacionais O programa desenvolvido neste trabalho foi todo implementado na linguagem de programação C/C++. Dentre as bibliotecas utilizadas, destacamos: o OpenCV [23], para processamento

Leia mais

5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI

5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI 68 5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI O software VPI foi originalmente introduzido em 1998 e era conhecido como PDA (Photonic Design Automation). O VPI atualmente agrega os

Leia mais

APLICATIVOS GRÁFICOS (AULA 4)

APLICATIVOS GRÁFICOS (AULA 4) Prof. Breno Leonardo G. de M. Araújo brenod123@gmail.com http://blog.brenoleonardo.com.br APLICATIVOS GRÁFICOS (AULA 4) 1 Classificação da imagem Em relação à sua origem pode-se classificar uma imagem,

Leia mais

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16 Informática Prof. Macêdo Firmino Representação da Informação Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16 Introdução Estamos acostumados a pensar nos computadores como mecanismos complexos,

Leia mais

A limiarização é uma das abordagens mais importantes de segmentação de imagens. A limiarização é um caso específico de segmentação.

A limiarização é uma das abordagens mais importantes de segmentação de imagens. A limiarização é um caso específico de segmentação. Limiarização A limiarização é uma das abordagens mais importantes de segmentação de imagens. A limiarização é um caso específico de segmentação. O princípio da limiarização consiste em separar as regiões

Leia mais

Aula 2 Aquisição de Imagens

Aula 2 Aquisição de Imagens Processamento Digital de Imagens Aula 2 Aquisição de Imagens Prof. Dr. Marcelo Andrade da Costa Vieira mvieira@sc.usp.br EESC/USP Fundamentos de Imagens Digitais Ocorre a formação de uma imagem quando

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH UNIVERSIDADE FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA ELÉTRICA DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH Projeto para a matéria TE130 Projeto de Circuitos Integrados Digitais, ministrada pelo

Leia mais

Conforme explicado em 2.4.3, o sinal de voz x(n) às vezes é alterado com a adição de ruído r(n), resultando num sinal corrompido y(n).

Conforme explicado em 2.4.3, o sinal de voz x(n) às vezes é alterado com a adição de ruído r(n), resultando num sinal corrompido y(n). 4 Wavelet Denoising O capítulo 3 abordou a questão do ruído durante a extração dos atributos as técnicas do SSCH e do PNCC, por exemplo, extraem com mais robustez a informação da voz a partir de um sinal

Leia mais

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS Obter uma imagem temática a partir de métodos de classificação de imagens multi- espectrais 1. CLASSIFICAÇÃO POR PIXEL é o processo de extração

Leia mais

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 CURITIBA 2015 2 SUMÁRIO INTRODUÇÃO AO MICROSOFT POWERPOINT 2007... 3 JANELA PRINCIPAL... 3 1 - BOTÃO OFFICE... 4 2 - FERRAMENTAS DE ACESSO

Leia mais

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira Universidade Federal de Alagoas Instituto de Matemática Imagem Prof. Thales Vieira 2014 O que é uma imagem digital? Imagem no universo físico Imagem no universo matemático Representação de uma imagem Codificação

Leia mais

Copiright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total desta aula só é permitida através de autorização por escrito de

Copiright de todos artigos, textos, desenhos e lições. A reprodução parcial ou total desta aula só é permitida através de autorização por escrito de 1 No início do nível intermediário, falamos brevemente sobre a perspectiva e a aplicação de alguns dos seus elementos, como o ponto de fuga, a linha de horizonte e a relação dos objetos com o olho do observador.

Leia mais

Visão humana. Guillermo Cámara-Chávez

Visão humana. Guillermo Cámara-Chávez Visão humana Guillermo Cámara-Chávez Cor e visão humana Como uma imagem é formada? Uma imagem é formada a partir da quantidade de luz refletida ou emitida pelo objeto observado. Cor e visão humana Cor

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

Aula 03 PowerPoint 2007

Aula 03 PowerPoint 2007 Aula 03 PowerPoint 2007 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Abrindo o PowerPoint; 2. Conhecendo a Tela do PowerPoint; 3. Criando uma Nova

Leia mais

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA TREINAMENTO EM INFORMÁTICA MÓDULO V

UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA TREINAMENTO EM INFORMÁTICA MÓDULO V UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO E PLANEJAMENTO DEPARTAMENTO DE INFORMÁTICA TREINAMENTO EM INFORMÁTICA MÓDULO V MACAPÁ-AP 2011 UNIVERSIDADE FEDERAL DO AMAPÁ PRÓ REITORIA DE ADMINISTRAÇÃO

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

REPRESENTAÇÃO DA IMAGEM DIGITAL

REPRESENTAÇÃO DA IMAGEM DIGITAL REPRESENTAÇÃO DA IMAGEM DIGITAL Representação da imagem Uma imagem é uma função de intensidade luminosa bidimensional f(x,y) que combina uma fonte de iluminação e a reflexão ou absorção de energia a partir

Leia mais

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem Universidade Federal de Santa Maria - UFSM Departamento de Eletrônica e Computação - DELC Introdução à Informática Prof. Cesar Tadeu Pozzer Julho de 2006 Imagens Uma imagem é representada por uma matriz

Leia mais

AULA 6 - Operações Espaciais

AULA 6 - Operações Espaciais 6.1 AULA 6 - Operações Espaciais Essa aula descreve as operações espaciais disponíveis no TerraView. Antes de iniciar sua descrição é necessário importar alguns dados que serão usados nos exemplos. Exercício:

Leia mais

Localização dos inquéritos de rua para Arroios e Gulbenkian

Localização dos inquéritos de rua para Arroios e Gulbenkian Project IAAPE Pedestrian Accessibility and Attractiveness Indicators: Tool for Urban Walkability Assessment and Management Working Paper No. WP-8 Localização dos inquéritos de rua para Arroios e Gulbenkian

Leia mais

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço FILTRAGEM ESPACIAL Filtros Digitais no domínio do espaço Definição Também conhecidos como operadores locais ou filtros locais Combinam a intensidade de um certo número de piels, para gerar a intensidade

Leia mais

5 Extraindo listas de produtos em sites de comércio eletrônico

5 Extraindo listas de produtos em sites de comércio eletrônico 5 Extraindo listas de produtos em sites de comércio eletrônico Existem diversos trabalhos direcionadas à detecção de listas e tabelas na literatura como (Liu et. al., 2003, Tengli et. al., 2004, Krüpl

Leia mais

CorelDRAW 11 1. UM PROGRAMA DE DESIGN

CorelDRAW 11 1. UM PROGRAMA DE DESIGN CorelDRAW 11 1. UM PROGRAMA DE DESIGN Com o Corel você vai trabalhar com um dos aplicativos mais usados no campo do design e da auto-edição, já que permite operar com dois tipos de gráficos (vetoriais

Leia mais

ÍNDICE... 2 INTRODUÇÃO... 4

ÍNDICE... 2 INTRODUÇÃO... 4 Mic crosoft Excel 201 0 ÍNDICE ÍNDICE... 2 INTRODUÇÃO... 4 Interface... 4 Guias de Planilha... 5 Movimentação na planilha... 6 Entrada de textos e números... 7 Congelando painéis... 8 Comentários nas Células...

Leia mais

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS CURITIBA 2014 2 Conteúdo Definição:... 2 Detalhando a tela:... 4 BARRA DE FERRAMENTAS DESENHO... 4 PREENCHIMENTOS... 5 RÉGUAS E GUIAS...

Leia mais

Elementos de linguagem: A cor

Elementos de linguagem: A cor Profa Ana Rezende Ago /set 2006 A todo o momento recebemos informações através dos sentidos, da visão, do olfacto,... em cada cem informações que recebemos oitenta são visuais dessas, quarenta são cromáticas,

Leia mais

Processamento de Imagem. Prof. Herondino

Processamento de Imagem. Prof. Herondino Processamento de Imagem Prof. Herondino Sensoriamento Remoto Para o Canada Centre for Remote Sensing - CCRS (2010), o sensoriamento remoto é a ciência (e em certa medida, a arte) de aquisição de informações

Leia mais

Entendendo o Astigmatismo. Introdução. Lentes especiais sem astigmatismo MAS450/854. 9 de março de 2003

Entendendo o Astigmatismo. Introdução. Lentes especiais sem astigmatismo MAS450/854. 9 de março de 2003 Entendendo o Astigmatismo MAS450/854 Primavera 2003 9 de março de 2003 Introdução Lentes especiais sem astigmatismo Lentes cilíndricas cruzadas com astigmatismo o Foco horizontal o Foco vertical o Plano

Leia mais

VCA Treinamento em Algoritmo

VCA Treinamento em Algoritmo Conteúdo VCA Treinamento em Algoritmo VCA Treinamento em Algoritmo Conteúdo Algoritmos Rastreador (tracker) Monitoramento Objeto Abandonado/Removido Pessoas Calibração Classificação Linha de contagem Auto

Leia mais

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS André Zuconelli¹, Manassés Ribeiro² Instituto Federal de Educação, Ciência e Tecnologia Catarinense - Campus Videira Rodovia SC, Km 5

Leia mais

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Introdução ao Microsoft Windows 7 O Windows 7 é um sistema operacional desenvolvido pela Microsoft. Visualmente o Windows 7 possui uma interface muito intuitiva, facilitando a experiência individual do

Leia mais

GED CRIAÇÃO DE NOVO DOCUMENTO E OBJETO AUTOMÁTICO

GED CRIAÇÃO DE NOVO DOCUMENTO E OBJETO AUTOMÁTICO GED CRIAÇÃO DE NOVO DOCUMENTO E OBJETO AUTOMÁTICO Documentos Atualmente, com a crescente disponibilidade de documentos em mídias digitais é fundamental a aplicação de técnicas de GED (Gerenciamento Eletrônico

Leia mais

Workshop Processing: Visualização de Dados e Interatividade

Workshop Processing: Visualização de Dados e Interatividade Workshop Processing: Visualização de Dados e Interatividade Imagens Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Escola de Belas Artes Claudio Esperança (PESC/COPPE/UFRJ)

Leia mais

Manual de Aplicação da Marca do BRB

Manual de Aplicação da Marca do BRB Manual de Aplicação da Marca do BRB Banco de Brasília Superintendência de Marketing Dezembro de 2011 Redução Para garantir que a marca do BRB esteja sempre legível e não apresente ruídos, foi estabelecido

Leia mais