<?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=143&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>OCR : cr&#233;er un fichier texte &#224; partir d'une image</title>
		<link>https://dindoun.lautre.net/spip.php?article14</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article14</guid>
		<dc:date>2014-10-07T02:00:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>ocr</dc:subject>

		<description>&lt;p&gt;Le but d'un OCR est de transformer un fichier qui contient une image d'un texte (png,pdf...) en texte &#233;ditable (.txt).&lt;/p&gt;

-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique4" rel="directory"&gt;Lignes de commandes&lt;/a&gt;

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

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Il faut toujours pr&#233;parer le fichier : une seule colonne, pas d'image , pas de texte qui d&#233;borde sur un autre ligne. Chaque ligne doit &#234;tre le plus horizontal possible.&lt;/p&gt;
&lt;p&gt;En 2017 je conseille gimagereader, qui utilise tesseract.&lt;/p&gt;
&lt;p&gt;Installation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install gimagereader&lt;/code&gt; ou &lt;a href=&#034;https://sourceforge.net/projects/gimagereader/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Windows ou sources&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Utilisation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gimagereader&lt;/code&gt; Menu-&gt;Logiciels-&gt;Graphisme-&gt;gimagereader OU clic droit sur un fichier -&gt; ouvrir avec gimagereader&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;analyse de Diff&#233;rents logiciels&lt;/h2&gt;
&lt;p&gt;Tout d'abord, &lt;a href='https://dindoun.lautre.net/spip.php?article10' class=&#034;spip_in&#034;&gt;ouvrir un terminal&lt;/a&gt;.&lt;br class='autobr' /&gt;
On analyse l'image a.jpg ; on obtient le fichier sortie.txt&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation et utilisation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;tesseract et opencv&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.geeksforgeeks.org/text-detection-and-extraction-using-opencv-and-ocr/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.geeksforgeeks.org/text-detection-and-extraction-using-opencv-and-ocr/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pip install opencv-python&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pip install pytesseract&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tesseract&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install tesseract-ocr tesseract-ocr-fra&lt;/code&gt;&lt;br class='autobr' /&gt;
utilisation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tesseract a.jpg sortie -l fra&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ocrad&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install ocrad imagemagick&lt;/code&gt;&lt;br class='autobr' /&gt;
utilisation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert a.jpg a.ppm; ocrad a.ppm &gt; sortie.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;gocr&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install gocr xfig&lt;/code&gt;&lt;br class='autobr' /&gt;
utilisation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gocr -i a.jpg &gt; sortie.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;cuneiform&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install cuneiform&lt;/code&gt;&lt;br class='autobr' /&gt;
utilisation : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cuneiform a.jpg -f text -l fra -o sortie.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tesseract ocrad gocr cuneiform&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get install tesseract-ocr tesseract-ocr-fra ocrad imagemagick gocr xfig cuneiform&lt;/code&gt;&lt;br class='autobr' /&gt;
utilisation avec sorties multiples :&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;tesseract a.jpg sortie1 -l fra ; convert a.jpg a.ppm; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -l fra -o sortie4.txt &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;On obtient les 4 fichiers sortie1.txt sortie2.txt sortie3.txt sortie4.txt&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Comparaisons des programmes en 2023 et 2017&lt;/h2&gt;&lt;div class='spip_document_62 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://dindoun.lautre.net/IMG/png/textedea.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://dindoun.lautre.net/IMG/png/textedea.png?1660413159' width='500' height='74' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Fich=&#034;textedea.png&#034; ; convert &#034;$Fich&#034; a.ppm ; ocrad a.ppm &gt; ocrad-t.txt ; gocr -i &#034;$Fich&#034; &gt; gocr-t.txt ; cuneiform &#034;$Fich&#034; -f text -l fra -o cuneiform-t.txt ; tesseract &#034;$Fich&#034; tesseract -l fra&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;gimagereader&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 2023 :
&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;L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;chelles importantes de l'ordre de 10% m&#232;tres!. La courbure est donc suppos&#233;e constante. La m&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; 2017
&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;L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;chelles importantes de l'ordre de 1024 m&#232;tresl. La courbure est donc suppos&#233;e con- stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3&#8212;sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;cuneiform 2025,2023 : 4 ; 2017 : 3&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 2025,2023 : ll-&gt;B ; oublie exposant, pas de note, La m&#233;trique-&gt;T a W&#233;trique&lt;/li&gt;&lt;li&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; L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;cheBes importantes de l'ordre de 10~~ m&#232;tres . I a courbure est donc suppos&#233;e constante. T a W&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; 2017 : oublie exposant, pas de note,. La m&#233;trique-&gt;La &#233;triqu&#233;&lt;/li&gt;&lt;li&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;L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;chelles importantes de l'ordre de 10~ m&#232;tres . La, courbure est donc suppos&#233;e constante. La~&#233;triqu&#233; s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;gocr : 2/5 &lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 2025,2023 :&lt;/li&gt;&lt;li&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;echelles lmport_ntes de l ordre de _0 met_e_ _ _aL_ courbure est donc suppo_ee con L'univers le plus simple _ mod%liser en concord_nce approxim_tive _vec l_ r%_lit% est le mod%le homog%ne et isotrope, de densit% uniforme ( relativement vrai sur des / t , 2_ _ l / _ stante. L_ m%trique s'%crit alors comme celle d'une 3-sph_re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; 2017 : nombreuses erreurs - inutilisable
&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;e/chelles l_mportantes de l,o_dre de _o2q me_ tresl _ La courbure est donc suppose/e con_ L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; unifoTme ( relativement vrai sur des stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ocrad : 3/5 &lt;/strong&gt; tr&#232;s nombreuses erreurs &lt;br class='autobr' /&gt; -* 2025,2023 : en-&gt;eo ; concordance-&gt;concordaoce ; ...&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;L'univers le plus simple &#224; mod&#233;liser eo concordaoce approximative _vec la r&#233;_lit&#233; est le mod&#232;le bomog&#232;ne et isotrope, de denjit&#233; uniforme ( rel_tivement vr_i sur des &#233;chelles importantes de l'ordre de IO'4 m&#232;tres'. l_ courbure est donc suppos&#233;e con- stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 2017
&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;L'univers le plus simple &#224; mod&#233;liser eo concordaoce approximative _vec la r&#233;_lit&#233; est le mod&#232;le bomog&#232;ne et isotrope, de denjit&#233; uniforme ( rel_tivement vr_i sur des &#233;chelles importantes de l'ordre de IO'4 m&#232;tres'. l_ courbure est donc suppos&#233;e con- stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;tesseract&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; 2023&lt;/li&gt;&lt;li&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;L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;chelles importantes de l'ordre de 10% m&#232;tres!. La courbure est donc suppos&#233;e con- stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3-sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;li&gt; 2017 ne sait pas &#233;crire l'exposant ; note 1 devient l&lt;/li&gt;&lt;li&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; L'univers le plus simple &#224; mod&#233;liser en concordance approximative avec la r&#233;alit&#233; est le mod&#232;le homog&#232;ne et isotrope, de densit&#233; uniforme ( relativement vrai sur des &#233;chelles importantes de l'ordre de 1024 m&#232;tresl. La courbure est donc suppos&#233;e con- stante. La m&#233;trique s'&#233;crit alors comme celle d'une 3&#8212;sph&#232;re : &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Comparaisons 2014&lt;/h2&gt;
&lt;p&gt;Cr&#233;ation d'une image : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;texte='tesseract a.jpg sortie1 -l fra ; convert a.jpg a.ppm ; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -l fra -o sortie4.txt' ; convert -size 6000x85 -background blue canvas:white -font Arial-Normal -pointsize 72 -draw &#034;text 25,60 '$(echo $texte)'&#034; a.jpg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;ation d'une image : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;texte='Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed doeiusmod tempor incididunt ut labore'; convert -size 6000x85 -background blue canvas:white -font Arial-Normal -pointsize 72 -draw &#034;text 25,60 '$(echo $texte)'&#034; a.jpg &amp;&amp; convert a.jpg a.ppm ; ocrad a.ppm &gt; ocrad.txt ; gocr -i a.jpg &gt; gocr.txt ; cuneiform a.jpg -f text -l fra -o cuneiform.txt'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Resultats :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tesseract&lt;/strong&gt;&lt;br class='autobr' /&gt;
tesseract a.jpg sortie1 -I fra ; convert a.jpg a.ppm ; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -I fra -o sortie4.txt ( 2 erreurs : I au lieu de l )&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ocrad&lt;/strong&gt;&lt;br class='autobr' /&gt;
tesseract a.jpg sortie1 -| fra ; convert a.jpg a.ppm ; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -| fra -o sortie4.txt ( 2 erreurs : | au lieu de l )&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;gocr&lt;/strong&gt;&lt;br class='autobr' /&gt;
tesseract a.jpg so_ie1 -l fra ; convert a.jpg a.ppm ; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -l fra -o so_ie4.txt ( 2 erreurs : _ au lieu de rt )&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;cuneiform&lt;/strong&gt;&lt;br class='autobr' /&gt;
tesseract a.jpg sortie1 -I fra ; convert a.jpg a.ppm ; ocrad a.ppm &gt; sortie2.txt ; gocr -i a.jpg &gt; sortie3.txt ; cuneiform a.jpg -f text -I fra -o sortie4.txt ( 1 erreur : I au lieu de l )&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
