TP3 - Diviser pour régner
¶

A. Ridard

De l'algorithme au programme¶

Recherche (récursive)¶

Coder l'algorithme 4 du cours (diapo 15) sous la forme d'une fonction recherche(t, v, g, d).

In [ ]:
# réponse
In [ ]:
# test

Tri par fusion¶

Coder l'algorithme 6 du cours (diapo 26) sous la forme d'une fonction coupe(lst).

In [ ]:
# réponse
In [ ]:
# test

Coder l'algorithme 7 du cours (diapo 27) sous la forme d'une fonction fusion(lst1Tr, lst2Tr).

In [ ]:
# réponse
In [ ]:
# test

Coder l'algorithme 5 du cours (diapo 25) sous la forme d'une fonction triFusion(lst).

In [ ]:
# réponse
In [ ]:
# test

Rotation d'une image de 90 degrés¶

Pour manipuler une image en Python, on peut utiliser par exemple les bibliiothèques suivantes.

In [ ]:
from skimage import io
from pylab import *
import numpy as np
In [ ]:
image = io.imread('image.png')

imshow(image,cmap=cm.gray)
show()
In [ ]:
largeur, hauteur = image.shape

print("largeur :", largeur)
print("hauteur :", hauteur)

L'image est carrée et sa "dimension" est une puissance de 2.

L'idée consiste à découper l'image en quatre, à effectuer la rotation de 90 degrés pour chaque morceau, puis à les déplacer vers leur position finale.

No description has been provided for this image

Définir une fonction (récursive) rotation(im, x, y, t) qui effectue la rotation du morceau de l'image compris entre les pixels (x, y) et (x+t, y+t) où t est une puissance de 2.

Notre problème sera alors résolu avec l'appel rotation(image, 0, 0, largeur).

Remarque : cette fonction ne retourne rien, elle agit, c'est une procédure.

In [ ]:
# réponse
In [ ]:
# test

rotation(image, 0, 0, largeur)