{"id":1002,"date":"2023-12-03T18:32:00","date_gmt":"2023-12-03T17:32:00","guid":{"rendered":"http:\/\/labodemaths.fr\/WordPress3\/?p=1002"},"modified":"2023-12-04T08:51:21","modified_gmt":"2023-12-04T07:51:21","slug":"snttp3-images","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/snttp3-images\/","title":{"rendered":"SNT,tp3-images"},"content":{"rendered":"\n<h2>1. Mise en place<\/h2>\n\n\n\n<ul><li>cr\u00e9er un dossier TP3_images,<\/li><li>t\u00e9l\u00e9charger et enregistrer les images suivantes dans ce dossier<\/li><\/ul>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mondrian.jpg\">Mondrian<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mondrian.jpg\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mona_Lisa.jpg\">Mona_Lisa<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mona_Lisa.jpg\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mona_lisa_reduite.jpg\">Mona_lisa_reduite<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2019\/12\/Mona_lisa_reduite.jpg\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<ul><li>ouvrir Thonny et copier-coller le code ci-dessous<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>from PIL import Image # on importe la classe Image et ses m\u00e9thodes de la\n# biblioth\u00e8que Pillow alias PIL\n\nimage = Image.open(\"Mona_lisa.jpg\") # Chargement d'une image avec PIL\n# image est d\u00e9clar\u00e9e comme un objet de la classe Image de PIL\n\ndef taille(img):\n    return img.size # m\u00e9thode propre \u00e0 la classe Image\n\ndef format(img):\n    return img.format # m\u00e9thode propre \u00e0 la classe Image\n\ndef lire_pixel(img,x,y):\n    return img.getpixel((x,y)) # m\u00e9thode propre \u00e0 la classe Image\n\ndef changer_pixel(img,x,y,couleur):\n    image=img\n    image.putpixel((x,y),couleur) # m\u00e9thode propre \u00e0 la classe Image\n    return image\n\ndef afficher(img):\n    img.show()\n\n# premieres fonctions de traitement de l'image\n\ndef filtre1(img,e):\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    for y in range(h):\n        for x in range(l):\n            c = lire_pixel(image_retour,x,y)\n            rouge=c&#91;0]\n            vert=c&#91;1]\n            bleu=c&#91;2]\n            nouvelle_c=(rouge+e,vert+e,bleu+e)\n            image_retour=changer_pixel(image_retour,x,y,nouvelle_c)\n    afficher(image_retour)\n    return image_retour\n\ndef canal_R(img):\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    for y in range(h):\n        for x in range(l):\n            c = lire_pixel(image_retour,x,y)\n            rouge=c&#91;0]\n            vert=c&#91;1]\n            bleu=c&#91;2]\n            nouvelle_c=(rouge,0,0)\n            image_retour=changer_pixel(image_retour,x,y,nouvelle_c)\n    afficher(image_retour)\n    return image_retour\n\ndef enregistrer(img,nom):\n    img.save(nom+\".jpg\")\n    img.save(nom+\".png\")\n<\/code><\/pre>\n\n\n\n<ul><li>enregistrer votre fichier avec le nom TP3 dans votre dossier,<\/li><li>ex\u00e9cuter votre programme.<\/li><\/ul>\n\n\n\n<h3>Exercice 1<\/h3>\n\n\n\n<p>Tester les commandes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt;image1=filtre1(image,10)\n&gt;&gt;&gt;image2=filtre1(image,-10)<\/code><\/pre>\n\n\n\n<p>Que remarquez-vous ? Tester la fonction filtre1 avec d&rsquo;autres valeurs pour le 2\u00b0 param\u00e8tres.<\/p>\n\n\n\n<h3>Exercice 2<\/h3>\n\n\n\n<p>Tester la commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt;imageR=canal_R(image)<\/code><\/pre>\n\n\n\n<p>Enregistrer l&rsquo;image obtenue avec la commande :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt;enregistrer(imageR,\"Mona_Lisa_R\")<\/code><\/pre>\n\n\n\n<ul><li>En vous inspirant de la fonction  canal_R(), \u00e9crire une fonction canal_V() et une fonction canal_B() permettant d&rsquo;extraire respectivement le canal vert et le canal bleu d&rsquo;une image,<\/li><li>enregistrer aux noms \u00ab\u00a0Mona_Lisa_V\u00a0\u00bb et \u00ab\u00a0Mona_Lisa_B\u00a0\u00bb vos deux images obtenues \u00e0 l&rsquo;aide de ses fonctions.<\/li><li>Tester vos 3 fonctions avec l&rsquo;image Mondrian.<\/li><\/ul>\n\n\n\n<h3>Exercice 3<\/h3>\n\n\n\n<p>Pour convertir une image couleur RVB en noir et blanc, il suffit de remplacer les valeurs des 3 canaux R,V et B par leur moyenne.<br>En vous inspirant des fonctions pr\u00e9c\u00e9dentes, cr\u00e9er une fonction noir_blanc() qui permet de convertir une image couleur en noir et blanc ou plus exactement en d\u00e9grad\u00e9 de gris.<\/p>\n\n\n\n<h3>Exercice 4<\/h3>\n\n\n\n<p>Ajouter \u00e0 votre programme les fonctions suivantes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def symetrie(img):\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    for y in range(h):\n        for x in range(l):\n            c = lire_pixel(image,x,y)\n            image_retour=changer_pixel(image_retour,l-1-x,y,c)\n    afficher(image_retour)\n    return image_retour\n\ndef symetrie_1(img):\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    for y in range(h):\n        for x in range(l):\n            c = lire_pixel(image_retour,x,y)\n            image_retour=changer_pixel(image_retour,l-1-x,y,c)\n    afficher(image_retour)\n    return image_retour\n\ndef symetrie_2(img):\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    for y in range(h):\n        for x in range(l):\n            c = lire_pixel(image_retour,l-1-x,y)\n            image_retour=changer_pixel(image_retour,x,y,c)\n    afficher(image_retour)\n    return image_retour\n\ndef photomaton(img):\n    '''\n    ne fonctionne qu'avec une image de dimensions paires\n    '''\n    image_retour=img.copy()\n    (l, h) = taille(image)\n    l1=int(l\/2)\n    h1=int(h\/2)\n    for x in range(0,l-1,2):\n        for y in range(0,h-1,2):\n            pixel1 = lire_pixel(img,x,y)\n            pixel2 = lire_pixel(img,x+1,y)\n            pixel3 = lire_pixel(img,x,y+1)\n            pixel4 = lire_pixel(img,x+1,y+1)\n            x1=int(x\/2)\n            y1=int(y\/2)\n            image_retour=changer_pixel(image_retour,x1,y1,pixel1)\n            image_retour=changer_pixel(image_retour,x1+l1,y1,pixel2)\n            image_retour=changer_pixel(image_retour,x1,y1+h1,pixel3)\n            image_retour=changer_pixel(image_retour,x1+l1,y1+h1,pixel4)\n    afficher(image_retour)\n    return image_retour\n\ndef boucle_photomaton(img,n):\n    image_retour=img.copy()\n    for i in range(n):\n        image_retour=photomaton(image_retour)\n    return image_retour<\/code><\/pre>\n\n\n\n<p>&#8211; Apr\u00e8s ex\u00e9cution, tester les commandes symetrie(image), symetrie_1(image) et symetrie_2(image).<br>&#8211; tester les commandes photomaton(image) et boucle_photomaton(image,8),<br>&#8211; modifier le programme pour qu&rsquo;il t\u00e9l\u00e9charge en image l&rsquo;image de Mona Lisa r\u00e9duite. Tester \u00e0 nouveau les commandes photomaton(image) et boucle_photomaton(image,8),<\/p>\n\n\n\n<p>Pour en savoir plus : <br><a href=\"https:\/\/images.math.cnrs.fr\/Le-traitement-numerique-des-images.html\">https:\/\/images.math.cnrs.fr\/Le-traitement-numerique-des-images.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Mise en place cr\u00e9er un dossier TP3_images, t\u00e9l\u00e9charger et enregistrer les images suivantes dans&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/labodemaths.fr\/WordPress3\/snttp3-images\/\">Read the post<span class=\"screen-reader-text\">SNT,tp3-images<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":1009,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[56,1],"tags":[],"_links":{"self":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1002"}],"collection":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/comments?post=1002"}],"version-history":[{"count":11,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1002\/revisions"}],"predecessor-version":[{"id":2346,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1002\/revisions\/2346"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media\/1009"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=1002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=1002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=1002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}