PUCRS - Faculdade de Informatica
Laboratorio de Programacao IV, semestre 2004/1.
Prof. Eduardo Augusto Bezerra

Trabalho 1 - Detecção de Contorno



O trabalho consiste na implementação de um programa para realizar a detecção de bordas (ou contornos) em uma imagem. O programa deverá ser escrito em assembly para o 80x86 e compilado utilizando o nasm para execução em ambiente Linux. O programa deverá ser capaz de manipular, no mínimo, imagens em 256 níveis de cinza, com dimensões 512 * 485. Opcionalmente, poderá ser implementado um módulo para parametrização do programa de forma a possibilitar o processamento de imagens diversas. O programa deverá ler o arquivo contendo a imagem no formato binário, e gerar como saída um novo arquivo contendo a imagem processada. A seguir estão listadas algumas dicas e ferramentas de apoio:

  • contorno3.cpp - programa em C++, para ambiente Windows, que implementa o algoritmo para detecção de bordas solicitado.
  • contorno3.exe - executavel gerado a partir do contorno3.cpp para ambiente Windows.
  • FILEIT.EXE - programa executavel para ambiente Windows para converter imagens no formato BMP para BIN e vice-versa. Por exemplo, usar fileit teste.bmp teste.bin para converter uma imagem BMP para o formato de entrada no algoritmo implementado pelo programa contorno3.cpp
  • lenna.bmp - Imagem exemplo no formato bitmap (BMP) a ser processada (256 níveis de cinza, 512 * 485). Esta e' a imagem mais utilizada no mundo para teste de algoritmos de compressao. Antes de utilizar como entrada para o programa contorno3.exe, executar FILEIT lenna.bmp teste.bin (contorno3.exe recebe como entrada teste.bin)
  • teste.bin - Imagem exemplo convertida para binário (um byte por tom de cinza) pelo programa FILEIT.EXE.

O trabalho poderá ser realizado por grupos de até três alunos, porém a avaliação é individual. Cada grupo deverá preparar um relatório descrevendo as estratégias utilizadas para implementar o programa. No dia da apresentação serão realizadas perguntas sobre o código implementado, quando o aluno deverá demonstrar também possuir o conhecimento necessário para desenvolvimento de programas em assembly para a arquitetura alvo (80x86). A avaliação será realizada de acordo com a ordem da lista de chamada, e um aluno por vez. Os programas deverao ser enviados por email para eduardob@inf.pucrs.br ate' o inicio da aula do dia da apresentacao, bem como instrucoes para compilacao e uso. Programas nao recebidos por email ate' a data/hora limite nao serao avaliados. Data da apresentação: 02/04/2004