<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>www.mesmaths.com</title>
	<link>http://www.mesmaths.com/</link>
	<description>site pr&#233;sentant les cours de math&#233;matiques de Florent Girod, professeur de math&#233;matiques &#224; l'Externat Notre Dame &#224; Grenoble</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>www.mesmaths.com</title>
		<url>http://www.mesmaths.com/local/cache-vignettes/L144xH58/siteon0-1ef1e.jpg</url>
		<link>http://www.mesmaths.com/</link>
		<height>58</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>6-des id&#233;es</title>
		<link>https://www.mesmaths.com/spip.php?article423</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article423</guid>
		<dc:date>2023-06-20T11:44:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1952 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/pays3.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 86.9 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/pays3-ee6e4.jpg&quot; width='500' height='374' alt=&quot;JPEG - 86.9 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1953 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/pays2.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 113.6 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/pays2-81026.jpg&quot; width='500' height='374' alt=&quot;JPEG - 113.6 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1954 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/pays1.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 164.6 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/pays1-163b9.jpg&quot; width='500' height='374' alt=&quot;JPEG - 164.6 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;span class='spip_document_1951 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/pays4.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 169.2 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/pays4-73450.jpg&quot; width='500' height='374' alt=&quot;JPEG - 169.2 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1950 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/pays5.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 118.5 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/pays5-d9b6a.jpg&quot; width='500' height='374' alt=&quot;JPEG - 118.5 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1949 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/image1_image.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 139.5 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH374/image1_image-f59ac.jpg&quot; width='500' height='374' alt=&quot;JPEG - 139.5 ko&quot; style='height:374px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>3-projet</title>
		<link>https://www.mesmaths.com/spip.php?article415</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article415</guid>
		<dc:date>2023-06-20T11:44:36Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>A vous de jouer maintenant en r&#233;alisant un programme de traitement d'image. des id&#233;es transformer en niveaux de gris (en faisant la moyenne des valeurs de R, V et B) ; cr&#233;er une image en s&#233;pia (faire une recherche) ; m&#233;langer deux images ; &#171; pixelliser &#187; une image ; d&#233;terminer les contours d'une figure ; restaurer une image d&#233;grad&#233;e ; autre chose ? ?

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;A vous de jouer maintenant en r&#233;alisant un programme de traitement d'image.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;des id&#233;es&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; transformer en niveaux de gris (en faisant la moyenne des valeurs de R, V et B) ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;cr&#233;er une image en s&#233;pia&lt;/strong&gt; (faire une recherche) ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;m&#233;langer deux images&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;&#171; pixelliser &#187;&lt;/strong&gt; une image ;&lt;/li&gt;&lt;li&gt; d&#233;terminer les contours d'une figure ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;restaurer&lt;/strong&gt; une image d&#233;grad&#233;e ;&lt;/li&gt;&lt;li&gt; autre chose ? ?&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>2-programmation</title>
		<link>https://www.mesmaths.com/spip.php?article414</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article414</guid>
		<dc:date>2023-06-20T11:44:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>Programmes en python comprendre Lire ce programme (les commentaires en particulier) pour comprendre son fonctionnement. Conseil : le copier/coller dans un &#233;diteur de programme python (Edupython ou Pyzo), il sera plus lisible. &quot;&quot;&quot;IMPORTANT : l'image import&#233;e devra se trouver dans le m&#234;me fichier que ce programme. L'image modifi&#233;e sera elle aussi enregistr&#233;e dans ce dossier&quot;&quot;&quot; #importation obligatoire pour utiliser la fonction analysant le code RGB pixel par (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Programmes en python&lt;/h3&gt;
&lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;comprendre&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Lire ce programme (&lt;strong&gt;&lt;font color=blue&gt;les commentaires en particulier&lt;font color=black&gt;&lt;/strong&gt;) pour &lt;strong&gt;&lt;font color=blue&gt;comprendre&lt;font color=black&gt;&lt;/strong&gt; son fonctionnement.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Conseil&lt;/strong&gt; : le copier/coller dans un &#233;diteur de programme python (Edupython ou Pyzo), il sera plus lisible.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;&quot;&quot;IMPORTANT : l'image import&#233;e devra se trouver dans le m&#234;me fichier que ce programme. L'image modifi&#233;e sera elle aussi enregistr&#233;e dans ce dossier&quot;&quot;&quot;&lt;br /&gt; &lt;br /&gt; #importation obligatoire pour utiliser la fonction analysant le code RGB pixel par pixel d'une image&lt;br /&gt; from PIL import Image&lt;br /&gt; &lt;br /&gt; #nom de l'image &#224; saisir A MODIFIER&lt;br /&gt; imageSource=Image.open(&quot;paysage.jpg&quot;)&lt;br /&gt; #prend en compte la largeur de l'image et sa hauteur&lt;br /&gt; largeur,hauteur=imageSource.size&lt;br /&gt; #d&#233;finie une nouvelle image vierge de m&#234;me dimension&lt;br /&gt; imageTraitee=Image.new(&quot;RGB&quot;,(largeur,hauteur))&lt;br /&gt; &lt;br /&gt; # y varie de 0 a&#768; (hauteur-1) et x varie de 0 a&#768; (largeur-1)&lt;br /&gt; for y in range(hauteur): &lt;br /&gt; for x in range(largeur):&lt;br /&gt; &lt;br /&gt; p=imageSource.getpixel((x,y)) # p est la valeur RGB du pixel de l'image de d&#233;part&lt;br /&gt; r=p[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v=p[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b=p[2]#troisi&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; &lt;br /&gt; ##on applique la transformation : PARTIE A MODIFIER SELON LA TRANSFORMATION VOULUE&lt;br /&gt; #le niveau de gris est la moyenne des valeurs de r, g, b ; attention, ce doit &#234;tre un nombre entier&lt;br /&gt; g=int((r+v+b)/3)&lt;br /&gt; #on affecte directement les trois valeurs dans la liste (tuple) p ce qui correspond aux valeurs r, g, b de la nouvelle image&lt;br /&gt; p=(g,g,g)&lt;br /&gt; ###&lt;br /&gt; # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;er&lt;br /&gt; imageTraitee.putpixel((x,y),p) &lt;br /&gt; #on nomme la nouvelle image pour l'enregistrer&lt;br /&gt; imageTraitee.save(&quot;paysage_gris.jpg&quot;)&lt;br /&gt; #on visulaise cette nouvelle image&lt;br /&gt; imageTraitee.show()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;observer&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;faire tourner ce programme et visualiser l'effet obtenu&lt;/p&gt; &lt;p&gt;&lt;strong&gt;remarque &lt;/strong&gt; : le temps de compilation peut &#234;tre long (de l'ordre de la dizaine de secondes) si votre image est 'lourde'.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1895 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/paysage.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 92.3 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH377/paysage-b47ac.jpg&quot; width='500' height='377' alt=&quot;JPEG - 92.3 ko&quot; style='height:377px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1897 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/gris.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 85.8 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH373/gris-83aba.jpg&quot; width='500' height='373' alt=&quot;JPEG - 85.8 ko&quot; style='height:373px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;center&gt;image originale&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;image apr&#232;s traitement&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;agir&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;A vous de cr&#233;er un programme pour obtenir le n&#233;gatif d'une image&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;&quot;&quot;IMPORTANT : l'image import&#233;e devra se trouver dans le m&#234;me fichier que ce programme. L'image modifi&#233;e sera elle aussi enregistr&#233;e dans ce dossier&quot;&quot;&quot;&lt;br /&gt; &lt;br /&gt; #importation obligatoire pour utiliser la fonction analysant le code RGB pixel par pixel d'une image&lt;br /&gt; from PIL import Image&lt;br /&gt; &lt;br /&gt; #nom de l'image &#224; saisir A MODIFIER&lt;br /&gt; imageSource=Image.open(&quot;paysage.jpg&quot;)&lt;br /&gt; #prend en compte la largeur de l'image et sa hauteur&lt;br /&gt; largeur,hauteur=imageSource.size&lt;br /&gt; #d&#233;finie une nouvelle image vierge de m&#234;me dimension&lt;br /&gt; imageTraitee=Image.new(&quot;RGB&quot;,(largeur,hauteur))&lt;br /&gt; &lt;br /&gt; # y varie de 0 a&#768; (hauteur-1) et x varie de 0 a&#768; (largeur-1)&lt;br /&gt; for y in range(hauteur): &lt;br /&gt; for x in range(largeur):&lt;br /&gt; &lt;br /&gt; p=imageSource.getpixel((x,y)) # p est la valeur RGB du pixel de l'image de d&#233;part&lt;br /&gt; r=p[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v=p[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b=p[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; &lt;br /&gt; ##on applique la transformation : PARTIE A MODIFIER SELON LA TRANSFORMATION VOULUE&lt;br /&gt; #le n&#233;gatif d'une image s'obtient en appliquant la fonction tonale x-&gt;255-x&lt;br /&gt; r=255-r&lt;br /&gt; v=255-v&lt;br /&gt; b=255-b&lt;br /&gt; #on affecte directement les trois valeurs dans la liste (tuple) p ce qui correspond aux valeurs r, g, b de la nouvelle image&lt;br /&gt; p=(r,v,b)&lt;br /&gt; ###&lt;br /&gt; # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;er&lt;br /&gt; imageTraitee.putpixel((x,y),p) &lt;br /&gt; #on nomme la nouvelle image pour l'enregistrer&lt;br /&gt; imageTraitee.save(&quot;paysage_neg.jpg&quot;)&lt;br /&gt; #on visulaise cette nouvelle image&lt;br /&gt; imageTraitee.show()&lt;/code&gt;&lt;/div&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1895 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/paysage.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 92.3 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH377/paysage-b47ac.jpg&quot; width='500' height='377' alt=&quot;JPEG - 92.3 ko&quot; style='height:377px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1932 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/paysage_neg.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 1.6 Mo&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH375/paysage_neg-17efc.jpg&quot; width='500' height='375' alt=&quot;JPEG - 1.6 Mo&quot; style='height:375px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;center&gt;image originale&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;n&#233;gatif&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>0-plan de travail</title>
		<link>http://www.mesmaths.com/spip.php?article413</link>
		<guid isPermaLink="true">http://www.mesmaths.com/spip.php?article413</guid>
		<dc:date>2023-06-20T11:43:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>1&#232;re s&#233;ance activit&#233;s de d&#233;couverte : sur la notion de document num&#233;rique la cr&#233;ation de couleurs la notion de pixels les traitements d'image les plus classiques et les fonctions tonales associ&#233;es &lt;p&gt; &lt;/p&gt;2&#232;me s&#233;ance lecture de programmes : compr&#233;hension d'un programme comment&#233; effet de ce programme en terme de traitement d'image premier programme (&#224; partir d'un programme donn&#233;) recherche de fonctions tonales associ&#233;es &#224; une modification activit&#233; sur la notion de contour d'une image (...)

-
&lt;a href="http://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;1&#232;re s&#233;ance&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; activit&#233;s de d&#233;couverte : &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; sur la notion de document num&#233;rique&lt;/li&gt;&lt;li&gt; la cr&#233;ation de couleurs&lt;/li&gt;&lt;li&gt; la notion de pixels&lt;/li&gt;&lt;li&gt; les traitements d'image les plus classiques et les fonctions tonales associ&#233;es&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;2&#232;me s&#233;ance&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; lecture de programmes :&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; compr&#233;hension d'un programme comment&#233;&lt;/li&gt;&lt;li&gt; effet de ce programme en terme de traitement d'image&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; premier programme (&#224; partir d'un programme donn&#233;)&lt;/li&gt;&lt;li&gt; recherche de fonctions tonales associ&#233;es &#224; une modification&lt;/li&gt;&lt;/ul&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; activit&#233; sur la notion de contour d'une image&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;3&#232;me et 4&#232;me s&#233;ance :&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; projet :&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; d&#233;finition&lt;/li&gt;&lt;li&gt; programmation&lt;/li&gt;&lt;li&gt; r&#233;alisation pratique&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; &#233;valuation (finalisation du projet et QCM ?)&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;QCM d'entra&#238;nement&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/ezbu81fj0a483a6/AMC_Num_ent.pdf?dl=0&quot; class='spip_out' rel='external'&gt;questions&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/cy84kzfqvpzizga/AMC_Num_ent_cor.pdf?dl=0&quot; class='spip_out' rel='external'&gt;corrig&#233;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1895 spip_documents spip_documents_center'&gt; &lt;a href=&quot;http://www.mesmaths.com/IMG/jpg/paysage.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 92.3 ko&quot;&gt; &lt;img src=&quot;http://www.mesmaths.com/local/cache-vignettes/L500xH377/paysage-b47ac.jpg&quot; width='500' height='377' alt=&quot;JPEG - 92.3 ko&quot; style='height:377px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1897 spip_documents spip_documents_center'&gt; &lt;a href=&quot;http://www.mesmaths.com/IMG/jpg/gris.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 85.8 ko&quot;&gt; &lt;img src=&quot;http://www.mesmaths.com/local/cache-vignettes/L500xH373/gris-83aba.jpg&quot; width='500' height='373' alt=&quot;JPEG - 85.8 ko&quot; style='height:373px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;center&gt;image originale&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;niveaux de gris&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1898 spip_documents spip_documents_center'&gt; &lt;a href=&quot;http://www.mesmaths.com/IMG/jpg/seuillage-2.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 92.6 ko&quot;&gt; &lt;img src=&quot;http://www.mesmaths.com/local/cache-vignettes/L500xH349/seuillage-2-48dbb.jpg&quot; width='500' height='349' alt=&quot;JPEG - 92.6 ko&quot; style='height:349px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1896 spip_documents spip_documents_center'&gt; &lt;a href=&quot;http://www.mesmaths.com/IMG/jpg/filtre_b.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 32.9 ko&quot;&gt; &lt;img src=&quot;http://www.mesmaths.com/local/cache-vignettes/L500xH375/filtre_b-bf831.jpg&quot; width='500' height='375' alt=&quot;JPEG - 32.9 ko&quot; style='height:375px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;center&gt;effet de seuillage&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;filtre bleu&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>1-des images et des couleurs</title>
		<link>https://www.mesmaths.com/spip.php?article402</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article402</guid>
		<dc:date>2023-06-20T11:43:29Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>des images et des couleurs des questions 3 questions : Que se passe-t-il quand on zoome sur un document num&#233;rique (par rapport &#224; sa qualit&#233;) ? Une imprimante couleurs doit-elle obligatoirement avoir une cartouche noire pour imprimer la couleur noire ? Quels sont les effets possibles avec un logiciel du type photoshop, gimp ... ? &lt;p&gt; &lt;/p&gt; des &#233;l&#233;ments th&#233;oriques Apr&#232;s avoir lu le cours (rapidement), les r&#233;ponses aux questions pr&#233;c&#233;dentes sont-elles toujours les m&#234;mes ? Pouvez-vous les (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;des images et des couleurs&lt;/h3&gt;
&lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;des questions&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;&lt;strong&gt;3 questions&lt;/strong&gt; :&lt;/p&gt; &lt;ol class=&quot;spip&quot;&gt;&lt;li&gt; Que se passe-t-il quand on zoome sur un document num&#233;rique (par rapport &#224; sa qualit&#233;) ?&lt;/li&gt;&lt;li&gt; Une imprimante couleurs doit-elle obligatoirement avoir une cartouche noire pour imprimer la couleur noire ?&lt;/li&gt;&lt;li&gt; Quels sont les effets possibles avec un logiciel du type photoshop, gimp ... ?&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;des &#233;l&#233;ments th&#233;oriques&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Apr&#232;s avoir lu le cours (rapidement), les r&#233;ponses aux questions pr&#233;c&#233;dentes sont-elles toujours les m&#234;mes ? Pouvez-vous les compl&#233;ter ?&lt;/p&gt; &lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/jif1es4v3vctaxc/SNT_images.pdf?dl=0&quot; class='spip_out' rel='external'&gt;cours&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;fonction tonale&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;&lt;a href=&quot;https://www.dropbox.com/s/5ak3ctffrjvb26n/SNT_image_activite.pdf?dl=0&quot; class='spip_out' rel='external'&gt;Activit&#233;&lt;/a&gt; sur le traitement d'image&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>5-au cas o&#249;</title>
		<link>https://www.mesmaths.com/spip.php?article416</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article416</guid>
		<dc:date>2023-06-20T11:42:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>si le programme ne fonctionne pas correctement sous Edupython (pour un probl&#232;me de biblioth&#232;que non import&#233;e) ... une alternative code &#224; copier/coller &quot;&quot;&quot;important : l'image traitee doit se trouver dans le meme repertoire que le programme&quot;&quot;&quot; &quot;&quot;&quot;avec cette methode, les composantes r, v, et b sont des nombres compris entre 0 et 1&quot;&quot;&quot; #importation de bibliotheques necessaires au fonctionnement du programme import matplotlib.image (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;si le programme ne fonctionne pas correctement sous Edupython (pour un probl&#232;me de biblioth&#232;que non import&#233;e) ... une alternative
&lt;/br&gt;&lt;/p&gt; &lt;hr class=&quot;spip&quot; /&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;code &#224; copier/coller&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;&quot;&quot;important : l'image traitee doit se trouver dans le meme repertoire que le programme&quot;&quot;&quot;&lt;br /&gt; &lt;br /&gt; &quot;&quot;&quot;avec cette methode, les composantes r, v, et b sont des nombres compris entre 0 et 1&quot;&quot;&quot;&lt;br /&gt; &lt;br /&gt; #importation de bibliotheques necessaires au fonctionnement du programme&lt;br /&gt; import matplotlib.image as mpimg&lt;br /&gt; import numpy as np&lt;br /&gt; import matplotlib.pyplot as plt&lt;br /&gt; &lt;br /&gt; name = (&quot;monchat.png&quot;) #name prend le nom de l'image &#224; trait&#233;e (image en format .png) ; le nom contient l'extension&lt;br /&gt; im = mpimg.imread(name)#on lit le document saisi par la fonction mp.img()&lt;br /&gt; im = im[:,:,:3] # pour faire disparaitre le 4eme plan -&gt; chaque pixel est constitue de 3 valeurs qui correspondent au code rgb&lt;br /&gt; for i in range(im.shape[0]):#le long des colonnes&lt;br /&gt; for j in range(im.shape[1]):#le long des lignes&lt;br /&gt; r, v, b = im[i, j] #ecriture etrange ... car im[i,j] est une liste de trois valeurs -&gt; que l'on stocke dans r, v et b&lt;br /&gt; #le traitement se fait ici -&gt; c'est l&#224; que va intervenir&lt;br /&gt; im[i, j] = (0,0,b)#on ne garde que la composante bleue&lt;br /&gt; &lt;br /&gt; plt.imshow(im)#on cree l'image traitee&lt;br /&gt; plt.show()#on affiche l'image traitee -&gt; pour la conserver, il faudra l'enregistrer manuellement&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;deux images &#224; t&#233;l&#233;charger&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;si on utilise le programme ci-dessus, il faut obligatoirement prendre l'image en .png.&lt;/p&gt; &lt;p&gt;si on utilise le programme initialement pr&#233;vu, on prend a le choix entre .png et .jpg&lt;/p&gt; &lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;span class='spip_document_1934 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/monchat.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 301 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L467xH314/monchat-046d5.png&quot; width='467' height='314' alt=&quot;PNG - 301 ko&quot; style='height:314px;width:467px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span class='spip_document_1933 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/jpg/paysage-2.jpg&quot; class=&quot;fancybox&quot; title=&quot;JPEG - 92.3 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH377/paysage-2-930c3.jpg&quot; width='500' height='377' alt=&quot;JPEG - 92.3 ko&quot; style='height:377px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;center&gt;image en &lt;strong&gt;.png&lt;/strong&gt;&lt;/center&gt;&lt;/td&gt;
&lt;td&gt;&lt;center&gt;image en .jpg&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;programme pour m&#233;langer deux images&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;&quot;&quot;IMPORTANT : les images import&#233;es devront se trouver dans le m&#234;me fichier que ce programme. L'image modifi&#233;e sera elle aussi enregistr&#233;e dans ce dossier. On m&#233;lange les images 1 et 2 (la plus grande est l'image 1)&lt;br /&gt; &lt;br /&gt; ###traitement d'une photo&lt;br /&gt; #importation obligatoire pour utiliser la fonction analysant le code RGB pixel par pixel d'une image&lt;br /&gt; from PIL import Image&lt;br /&gt; &lt;br /&gt; #fonction permettant de faire un melange plus ou moins marque&lt;br /&gt; coef=0.5 #coef est la proportion de la premi&#232;re image&lt;br /&gt; def mel(a,b):&lt;br /&gt; return int(coef*a+(1-coef)*b)&lt;br /&gt; &lt;br /&gt; #importation des deux images : la plus grande est image1&lt;br /&gt; imageSource1=Image.open(&quot;pays.jpg&quot;)#nom de l'image1 &#224; saisir A MODIFIER&lt;br /&gt; imageSource2=Image.open(&quot;girod.jpg&quot;)#nom de l'image2 &#224; saisir A MODIFIER&lt;br /&gt; &lt;br /&gt; #parametrages des images&lt;br /&gt; largeur1,hauteur1=imageSource1.size#prend en compte la largeur de l'image1 et sa hauteur&lt;br /&gt; largeur2,hauteur2=imageSource2.size#prend en compte la largeur de l'image2 et sa hauteur&lt;br /&gt; dech=int((largeur1-largeur2)/2)#centrage horizontal&lt;br /&gt; decv=int((hauteur1-hauteur2)/2)#centrage vertical&lt;br /&gt; #hauteur=min(hauteur1,hauteur2)&lt;br /&gt; &lt;br /&gt; imageModif=Image.new(&quot;RGB&quot;,(largeur1,hauteur1))#d&#233;finie une nouvelle image vierge de m&#234;me dimension que l'image 1&lt;br /&gt; &lt;br /&gt; ##4 zones ne faisant apparaitre que l'image la plus grande&lt;br /&gt; #zone en haut sur toute la largeur&lt;br /&gt; for y in range(decv): # y varie de 0 a&#768; hauteur - 1&lt;br /&gt; for x in range(largeur1):&lt;br /&gt; p1=imageSource1.getpixel((x,y)) # p est la valeur RGB du pixel de l'image1&lt;br /&gt; r1=p1[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v1=p1[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b1=p1[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; imageModif.putpixel((x,y),p1) # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;&#233;r&lt;br /&gt; &lt;br /&gt; #zone en bas sur toute la largeur&lt;br /&gt; for y in range(decv+hauteur2,hauteur1): # y varie de 0 a&#768; hauteur - 1&lt;br /&gt; for x in range(largeur1):&lt;br /&gt; p1=imageSource1.getpixel((x,y)) # p est la valeur RGB du pixel de l'image1&lt;br /&gt; r1=p1[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v1=p1[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b1=p1[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; imageModif.putpixel((x,y),p1) # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;&#233;r&lt;br /&gt; &lt;br /&gt; #zone sur la gauche sur toute la hauteur&lt;br /&gt; for y in range(hauteur1): # y varie de 0 a&#768; hauteur - 1&lt;br /&gt; for x in range(dech):&lt;br /&gt; p1=imageSource1.getpixel((x,y)) # p est la valeur RGB du pixel de l'image1&lt;br /&gt; r1=p1[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v1=p1[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b1=p1[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; imageModif.putpixel((x,y),p1) # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;&#233;r&lt;br /&gt; &lt;br /&gt; #zone sur la droite sur toute la hauteur&lt;br /&gt; for y in range(hauteur1): # y varie de 0 a&#768; hauteur - 1&lt;br /&gt; for x in range(dech+largeur2,largeur1):&lt;br /&gt; p1=imageSource1.getpixel((x,y)) # p est la valeur RGB du pixel de l'image1&lt;br /&gt; r1=p1[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v1=p1[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b1=p1[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; imageModif.putpixel((x,y),p1) # on affecte les valeurs de de p dans la nouvelle image pour la cr&#233;&#233;r&lt;br /&gt; &lt;br /&gt; #zone ou il y a le melange&lt;br /&gt; for y in range(decv,decv+hauteur2): # y varie de 0 a&#768; hauteur - 1&lt;br /&gt; for x in range(dech,dech+largeur2):&lt;br /&gt; p1=imageSource1.getpixel((x,y)) # p est la valeur RGB du pixel de l'image1&lt;br /&gt; p2=imageSource2.getpixel((x-dech,y-decv)) # p est la valeur RGB du pixel de l'image2&lt;br /&gt; r1=p1[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v1=p1[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b1=p1[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; r2=p2[0]#premi&#232;re valeur de la liste p -&gt; niveau de r&lt;br /&gt; v2=p2[1]#deuxi&#232;me valeur de la liste p -&gt; niveau de v&lt;br /&gt; b2=p2[2]#trois&#232;me valeur de la liste p -&gt; niveau de b&lt;br /&gt; r=mel(r1,r2)&lt;br /&gt; v=mel(v1,v2)&lt;br /&gt; b=mel(b1,b2)&lt;br /&gt; p=(r,v,b)&lt;br /&gt; imageModif.putpixel((x,y),p)&lt;br /&gt; &lt;br /&gt; #sauvegarde et visualisation de l'image&lt;br /&gt; imageModif.save(&quot;image1_image.jpg&quot;)#on nomme la nouvelle image pour l'enregistrer&lt;br /&gt; imageModif.show()#on visulaise cette nouvelle image&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>4-contour d'une figure</title>
		<link>https://www.mesmaths.com/spip.php?article419</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article419</guid>
		<dc:date>2023-06-20T11:41:47Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>ici une activit&#233; pour vous aider &#224; finaliser un programme permettant de d&#233;tecter les contours d'une figure effet obtenus exemple1 exemple2 exemple3 Pourquoi ? un exemple d'application : la voiture autonome Quand une voiture autonome est en mouvement, il est important qu'elle sache reconna&#238;tre les objets qui l'entourent : v&#233;hicules, pi&#233;tons, cyclistes, les panneaux de signalisation. Pour suivre la route, elle doit savoir en particulier reconna&#238;tre les bordures, les lignes blanches, les (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique124" rel="directory"&gt;7-images num&#233;riques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;ici une &lt;a href=&quot;https://www.dropbox.com/s/8ipl1496l4wwmu3/Activit%C3%A9%20contour.pdf?dl=0&quot; class='spip_out' rel='external'&gt;activit&#233;&lt;/a&gt; pour vous aider &#224; finaliser un programme permettant de d&#233;tecter &lt;strong&gt;les contours d'une figure&lt;/strong&gt;&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;effet obtenus&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/paolzhlovuhwfdk/paysage_autre.png?dl=0&quot; class='spip_out' rel='external'&gt;exemple1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/ueljqfp0t2xci3k/route_01_seuil%20400.png?dl=0&quot; class='spip_out' rel='external'&gt;exemple2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://www.dropbox.com/s/bo6ta1c7ogr5kwy/girod_contour.png?dl=0&quot; class='spip_out' rel='external'&gt;exemple3&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;Pourquoi ?&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;h3 class=&quot;spip&quot;&gt;un exemple d'application : la voiture autonome&lt;/h3&gt;
&lt;p&gt;Quand une voiture autonome est en mouvement, il est important qu'elle sache reconna&#238;tre les objets qui l'entourent : v&#233;hicules, pi&#233;tons, cyclistes, les panneaux de signalisation.&lt;/p&gt; &lt;p&gt;Pour suivre la route, elle doit savoir en particulier reconna&#238;tre les bordures, les lignes blanches, les trottoirs, etc.&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1939 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im1-3.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 438.8 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH253/im1-3-11093.png&quot; width='500' height='253' alt=&quot;PNG - 438.8 ko&quot; style='height:253px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;Pour cela, les photos r&#233;alis&#233;es par ses capteurs sont trait&#233;es par des algorithmes qui permettent de d&#233;tecter les contours des objets qu'elle rencontre.&lt;/p&gt; &lt;p&gt;L'objectif de cette activit&#233; est de d&#233;couvrir le fonctionnement d'un de ces algorithmes de d&#233;tection de contours.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;c'est quoi ?&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Mais d'abord, comment &quot;d&#233;finir&quot; un contour ?&lt;/p&gt; &lt;p&gt;Dans certaines situations (comme sur l'image ci-dessous), cela para&#238;t &#233;vident de d&#233;crire un contour.&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1938 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im2-2.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 498.7 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH238/im2-2-d6e73.png&quot; width='500' height='238' alt=&quot;PNG - 498.7 ko&quot; style='height:238px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;Comment formaliser cette 'intuition' ?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;question 1&lt;/strong&gt; : rep&#233;rer et s&#233;lectionner les pixels appartenant au contour que l'on visualise sur l'agrandissement de l'image en niveaux de gris ci-dessous (noter les niveaux de gris correspondant &#224; ce qu'on estime &#234;tre le contour de la figure)&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1937 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im3-2.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 386.6 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH296/im3-2-44037.png&quot; width='500' height='296' alt=&quot;PNG - 386.6 ko&quot; style='height:296px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;190&lt;/td&gt;
&lt;td&gt;192&lt;/td&gt;
&lt;td class='numeric '&gt;190&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td class='numeric '&gt;189&lt;/td&gt;
&lt;td&gt;203&lt;/td&gt;
&lt;td&gt;183&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;question 1&lt;/strong&gt; : expliquer comment on peut d&#233;terminer si un pixel appartient &#224; un contour.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;Ce sera le cas lorsque ses &lt;strong&gt;pixels voisins&lt;/strong&gt; auront des valeurs significativement diff&#233;rentes.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;pixels voisins&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Pour rep&#233;rer la position d'un pixel, on rep&#232;re d'abord la colonne x &#224; laquelle il appartient, puis la ligne y &#224; laquelle il appartient.&lt;/p&gt; &lt;p&gt;Notons un tel pixel P(x, y) et NG(x, y) son niveau de gris.&lt;/p&gt; &lt;p&gt;Pour d&#233;tecter si le pixel P(x, y) appartient ou non &#224; un contour, une des m&#233;thodes consiste &#224; chercher une rupture d'intensit&#233; entre 2 pixels sym&#233;triques par rapport &#224; P(x, y), appel&#233;s &lt;strong&gt;pixel voisins&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Pour cela &lt;font color = blue&gt;on calcule la diff&#233;rence entre les niveaux de gris de 2 pixels voisins&lt;font color = black&gt;. Si cette diff&#233;rence est &#233;lev&#233;e, le pixel fera parti d'un contour. Sinon, non.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Question 3&lt;/strong&gt; : Reproduire le tableau ci-dessous et compl&#233;ter la position de chaque pixel composant l'image suivante et colorier d'une m&#234;me couleur les couples de pixels voisins de P(x,y).&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1940 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im4-2.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 5.4 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH243/im4-2-710d5.png&quot; width='500' height='243' alt=&quot;PNG - 5.4 ko&quot; style='height:243px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;font color = blue&gt;P(x-1,y-1)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;font color = red&gt;P(x+1,y-1)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd'&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;P(x,y)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;font color = red&gt;P(x-1,y+1)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;font color = blue&gt;P(x+1,y+1)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;font color = black&gt;&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;/font&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;des calculs&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Pour les questions suivantes, on se basera sur la figure suivante :&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1941 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im5-2.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 99.5 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L361xH386/im5-2-e0c3d.png&quot; width='361' height='386' alt=&quot;PNG - 99.5 ko&quot; style='height:386px;width:361px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Question 4&lt;/strong&gt; : Quelle est la diff&#233;rence de niveaux de gris entre les 2 pixels voisins du pixel P(2, 2) ? &#201;crire l'op&#233;ration effectu&#233;e.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;190 - 46 = 144&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;strong&gt;Question 5 &lt;/strong&gt; : M&#234;me question pour le pixel P(2, 4).
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;190 - 131 = 59&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;strong&gt;Question 6&lt;/strong&gt; : Parmi ces deux pixels, lequel semble appartenir &#224; un &#233;ventuel contour. Pourquoi ?
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;le Pixel P(2,2) car les diff&#233;rences de valeurs entre pixels voisins sont plus grandes.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;4 voisins&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Avec les exemples pr&#233;c&#233;dents, nous n'avons pris en compte qu'un couple de pixels voisins. On ne tient donc compte que d'une unique direction.
Pour &#233;viter cela on va donc &lt;strong&gt;prendre en compte 2 couples de pixels voisins&lt;/strong&gt; avec des directions oppos&#233;s (voir sch&#233;ma).&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_1942 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/im6-2.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 101.9 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L342xH367/im6-2-f9429.png&quot; width='342' height='367' alt=&quot;PNG - 101.9 ko&quot; style='height:367px;width:342px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;On calcule ensuite pour chacun des couples de pixels voisins, le carr&#233; de la diff&#233;rence des niveaux de gris. Enfin, on ajoute les r&#233;sultats obtenus.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Question 8&lt;/strong&gt; : Calculer cette somme pour P(3, 2) et P(2, 4).&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;&lt;strong&gt;pour le pixel P(3,2)&lt;/strong&gt; :&lt;/p&gt; &lt;p&gt;(192 - 42)&#178; + (153 - 49)&#178; = 33 316&lt;/p&gt; &lt;p&gt;&lt;strong&gt;pour le pixel P(2,4)&lt;/strong&gt; :&lt;/p&gt; &lt;p&gt;(190 - 145)&#178; + (190 - 131)&#178; = 5 506&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;strong&gt;Question 9&lt;/strong&gt; : Exprimer cette somme pour le &lt;strong&gt;pixel P(x, y)&lt;/strong&gt;.
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;[P(x-1,y-1) - P(x+1,y+1)]&#178; +[P(x+1,y-1) - P(x-1,y+1)]&#178; = 33 316&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;strong&gt;Question 10&lt;/strong&gt; : A partir que quel seuil peut-on d&#233;cider si un pixel fait partie du contour ?
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;&#199;a d&#233;pend !!&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;programme&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On souhaite programmer en langage Python un algorithme qui permet d'afficher le contour d'une image.&lt;/p&gt; &lt;p&gt;Vous pouvez tenter d'adapter les programmes pr&#233;c&#233;dents ou utiliser celui donn&#233; dans le bloc r&#233;ponse, sachant qu'il y aura &lt;strong&gt;une ligne &#224; compl&#233;ter&lt;/strong&gt; !&lt;/p&gt; &lt;p&gt;Cette ligne &#224; compl&#233;ter est &#233;videmment en lien avec les questions pr&#233;c&#233;dentes, en particulier le fait de d&#233;cider si un pixel fait partie ou non du contour d'une figure.
&lt;/br&gt;&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;&quot;&quot;IMPORTANT : l'image import&#233;e devra se trouver dans le m&#234;me fichier que ce programme. L'image modifi&#233;e sera elle aussi enregistr&#233;e dans ce dossier&quot;&quot;&quot;&lt;br /&gt; &lt;br /&gt; #importation obligatoire pour utiliser la fonction analysant le code RGB pixel par pixel d'une image&lt;br /&gt; from PIL import Image&lt;br /&gt; &lt;br /&gt; #nom de l'image &#224; saisir A MODIFIER&lt;br /&gt; im=Image.open(&quot;paysage.jpg&quot;)&lt;br /&gt; #prend en compte la largeur de l'image et sa hauteur&lt;br /&gt; largeur,hauteur=im.size&lt;br /&gt; #d&#233;finie une nouvelle image vierge de m&#234;me dimension&lt;br /&gt; im_contour=Image.new(&quot;RGB&quot;,(largeur,hauteur))&lt;br /&gt; &lt;br /&gt; # y varie de 1 a&#768; (hauteur-2) et x varie de 1 a&#768; (largeur-2)&lt;br /&gt; for y in range(1,hauteur-1):&lt;br /&gt; for x in range(1,largeur-1):&lt;br /&gt; # p est la valeur RGB du pixel de l'image de d&#233;part&lt;br /&gt; p=im.getpixel((x,y))&lt;br /&gt; # a, b, c et d contiennent les valeurs du niveau de gris des pixels voisins du pixel P(x,y)&lt;br /&gt; a = (im.getpixel((x-1, y-1))[0]+im.getpixel((x-1, y-1))[1]+im.getpixel((x-1, y-1))[2])/3&lt;br /&gt; b = (im.getpixel((x+1, y+1))[0]+im.getpixel((x+1, y+1))[1]+im.getpixel((x+1, y+1))[2])/3&lt;br /&gt; c = (im.getpixel((x-1, y+1))[0]+im.getpixel((x-1, y+1))[1]+im.getpixel((x-1, y+1))[2])/3&lt;br /&gt; d = (im.getpixel((x+1, y-1))[0]+im.getpixel((x+1, y-1))[1]+im.getpixel((x+1, y-1))[2])/3&lt;br /&gt; &lt;br /&gt; ##on applique la transformation :&lt;br /&gt; # c'est la PARTIE A MODIFIER&lt;br /&gt; formule = &lt;br /&gt; ##&lt;br /&gt; # on construit un test : si la valeur obtenue dans la formule est&lt;br /&gt; # sup&#233;rieure au seuil de 2500, le pixel (x,y) fait parti du contour,&lt;br /&gt; # on le colorie en noir. Sinon, on le colorie en blanc.&lt;br /&gt; if formule &gt; 2500: #seuil modifiable&lt;br /&gt; im_contour.putpixel((x, y), (0,0,0))&lt;br /&gt; else :&lt;br /&gt; im_contour.putpixel((x, y), (255,255,255))&lt;br /&gt; &lt;br /&gt; #on nomme la nouvelle image pour l'enregistrer&lt;br /&gt; im_contour.save(&quot;paysage_contour.jpg&quot;)#nom a modifier&lt;br /&gt; #on visulaise cette nouvelle image&lt;br /&gt; im_contour.show()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
