You are not logged in.

Computer Science in 1ère

The forum to cure all your computer anxieties

#1 08-Jan-2020 20:20:42

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Proj OnJoueAvecLesImagesEtSurtoutCelleD_Ada

Voilà une proposition pour Mini-projet : manipulation d'images

8 actions possibles :
- "vers la gauche" => tourne l'image vers la gauche
- "vers la droite" => tourne l'image vers la droite
- "obscurcir" => évident
- "éclaircir" => évident
- "contours blancs" => fond de couleur avec contours blanc
- "contours noirs" => fond blanc avec contours de couleur
- "inversion" => foncé devint clair et clair devient foncé
- "" ou "(erreur/mal écrit)" => image normal

5 couleurs possibles :
- "noir" => noir et blanc
- "vert" => vert
- "rouge" => rouge
- "bleu" => bleu
- "" ou "(erreur/mal écrit)" => rose


from urllib.request import urlretrieve
import matplotlib.pyplot as plt
import easygui as eg
import math

def OnJoueAvecLesImagesEtSurtoutCelleD_Ada(url, action:str, color_choisie
:str)->None:
    """
    url:str

    action:str

        8 actions possibles :
    - "vers la gauche" => tourne l'image vers la gauche
    - "vers la droite" => tourne l'image vers la droite
    - "obscurcir" => évident
    - "éclaircir" => évident
    - "contours blancs" => fond de couleur avec contours blanc
    - "contours noirs" => fond blanc avec contours de couleur
    - "inversion" => foncé devint clair et clair devient foncé
    - "" ou "(erreur/mal écrit)" => image normal

    color_choisie:str

        5 couleurs possibles :
    - "noir" => noir et blanc
    - "vert" => vert
    - "rouge" => rouge
    - "bleu" => bleu
    - "" ou "(erreur/mal écrit)" => rose
"""
    urlretrieve(url, "image.jpg")
    image_recue = plt.imread("image.jpg").tolist()
    im = [[px[0] for px in ligne] for ligne in image_recue]
    nb_cols = len(im[0])
    nb_lignes = len(im)
   
   
    couleur = "gray" if color_choisie == "noir" else "Reds_r" if color_choisie == "rouge" else "Greens_r" if color_choisie == "vert" else "Blues_r" if color_choisie == "bleu" else "pink"

    if action == "vers la gauche":

        image = [[im[j][i] for j in range(nb_lignes)] for i in range(nb_cols)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None
       
    elif action == "vers la droite":

        image = [[im[nb_lignes -1 -j][nb_cols -1 - i] for j in range(nb_lignes)] for i in range(nb_cols)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None
       
    elif action == "obscurcir":

        image = [[im[i][j] - 100 if im[i][j] > 100 else 0 for j in range(nb_cols)] for i in range(nb_lignes)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None
       
    elif action == "éclaircir":

        image = [[im[i][j] + 100 if im[i][j] < 155 else 255 for j in range(nb_cols)] for i in range(nb_lignes)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None
       
    elif action == "inversion couleur":

        image = [[255 - im[i][j] for j in range(nb_cols)] for i in range(nb_lignes)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None
   
    elif action == "contours foncés":
        image = [[255 - int(math.sqrt( ( im[i][j*1]-im[i][j-1] )**2 + ( im[i+1][j]-im[i-1][j] )**2 )//1) for j in range(1,nb_cols-1)] for i in range(1,nb_lignes-1)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None

    elif action == "contours blancs":

        image = [[int(math.sqrt( ( im[i][j*1]-im[i][j-1] )**2 + ( im[i+1][j]-im[i-1][j] )**2 )//1) for j in range(1,nb_cols-1)] for i in range(1,nb_lignes-1)]

        plt.imshow(image, cmap = couleur)
        plt.show()
        return None

    else:

        plt.imshow(im, cmap = couleur)
        plt.show()
        return None
 
 


title = "On s'amuse avec les images"

url = eg.enterbox("Url de l'image", title)

msg = "Quelle action souhaitez vous faire ?"
choices = ["vers la gauche", "vers la droite", "obscurcir", "éclaircir", "inversion couleur", "contours blancs", "contours foncés", "rien"]
action = eg.choicebox(msg, title, choices)

msg = ""
choices = ["rouge", "vert", "bleu", "noir", "rose"]
couleur = eg.choicebox(msg, title, choices)

OnJoueAvecLesImagesEtSurtoutCelleD_Ada(url, action, couleur)

 

mis à jour, interface easygui

Last edited by Pacôme Giraudeau (09-Jan-2020 15:05:41)

Offline

#2 08-Jan-2020 22:13:10

Vader
Administrator
Registered: 05-Oct-2018
Posts: 220

Re: Proj OnJoueAvecLesImagesEtSurtoutCelleD_Ada

Pacôme Giraudeau wrote:

- "obscurcir" => évident
- "éclaircir" => évident

Pas si évident que ça....Il faut que le changement de tonalité soit uniforme. Mettre en noir les niveau inférieurs à 100 et baissser de 100 les autres est discontinu. Il faut trouver un moyen différent...non linéaire.

Offline

#3 09-Jan-2020 20:59:26

Pacôme Giraudeau
Member
Registered: 12-Sep-2019
Posts: 67

Re: Proj OnJoueAvecLesImagesEtSurtoutCelleD_Ada

Modifié : interface disponible easygui

Offline

Board footer

Powered by FluxBB