Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

NilsMT/imac-wk-prog-algo-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

Superbe repo où on fait joujou avec des images

Arborescence

ℹ️ le code de chaque exo et leurs images associées se trouve dans EXOS.md.

Je conseille également d'utilisé l'outline sur le panneau de gauche de VS Code pour naviguer dedans

📁 build            : fichiers de build (gitignored)
📁 images           : images d'input
📁 lib
   └── 📁 sil       : librairie pour modifier les images
📁 output           : images d'output
📁 src
   └──  📄 main.cpp : le fichier principale
📄 README.md        : le rapport
📄 EXOS.md          : le code de chaque exercice

Rapport

L'exercice ⭐ Différence est un code qui permet d'avoir la différence entre deux images


Le résultat de l'exercice custom ⭐⭐ Animation Cercle Hachuré est due à une erreur où j'ai ajouté une valeur à la mauvaise variable.

#include <sil/sil.hpp>
#include <cmath>
#include <string>

int main()
{
    int r = 100;
    int tr = 10; // threshold
    int spf = 10; // speed per frame

    for (int a = 0; a < 500; a+=spf) {

        [...];
        //                                    👇 ICI
        for (int x{0}; x < image.width(); x += tr)
        {
            for (int y{0}; y < image.height(); ++y)
            {
                [...];
            }
        }

        [...];
    }
}

Résultat, j'ai incrémenté les x des pixels de 10 au lieu de la position (a) du cercle ce qui fait cet effet hachuré ce qui fait que le cercle ne colorie que tout les 10 x.


Pour l'exercice ⭐⭐⭐ Colorer la height map selon une image de dégradé j'ai décidé de reprendre la coloration de la height_map mais de me baser sur une image qui contient un dégradé horizontal de couleur : color_map

Qui permet de colorer les valeurs allant de 0 (couleur à gauche) à 1 (couleur à droite), ce qui donne :


Voici une comparaison du temps d'exécution entre l'exercice ⭐⭐ Filtres séparables (optimisé) et ⭐⭐⭐⭐ Convolutions (naïf) :

Taille du kernel Temps Naïf (s) Temps Optimisé (s) Efficacité
8 0.139486 0.032982 x4
16 0.507313 0.06249 x8
32 1.90005 0.109926 x19
64 7.51449 0.204911 x38
128 30.6175 0.41851 x75
256 125.253 0.830643 x151

Pour ⭐ Différence j'ai juste fait une fonction qui soustrait les canaux R,G,B, cette fonction a été utilisée dans ⭐⭐ Différence de gaussiennes.


L'exercice ⭐⭐⭐ Height map stylisée reprend ⭐⭐⭐ Colorer la height map selon une image de dégradé et utilise ⭐⭐⭐(⭐) Tramage en tant que map sur la luminosité, ce qui donne un effet texturé sur le terrain

About

IMAC1 S1

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 83.6%
  • C 16.1%
  • CMake 0.3%