Iremos colocar aqui todos os nossos projetos de IC
Primeiro projeto onde manipulamos texto, audio e imagens
Relatorio
Todos os ficheiros levam argumentos para poderem ser executados corretamente
Boost 1.78 (https://www.boost.org/)
Incluida na pasta lib, nã havendo assim necessidade de qualquer instalação.
Criar um ficheiro CMake.txt com este codigo no diretorio do codigo a correr
include(CTest)
enable_testing()
find_package( OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DRIS} )
add_executable(IC-Projects FILENAME.cpp)
target_link_libraries( ICProjects ${OpenCV_LIBS})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
Substitur o FILENAME pelo nome do ficheiro a executar
Começar sempre com
cd build\Debug
- Ex2:
IC-Projects.exe <TextFile> <OutputFile>
- Ex3:
IC-Projects.exe <InputAudio>
- Ex4:
IC-Projects.exe <ImageFile>
- Ex5:
IC-Projects.exe <TextFile> <HistogramFile>
- Ex6:
IC-Projects.exe <AudioFile>
- Ex7:
IC-Projects.exe <ImageFile>
- Ex8:
IC-Projects.exe <AudioFile> <QuantizationFactor>
- Ex9:
IC-Projects.exe <ImageFile> <DivisionFactor>
- Ex10:
IC-Projects.exe <Reference AudioFile> <Quantized AudioFile> <QuantizationFactor>
- Ex11:
IC-Projects.exe <ImageFile> <ImageFile>
Projeto onde condificamos imagens e audio com base no algoritmo de Golomb
Relatorio
Todos os ficheiros levam argumentos para poderem ser executados corretamente
Criar um ficheiro CMake.txt com este codigo no diretorio do codigo a correr
cmake_minimum_required(VERSION 3.0.0)
project(Project2 VERSION 0.1.0)
include(CTest)
enable_testing()
include_directories(${CMAKE_SOURCE_DIR}/src)
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/test)
#AudioFile.h and Boost 1.78
include_directories(${CMAKE_SOURCE_DIR}/lib)
#OpenCV
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(Project2 src/main.cpp src/AudioEncoder.cpp src/AudioEncoder.h src/AudioPredictor.cpp src/AudioPredictor.h src/ImagePredictor.h src/ImagePredictor.cpp src/ImageEncoder.h src/ImageEncoder.cpp)
target_link_libraries( Project2 ${OpenCV_LIBS} )
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
- Audio Encoding:
<exe> audio encode <input_file_path> <output_file_path>
- Audio Decoding:
<exe> audio decode <input_file_path> <output_file_path>
- Image Encoding:
<exe> image encode <image_path> <output_file_path> <encoding_format> <predictor> <mode> <quantetization_factor>
Se enconding_format = "lossy" deve escolher um valor para a quantetization_factor.
Se predictor = "linear" deve escolher um valor, de 1 a 7 para o mode.
Ambos o mode e quantetization_factor têm valores predefinidos (1 e 0 respetivamente).
Para gerar a documentação:
cd Project2
Doxyfile
Foram desenvolvidos N executaveis:
fcm <language> <context_order> <smoothing_parameter>
Permite o treino de modelos de contexto finito para ficheiros de texto.
De forma a gerar um modelo (de probabilidades) é usado um contador das diversas ocorrencias (contexto, carater), no entanto, ambas usam a mesma estrutura genérica internamente:
using MODEL = std::map<std::string, std::map<std::string , T>>;
com um datapath:
Ficheiro de Texto ---> Contador (ocurrencias) [FCModelFactory.h] ---> Modelo (probabilidades) [FCModel.h]
O executavel tem de ser executado com os parametros acima mencionados pois são necessarios para criar um contador inicial, no entato o programa permite fazer o load de um ficheiro com um contador já pre-preeenchido para continuar o treino no entanto este substituirá o contador inicial.
O programa aresenta ainda um menu interno que permite operações sobre contadores/modelos:
- ler um ficheiro de texto para atualizar os contadores
- guardar o estado atual dos contadores;
- fazer o load do estado dos contadores aprtir de um ficheiro
- criar um modelo de probabilidadeds e guarda-lo num ficheiro (apresenta a entropia do modelo);
- load de um modelo de probabilidades e calcular a entropia.
- language: a lingua dos ficheiros de texto que serão usados para treinar o modelo, serve apenas como label e portanto é deixado a descriçao do utilzador a correção entre o parametro e os ficheiros efetivamente usados.
- context_order: número de caracteres que serão usados para contexto.
- smoothing_parameter: smoothin na fórmula de Lapalce de forma a lidar com a existencia de probabilidades nulas.