<commit_before>================================================================================
Simple Image Processing Library
================================================================================

This library is the start of a very simple, basic image processing library. The
main files are all included in both the include/ and src/ directories. Under
include/ you can find the template header files that instantiate many of the
types used throughout - mainly the matrix/vector types. Under the src/ directory
you can find implementations of the I/O routines (for PGM and PPM).


================================================================================
Building the project
If you would like to build the project, it uses a CMake-based project structure.
Assuming you have CMake installed, you can run the following in a terminal:

    mkdir build && cd build
    cmake -G"Visual Studio 14 2015" ..

which will then generate all the Visual Studio-specific files and generate the
correct build targets. You can then open the project in VS.

See here: https://cmake.org/cmake/help/v3.5/manual/cmake-generators.7.html
for a list of all the generators available and you can select your specific
VS version.


================================================================================
Code Layout
There are a few modules in the source:

* io
    - Handles all I/O functionality (PPM/PGM)
* matrix
    - Handles matrix math
    - Different types like Vectors, fixed-sized and dynamic-sized matrices
* improc
    - Image processing routines
    - convert_to_grayscale(), projective_transform live here


================================================================================
Usage
The usage of the program is as described in the problem statement:

    HW1 -i inputFileName -o outputFileName [-c|{-p transformFileName N|B}]

where:

    -i: the input file name
    -o: the output file name
    -c: convert input file to grayscale (only works for .ppm files)
    -p: transformation matrix file used to transform input file
    [N/B]: Nearest neighbor interpolation/Bilinear interpolation for
           transformation


================================================================================
Bugs
Currently, some of the output files do differ (mainly those from the
output of the transformations). The output is visually the same.
<commit_msg>Updated readme some more<commit_after>================================================================================
Simple Image Processing Library
================================================================================

This library is the start of a very simple, basic image processing library. The
main files are all included in both the include/ and src/ directories. Under
include/ you can find the template header files that instantiate many of the
types used throughout - mainly the matrix/vector types. Under the src/ directory
you can find implementations of the I/O routines (for PGM and PPM).


================================================================================
Building the project
If you would like to build the project, it uses a CMake-based project structure.
Assuming you have CMake installed, you can run the following in a terminal:

    mkdir build && cd build
    cmake -G"Visual Studio 14 2015" ..

which will then generate all the Visual Studio-specific files and generate the
correct build targets. You can then open the project in VS.

See here: https://cmake.org/cmake/help/v3.5/manual/cmake-generators.7.html
for a list of all the generators available and you can select your specific
VS version.


================================================================================
Code Layout
There are a few modules in the source:

* io
    - Handles all I/O functionality (PPM/PGM)
* matrix
    - Handles matrix math
    - Different types like Vectors, fixed-sized and dynamic-sized matrices
* improc
    - Image processing routines
    - convert_to_grayscale(), projective_transform live here
* test.cpp
    - The main test driver for all the other code and routines


================================================================================
Usage
The usage of the program is as described in the problem statement:

    HW1 -i inputFileName -o outputFileName [-c|{-p transformFileName N|B}]

where:

    -i: the input file name
    -o: the output file name
    -c: convert input file to grayscale (only works for .ppm files)
    -p: transformation matrix file used to transform input file
    [N/B]: Nearest neighbor interpolation/Bilinear interpolation for
           transformation


================================================================================
Bugs
Currently, some of the output files do differ (mainly those from the
output of the transformations). The output is visually the same.

{'fraction_non_alphanumeric': 0.23933209647495363, 'fraction_numerical': 0.0041228612657184084, 'mean_word_length': 4.668224299065421, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '590340', 'n_tokens_mistral': 1131, 'n_tokens_neox': 1021, 'n_words': 549}