<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://dindoun.lautre.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>pense-b&#234;te de bruno sanchiz</title>
	<link>https://dindoun.lautre.net/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://dindoun.lautre.net/spip.php?id_mot=141&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>pense-b&#234;te de bruno sanchiz</title>
		<url>https://dindoun.lautre.net/local/cache-vignettes/L128xH128/favicon-68ee1.png?1762285646</url>
		<link>https://dindoun.lautre.net/</link>
		<height>128</height>
		<width>128</width>
	</image>



<item xml:lang="fr">
		<title>python en virtuel</title>
		<link>https://dindoun.lautre.net/spip.php?article530</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article530</guid>
		<dc:date>2023-07-11T13:37:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>python</dc:subject>
		<dc:subject>python3</dc:subject>

		<description>
&lt;p&gt;Pour permettre l'utilisatio nde python dans toutes les situations, il a &#233;t&#233; d&#233;cid&#233; de metrte en avant la virtualisation : &lt;br class='autobr' /&gt;
https://peps.python.org/pep-0668/ &lt;br class='autobr' /&gt;
et donc on utilise comme &#231;a : python3 -m venv /tmp/venv ; source /tmp/venv/bin/activate ; pip install &#8212;upgrade pip ; pip3 install matplotlib numpy opencv-python opencv-contrib-python tensorflow &lt;br class='autobr' /&gt;
erreurs : Could not build wheels for dlib, erreur apparue pour installer face-recognition , d'apr&#232;s (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique45" rel="directory"&gt;python&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot11" rel="tag"&gt;python&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot141" rel="tag"&gt;python3&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Pour permettre l'utilisatio nde python dans toutes les situations, il a &#233;t&#233; d&#233;cid&#233; de metrte en avant la virtualisation :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://peps.python.org/pep-0668/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://peps.python.org/pep-0668/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;et donc on utilise comme &#231;a :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;python3 -m venv /tmp/venv ; source /tmp/venv/bin/activate ; pip install --upgrade pip ; pip3 install matplotlib numpy opencv-python opencv-contrib-python tensorflow&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;erreurs : Could not build wheels for dlib, erreur apparue pour installer face-recognition&lt;/h2&gt;
&lt;p&gt;, d'apr&#232;s &lt;a href=&#034;https://learnopencv.com/install-dlib-on-ubuntu/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://learnopencv.com/install-dlib-on-ubuntu/&lt;/a&gt;&lt;br class='autobr' /&gt;
installation de face_recognition&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo apt-get install cmake build-essential libopenblas-dev liblapack-dev pkg-config libx11-dev libatlas-base-dev libgtk-3-dev libboost-python-dev python3-dev python3-pip virtualenv virtualenvwrapper&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;source /usr/share/virtualenvwrapper/virtualenvwrapper.sh mkvirtualenv facecourse-py3 -p python3 workon facecourse-py3 pip install numpy scipy matplotlib scikit-image scikit-learn ipython wheel numpy scipy matplotlib scikit-image scikit-learn ipython pip3 install numpy virtualenv virtualenvwrapper # now install python libraries within this virtual environment pip install numpy scipy matplotlib scikit-image scikit-learn ipython # quit virtual environment deactivate &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>opencv</title>
		<link>https://dindoun.lautre.net/spip.php?article506</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article506</guid>
		<dc:date>2023-03-18T23:17:17Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>python3</dc:subject>

		<description>
&lt;p&gt;imports import cv2 import numpy as np import matplotlib.pyplot as plt import matplotlib &lt;br class='autobr' /&gt;
image img = cv2.imread('a.jpg') cv2.imshow(&#034;kk&#034;,img) cv2.waitKey(0) print(image.shape) #hauteur,largeur,canaux dessiner une ligne : img = cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) plt.imshow(image_line[ :, :, : :-1]) dessiner un cercle img = cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) dessiner un rectangle img = cv2.rectangle(img, pt1, pt2, color[, (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique45" rel="directory"&gt;python&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot141" rel="tag"&gt;python3&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;imports&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;import cv2 import numpy as np import matplotlib.pyplot as plt import matplotlib&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;image&lt;/h2&gt;
&lt;p&gt;img = cv2.imread('a.jpg')&lt;br class='autobr' /&gt;
cv2.imshow(&#034;kk&#034;,img)&lt;br class='autobr' /&gt;
cv2.waitKey(0)&lt;br class='autobr' /&gt;
print(image.shape) #hauteur,largeur,canaux&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; dessiner une ligne :&lt;br class='autobr' /&gt;
img = cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])&lt;br class='autobr' /&gt;
plt.imshow(image_line[ :, :, : :-1])&lt;/li&gt;&lt;li&gt; dessiner un cercle&lt;br class='autobr' /&gt;
img = cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])&lt;/li&gt;&lt;li&gt; dessiner un rectangle&lt;br class='autobr' /&gt;
img = cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])&lt;/li&gt;&lt;li&gt; ins&#233;rer un texte&lt;br class='autobr' /&gt;
img = cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;functions sur images :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; ajouter : cv2.add(im1,im2)&lt;/li&gt;&lt;li&gt; soustraire : cv2.substract(im1,im2)&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;RVB &lt;-&gt; BVR&lt;/h2&gt;
&lt;p&gt;B,V,R =img[x,y]&lt;br class='autobr' /&gt;
R,V,B=img[ :, :, : :-1] [x,y]&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;crop&lt;/h2&gt;
&lt;p&gt;cropped_region = img[y1:y2,x1:x2]&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;changement de taille, resize&lt;/h2&gt;
&lt;p&gt;cv2.resize(img, None, fx = 2, fy = 2)&lt;br class='autobr' /&gt;
cv2.resize(img, dsize = (200,400), interpolation = cv2.INTER_AREA)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;flip&lt;/h2&gt;
&lt;p&gt;&lt;-&gt; : cv2.flip(img_eagle, 1)&lt;br class='autobr' /&gt;
vert : cv2.flip(img_eagle, 0)&lt;br class='autobr' /&gt;
rot 180 : cv2.flip(img_eagle, -1)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;aruco detecteurs&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;for i in range(1000): dictionary = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_6X6_1000) parameters = cv2.aruco.DetectorParameters() img=cv2.aruco.generateImageMarker(dictionary,i,200) cv2.imwrite(&#034;/tmp/aa/f&#034;+str(i)+&#034;.jpg&#034;,img)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>d&#233;corateur d&#233;corator</title>
		<link>https://dindoun.lautre.net/spip.php?article487</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article487</guid>
		<dc:date>2022-11-25T01:56:50Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>python</dc:subject>
		<dc:subject>python3</dc:subject>

		<description>
&lt;p&gt;Un d&#233;corateur agit sur la sortie d'une fonction , sans la remplacer directement. Quand la fonction est appel&#233;e, c'est le d&#233;corateur qui est appel&#233;. &lt;br class='autobr' /&gt;
Par exemple avec une fonction def decorateur(f) : def g(a,b) : print( &#034;le r&#233;sultat est &#034;.format(f(a,b))) return g &lt;br class='autobr' /&gt;
@decorateur def ajoute(a,b) : return a+b @decorateur def mult(a,b) : return a*b ajoute(5,3) affichera le r&#233;sultat est 8 au lieu de retourner 8 mult(2,4) affichera le r&#233;sultat est 8 Attention : le simple (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique45" rel="directory"&gt;python&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot11" rel="tag"&gt;python&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot141" rel="tag"&gt;python3&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Un d&#233;corateur agit sur la sortie d'une fonction , sans la remplacer directement.&lt;br class='autobr' /&gt;
Quand la fonction est appel&#233;e, c'est le d&#233;corateur qui est appel&#233;.&lt;/p&gt;
&lt;p&gt;Par exemple avec une fonction&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;def decorateur(f): def g(a,b): print( &#034;le r&#233;sultat est {}&#034;.format(f(a,b))) return g @decorateur def ajoute(a,b): return a+b @decorateur def mult(a,b): return a*b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ajoute(5,3) affichera &lt;strong&gt;le r&#233;sultat est 8&lt;/strong&gt;&lt;br class='autobr' /&gt;
au lieu de retourner 8&lt;br class='autobr' /&gt;
mult(2,4) affichera &lt;strong&gt;le r&#233;sultat est 8&lt;/strong&gt;&lt;br class='autobr' /&gt;
Attention : le simple fait d'utiliser la fonction provoque l'affichage :&lt;br class='autobr' /&gt;
c=ajoute(5,6) affiche &lt;strong&gt;le r&#233;sultat est 11&lt;/strong&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;succession de d&#233;corateurs :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;def decorateur2(f): def h(a,b): print( &#034;Dans l'ensemble des r&#233;els, {}&#034;.format(f(a,b))) return h def decorateur(f): def g(a,b): return &#034;le r&#233;sultat est {}&#034;.format(f(a,b)) return g @decorateur2 @decorateur def div(a,b): return a/b div (5,4)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans l'ensemble des r&#233;els, le r&#233;sultat est 1.25&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;On peut g&#233;n&#233;raliser le d&#233;corateur :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;def decorateur(f): def g(*args,**kargs): print( &#034;le r&#233;sultat est {}&#034;.format(f(*args,**kargs))) return g &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;decorateur debug :&lt;br class='autobr' /&gt;
def decorateur_debug(f) :&lt;br class='autobr' /&gt; def g(*args,**kargs) :&lt;br class='autobr' /&gt; if debug==True :&lt;br class='autobr' /&gt; print(f.__name__+&#034; :&#034;+f.__doc__)&lt;br class='autobr' /&gt; return f(*args,**kargs)&lt;br class='autobr' /&gt; return g&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;&lt;a href=&#034;https://zestedesavoir.com/tutoriels/954/notions-de-python-avancees/2-functions/3-decorators/#fn-approximation_decorateur&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://zestedesavoir.com/tutoriels/954/notions-de-python-avancees/2-functions/3-decorators/#fn-approximation_decorateur&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>utilisation de python3-plotly - Python 3...</title>
		<link>https://dindoun.lautre.net/spip.php?article399</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article399</guid>
		<dc:date>2020-05-08T00:02:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>python</dc:subject>
		<dc:subject>python3</dc:subject>

		<description>&lt;p&gt;Il s'agit d'une classe python qui permet de cr&#233;er des pages de visualisation de type html+css+js&lt;/p&gt;

-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique45" rel="directory"&gt;python&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot11" rel="tag"&gt;python&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot141" rel="tag"&gt;python3&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;utilisation de python3-plotly - Python 3 plotting library for publication-quality graphs&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://plotly.com/python/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://plotly.com/python/&lt;/a&gt;&lt;br class='autobr' /&gt;
d'apr&#232;s : &lt;a href=&#034;http://gael-varoquaux.info/slides_etalab_2020&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://gael-varoquaux.info/slides_etalab_2020&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;exemples&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='16' class='spip_cadre spip_cadre_block' dir='ltr'&gt;import json with open('geojson-counties-fips.json',&#034;r&#034;) as response: JSON = json.load(response) #JSON : dict et list #JSON[&#034;features&#034;][0 &#224; N-1] sont les N surfaces #JSON[&#034;features&#034;][0]['id'] === CSV['fips'] #JSON[&#034;features&#034;][0]['geometry']['type']='Polygon' #JSON[&#034;features&#034;][0]['geometry']['coordinates']=[[[-86.496774, 32.344437], [-86.717897, 32.402814], [-86.814912, 32.340803], [-86.890581, 32.502974], [-86.917595, 32.664169], [-86.71339, 32.661732], [-86.714219, 32.705694], [-86.413116, 32.707386], [-86.411172, 32.409937], [-86.496774, 32.344437]]]&lt;/textarea&gt;
&lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;import pandas CSV = pandas.read_csv(&#034;fips-unemp-16.csv&#034;,dtype={&#034;fips&#034;: str}) #CSV['fips'] et CSV['unemp']&lt;/textarea&gt;
&lt;p&gt;Une carte des USA o&#249; la couleur des surfaces identifi&#233;es par JSON[&#034;features&#034;][0]['id'] === CSV['fips'] est donn&#233;e par la valeur de CSV['unemp'] en allant de 0 &#224;12.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;import plotly.express as px fig = px.choropleth(CSV, geojson=JSON, locations='fips', color='unemp', color_continuous_scale=&#034;Viridis&#034;, range_color=(0, 12), scope=&#034;usa&#034;, labels={'unemp':'PRG3:unemployment rate'}) fig.update_layout(margin={&#034;r&#034;:0,&#034;t&#034;:0,&#034;l&#034;:0,&#034;b&#034;:0}) fig.show()&lt;/textarea&gt;
&lt;p&gt;On obtient :&lt;/p&gt; &lt;iframe width=&#034;100%&#034; height=&#034;346&#034; src=&#034;http://127.0.0.1/d/DIVERS/PYTHON/plotly0.html&#034; frameborder=&#034;0&#034;&gt;&lt;/iframe&gt; &lt;p&gt;Attention, il y a de nombreux appels externes : creativecommons.org , openstreetmap.org , mapbox.cn , mapbox.com , carto.com , cartodb-basemaps-c.global.ssl.fastly.net , cdn.plot.ly , get.webgl.org , github.com , plotly.com , stamen-tiles.a.ssl.fastly.net , stamen.com , &lt;a href=&#034;http://www.w3.org&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;www.w3.org&lt;/a&gt; ,&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;exemples avec le coronavirus : voir &lt;a href='https://dindoun.lautre.net/spip.php?article377' class=&#034;spip_in&#034;&gt;coronavirus&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
