Você está na página 1de 4

Primeiro Trabalho de Implementacao:

Simulacao de uma aplicacao de reconhecimento de padr es em imagens o Computacao Concorrente (MAB-117) Prof. Silvana Rossetto DCC/IM/UFRJ 29 de setembro de 2011
1

1. Denicao do problema
Um problema comum em aplicacoes de processamento de imagens consiste na identi cacao de determinados padr es dentro das imagens (por ex., a identicacao da placa de o um veculo fotografado por c meras de monitoramento). As imagens s o normalmente a a armazenadas como matrizes, onde cada c lula da matriz representa um pixel da imagem. e Quando a imagem e colorida, ou possui v rios nveis de cinza, os valores dos pixels a podem variar dentro de uma faixa determinada. Neste trabalho, vamos simular uma aplicacao de identicacao de padr es em o imagens. Os dados de entrada ser o matrizes (que representar o as imagens) e a sadas a a ser o as pr prias matrizes com os padr es identicados e destacados. Os valores dos a o o pixels/c lulas das matrizes de entrada estar o dentro do intervalo [0 5] e as matrizes e a ser o quadradas e de ordem par (ex., 4X4, 20X20). Garante-se que os padr es procurados a o nunca se sobrep em dentro da imagem. o O processamento das imagens/matrizes consistir de tr s etapas: a e 1. reducao dos valores dos pixels da imagem para o intervalo [0 1] 2. busca e identicacao dos padr es procurados o 3. reforco dos padr es encontrados na imagem o A primeira etapa ser dividida em duas fases. Na primeira fase, todos os pixels a com valores no intervalo [4 5] ser o convertidos para 1, os pixels no intervalo [0 1] a ser o convertidos para 0, e os pixels no intervalo [2 3] ser o mantidos. Na segunda fase, a a os pixels no intervalo [2 3] ser o convertidos para 0 ou 1 de acordo com as seguintes a regras: se o pixel tem valor 2, ele deve ser convertido para 1 se todos os seus vizinhos forem 1, e para 0 caso contr rio; a se o pixel tem valor 3, ele deve ser convertido para 1 se ao menos dois dos seus vizinhos forem 1, e para 0 caso contr rio. a A segunda etapa realiza a parte principal do processamento, que e a localizacao dos padr es dentro da imagem. Os padr es procurados (de um a cinco padr es) dever o o o o a ser fornecidos pelo usu rio como dado de entrada da aplicacao. Um padr o ser descria a a to por um vetor de coordenads (x,y) representando as c lulas que constituem o padr o e a (os padr es s o sempre formados por c lulas adjacentes). Como exemplo, um padr o o a e a no formato de L, constitudo de quatro pixels/c lulas ser descrito da seguinte forma: e a [(x, y), (x, y 1), (x, y 2), (x + 1, y 2)], sendo a c lula (x, y) a primeira c lula do e e padr o. a A terceira etapa consitir no reforco dos valores dos pixels pertencentes aos padr es a o encontrados na imagem. Os valores desses pixels/c lulas dever o ser alterados para 6. e a

2. Implementacao do problema
Duas vers es da aplicacao dever o ser implementadas: uma sequencial e outra concoro a rente (permitindo um n mero vari vel de threads). u a Para a solucao concorrente, a matriz de entrada ser dividida em quadrantes (sub a matrizes quadradas de ordem par). Cada thread da aplicacao car respons vel por a a realizar todas as etapas do processamento em um ou mais quadrantes da matriz. Um padr o poder iniciar em um quadrante e terminar em outro. Nesse caso, a thread do a a quadrante inicial do padr o e quem dever identic -lo e poder consultar os valores dos a a a a pixels dos quadrantes vizinhos. Os programas dever o ser codicados na linguagem C e usar a biblioteca Pthreads a para criacao e ger ncia das threads. e 2.1. Entrada A entrada conter um caso de teste que dever ser lido do dispositivo de entrada padr o a a a (teclado) ou arquivo. A primeira linha da entrada conter quatro n meros inteiros N a u (4 N 1000), M (2 M 250), P (1 P 5), D (3 D 10) representando respectivamente a dimens o da matriz de entrada, a dimens o dos quadrantes, o n mero a a u de padr es que dever o ser procurados e o n mero de c lulas em cada padr o. Todos os o a u e a padr es de um caso de teste ter o o mesmo n mero de c lulas. As P linhas seguintes da o a u e entrada descrever o os padr es procurados no seguinte formato: a o (0, 0) (x1 , y1 ) ... (xD1 , yD1 ) As N linhas seguintes conter o a matriz de entrada. a Exemplo de entrada 8 4 2 (0,0) (0,0) 1 3 4 0 3 4 0 3 4 0 3 3 0 3 1 0 2 5 0 3 1 0 3 0 4 (+0,-1) (+1,+0) 2 0 0 1 2 0 0 1 5 0 0 0 2 0 0 1 5 1 0 1 5 5 0 1 1 0 0 1 0 0 0 1 (+0,-2) (+1,-2) (+1,+1) (+2,+0) 1 1 0 1 1 1 1 1

2.2. Sada O programa dever imprimir na sada padr o as tr s matrizes geradas: duas matrizes a a e de reducao das cores e a matriz nal com os padr es reforcados, e a lista de c lulas o e iniciais dos padr es encontrados (assumindo como c lula (0,0) a c lula do canto inferior o e e esquerdo). Exemplo de sada

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3 3 3 3 3 2 3 3 1 1 1 1 1 0 0 0 1 6 6 6 1 0 0 0

1 1 1 3 0 1 0 0 1 1 1 1 0 1 0 0 6 6 6 6 0 6 0 0

2 2 1 2 1 1 0 0 0 0 1 0 1 1 0 0 0 0 6 0 6 6 0 0

0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 6 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(2,2) (1,6) (2,7) 2.3. Aplicacao de teste Para avaliar as solucoes propostas, uma aplicacao de teste dever ser implementada. Essa a aplicacao cuidar da entrada dos dados (via teclado ou via arquivo), da criacao das threads a da aplicacao e da exibicao dos resultados do processamento. Os tempos de execucao de cada solucao (sequencial e concorrente) dever o ser medidos e comparados para um a conjunto de casos de teste que ser o fornecidos pelo professor. a

a 3. Artefatos que dever o ser entregues


Documentacao do projeto das solucoes: esboco das estruturas de dados e l gica o dos algoritmos da aplicacao (executados por cada thread). Essa documentacao dever conter informacoes sucientes para o professor compreender a solucao a proposta, sem precisar recorrer ao c digo fonte do programa. o C digo fonte: vers es sequencial e concorrente, e aplicacao de teste; o o Descricao dos testes realizados e resultados obtidos.

4. Data de entrega e avaliacao


O trabalho poder ser feito em dupla e dever ser entregue at o dia 20 de outubro. a a e Os seguintes itens ser o avaliados no trabalho: a

Documentacao e projeto das solucoes: 2 pontos Modularidade, organizacao e documentacao do c digo fonte: 3 pontos o Compilacao e execucao correta das duas vers es da solucao: 4 pontos o Descricao e coment rio sobre os testes realizados: 1 ponto a

Os alunos integrantes da equipe poder o ser chamados pelo professor para aprea sentar/explicar o trabalho.

Você também pode gostar