#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include "image.h" /* calcule la distance au carré entre 2 pixels */ int dist2(pixel p1, pixel p2) { int dr = p1.r - p2.r; int dv = p1.v - p2.v; int db = p1.b - p2.b; return dr * dr + dv * dv + db * db; } /* renvoie l'indice du centroide le plus proche de p */ int classer(pixel p, pixel* centroides, int k){ // A FAIRE return 0; } /* applique l'algorithme de kmeans - pix : les npix à clusteriser - classes : pour indiquer les classes finales des pixels - centroides : tableau des k centroides */ void kmeans(pixel* pix, int* classes, int npix, pixel* centroides, int k){ // initialisation des classes // A FAIRE // initialisation des centroides // A FAIRE // Algo Kmeans bool changed = true; while (changed) { printf("Etape kmeans\n"); changed = false; // A FAIRE } } int main() { int k = 4; printf("Lecture de l'image\n"); Image* im0 = importerImage("johnR.ppm"); printf("Modification de l'image\n"); for (int i = 140; i < 180; i += 1) { for (int j = 262; j < 302; j += 1) { pixel p = {.r = 255, .v = 0, .b = 0}; setPix(im0, i, j, p); } } printf("Ecriture de l'image\n"); exporterImage(im0, "johnR_avec_un_nez_rouge.ppm"); detruireImage(im0); return 0; }