Este é o código-fonte para o primeiro projeto de AED 2023-2024.
-
image8bit.c
- implementação do módulo (a COMPLETAR) -
image8bit.h
- interface do módulo -
instrumentation.[ch]
- módulo para contagens de operações e medição de tempos -
imageTest.c
- programa de teste simples -
imageTool.c
- programa de teste mais versátil -
Makefile
- regras para compilar e testar usandomake
-
README.md
- estas informações que está a ler -
Design-by-Contract.md
- explicação sobre metodologia DbC, seguida neste projeto.
Execute:
make pgm
- para descarregar imagens para pastapgm/
make setup
- para descarregar imagens para testes emtest/
make
- Compila e gera os programas de teste.make clean
- Limpa ficheiros objeto e executáveis.
Sugere-se o desenvolvimento progressivo pela seguinte ordem:
-
Completar
ImageCreate
eImageDestroy
. -
Compilar os programas correndo
make
e testar comvalgrind ./imageTool test/original.pgm save out.pgm`
Isto chama
ImageLoad
, que chamaImageCreate
e depoisImageSave
eImageDestroy
. Verificar que toda a memória foi libertada. -
Completar a função interna
G
, que é usada porImageSetPixel
eImageGePixel
. -
Completar
ImageStats
. Se usarImageGePixel
, permitirá testarG
. Testar com./imageTool test/original.pgm info
. -
Completar
ImageNegative
,ImageThreshold
,ImageBrighten
. -
Completar
ImageValidRect
. -
Completar
ImageMirror
,ImageRotate
. -
Completar
ImageCrop
,ImagePaste
eImageBlend
. -
Completar
ImageMatchSubImage
eImageLocateSubImage
. -
Completar
ImageBlur
.
Pode executar make test1
, make test2
, etc.
para fazer testes simples a muitas destas funções.
Mas faça outros testes que considere adequados.
Dada a natureza do trabalho, poderá ser necessário atualizar repositório base (upstream) deste projeto. Se isso acontecer, deverá atualizar o seu repositório com os seguintes comandos:
# Fazer esta apenas 1 vez:
git remote add upstream https://github.com/detiuaveiro/image8bit-pub.git
git fetch upstream
git checkout main
git merge --allow-unrelated-histories upstream/main
# (Resolver quaisquer conflitos que surjam...)
git commit