¸üÐÂʱ¼ä:2021Äê06ÔÂ25ÈÕ18ʱ27·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

TesseraetÊÇÒ»¸öÃüÁîÐй¤¾ß£¬°²×°ºóÖ»ÄÜͨ¹ýtsseraetÃüÁîÔÚPythonµÄÍⲿÔËÐУ¬¶ø²»ÄÜͨ¹ýimportÓï¾äÒýÈËʹÓá£ÎªÁ˽â¾öÉÏÊöÎÊÌ⣬Python ÌṩÁËÖ§³ÖTssraec-OCRÒýÇæµÄPython°æ±¾µÄ¿âpytesseract¡£
°²×°pytesseractÐèÒª×ñÊØÈçÏÂÒªÇó£º
(1)PythonµÄ°æ±¾±ØÐëÊÇpython 2.5+»òpython 3.x¡£
(2)°²×°PythonµÄͼÏñ´¦Àí¿âPIL(»òPillow )¡£
(3)°²×°¹È¸èµÄOCRʶ±ðÒýÇæTesseract-0CR¡£
ÏÂÃæ½«Õë¶ÔPILºÍpytesseractµÄÏà¹ØÄÚÈݽøÐн²½â¡£
pytesseract¿â¸ÅÊö
pytesseractÊÇÒ»¿îÓÃÓÚ¹âѧ×Ö·ûʶ±ð(OCR)µÄPython¹¤¾ß£¬¼´´ÓͼƬÖÐʶ±ðºÍ¶ÁÈ¡ÆäÖÐǶÈ˵ÄÎÄ×Ö¡£ptesseractÊǶÔTesseraet-OCRµÄÒ»²ã·â×°£¬Í¬Ê±Ò²¿ÉÒÔµ¥¶À×÷ΪTesseractÒýÇæµÄµ÷Óýű¾£¬Ö§³ÖʹÓÃPIL¿â(Python Imaging Library)¶ÁÈ¡¸÷ÖÖͼƬÎļþÀàÐÍ£¬°üÀ¨jpeg¡¢png¡¢gif¡¢bmp¡¢tiff µÈ¸ñʽ¡£×÷Ϊ½Å±¾Ê¹ÓÃʱ£¬pytesseract½«´òӡʶ±ð³öµÄÎÄ×Ö£¬¶ø²»Êǽ«ÆäдÈëÎļþ¡£
ÔÚpytesseract¿âÖУ¬ÌṩÁËÈçϺ¯Êý½«Í¼Ïñת»»³É×Ö·û´®£º
image_to_string(image, lang=None, boxes=False, config=None)
ÉÏÊöº¯ÊýÓÃÓÚÔÚÖ¸¶¨µÄͼÏñÉÏÔËÐÐtesseract£¬Ê×ÏȽ«Í¼ÏñдÈ˵½´ÅÅÌ£¬È»ºóÔÚͼÏñÉÏÔËÐÐtesseractÃüÁî½øÐÐʶ±ð¶ÁÈ¡£¬×îºóɾ³ýÁÙʱµÄÎļþ¡£ÆäÖУ¬image±íʾͼÏñ£¬lang±íʾÓïÑÔ£¬Ä¬ÈÏʹÓÃÓ¢ÎÄ¡£Èç¹ûboxesÉèΪTrue£¬ÄÇôbatch.nochop makeboxÃüÁî±»Ìí¼Óµ½tesseractµ÷ÓÃÖÐ;Èç¹ûÉèÖÃÁËconfig£¬ÔòÅäÖûáÌí¼Óµ½ÃüÁîÖУ¬ÀýÈçconfig = - psm 6¡£
PIL¿â¸ÅÊö
ͼÏñ´¦ÀíÊÇÒ»ÃÅÓ¦Ó÷dz£¹ã·ºµÄ¼¼Êõ£¬ÓµÓзḻµÚÈý·½´òÀ©Õ¹¿âµÄPythonÓïÑÔÒ²¾ßÓдËÏÄÜ¡£ÆäÖУ¬PIL(Python Imaging Library )ÊÇPython×î³£ÓõÄͼÏñ´¦Àí¿â£¬Ëü²»½öÌṩÁ˹㷺µÄÎļþ¸ñʽ֧³Ö£¬¶øÇÒ¾ßÓÐÇ¿´óµÄͼÏñ´¦Àí¹¦ÄÜ¡£
PIL¿âÖÐÒ»¸ö·Ç³£ÖØÒªµÄÀàÊÇImageÀ࣬¸ÃÀඨÒåÔÚÓëËüͬÃûµÄÄ£¿éÖС£´´½¨ImageÀà¶ÔÏóµÄ·½·¨ÓкܶàÖÖ£¬°üÀ¨´ÓÎļþÖжÁÈ¡µÃµ½£¬»ò´ÓÆäËûͼÏñ¾¹ý´¦ÀíµÃµ½£¬»òÕß´´½¨È«Ðµġ£ÏÂÃæ¶ÔPIL¿âµÄһЩ³£Óú¯ÊýºÍ·½·¨½øÐмòµ¥½éÉÜ¡£
1.new()º¯Êý
new()º¯ÊýµÄ¶¨Òå¸ñʽÈçÏ£º
Image.new(mode, size, color=0)
ÉÏÊöº¯ÊýÓÃÓÚ´´½¨Ò»¸öÐÂͼÏñ¡£ÆäÖУ¬mode±íʾģʽ£¬size±íʾ´óС¡£µ±´´½¨µ¥Í¨µÀͼÏñʱ£¬colorÊǵ¥¸öÖµ£»µ±´´½¨¶àͨµÀͼÏñʱ£¬colorÊÇÒ»¸öÔª×é¡£ÈôÊ¡ÂÔÁËcolor²ÎÊý£¬ÔòͼÏñ±»Ìî³ä³ÉÈ«ºÚ£»Èôcolor²ÎÊýµÄֵΪNone£¬ÔòͼÏñ²»±»³õʼ»¯¡£
2. open()º¯Êý
open()º¯ÊýµÄ¶¨Òå¸ñʽÈçÏ£º
open(fp, mode="r")
ÉÏÊöº¯Êý¿ÉÒÔ´ò¿ª²¢Ê¶±ð¸ø¶¨µÄͼÏñÎļþ¡£ÆäÖУ¬fp±íʾ×Ö·û´®ÐÎʽµÄÎļþÃû³Æ£¬mode²ÎÊý¿ÉÒÔÊ¡ÂÔ£¬µ«Ö»ÄÜÉèÖÃΪ“r”¡£Èç¹ûÔØÈËÎļþʧ°Ü£¬Ôò»áÒýÆðÒ»¸öIOErrorÒì³££¬·ñÔò·µ»ØÒ»¸öImageÀà¶ÔÏó¡£
ʵ¼ÊÉÏ£¬ÉÏÊöº¯Êý»á±»ÑÓ³Ù²Ù×÷£¬Êµ¼ÊµÄͼÏñÊý¾Ý²¢²»»áÂíÉÏ´ÓÎļþÖжÁÈ¡£¬¶øÊǵȵ½ÐèÒª´¦ÀíÕâЩÊý¾Ýʱ²Å±»¶ÁÈ¡¡£Õâʱ£¬¿ÉÒÔµ÷ÓÃload0º¯Êý½øÐÐÇ¿ÖÆ¼ÓÔØ¡£
´´½¨Í¼Ïñ¶ÔÏóºó£¬¿ÉÒÔͨ¹ýImageÀàÌṩµÄ·½·¨´¦ÀíÕâЩͼÏñ¡£ÎªÁËÈôó¼Ò¸üºÃµØÀí½â£¬ÏÂÃæÒÔ³£ÓõÄÁ½¸ö·½·¨(save()ºÍpoint()·½·¨)½øÐÐ˵Ã÷¡£
(1) save()·½·¨£¬ÆäÓï·¨¸ñʽÈçÏ£º
save(self, fp, format=None, **params)
ÉÏÊö·½·¨½«ÒÔÌØ¶¨µÄͼƬ¸ñʽ±£´æÍ¼Æ¬¡£´ó¶àÊýÇé¿öÏ£¬¿ÉÒÔÊ¡ÂÔͼƬµÄ¸ñʽ¡£Õâʱ£¬¸Ã·½·¨»á¸ù¾ÝÎļþµÄÀ©Õ¹ÃûÀ´Ñ¡ÔñÏàÓ¦µÄͼƬ¸ñʽ¡£¾ßÌåʾÀý´úÂëÈçÏ£º
image.save("test.jpg",'JPG")
»òÕߣº
save("test.jpg")
(2) point()·½·¨£º¿ÉÒÔ¶ÔͼÏñµÄÏñËØÖµ½øÐб任¡£ÆäÓï·¨¸ñʽÈçÏ£º
point(self, lut, mode=None)
ÔÚ´ó¶àÊý³¡ºÏÖУ¬¿ÉÒÔʹÓú¯Êý(´øÒ»¸ö²ÎÊý)×÷Ϊ²ÎÊý´«µÝ¸øpoint()·½·¨£¬Í¼ÏñµÄÿ¸öÏñËØ¶¼»áʹÓÃÕâ¸öº¯Êý½øÐб任¡£Ê¾Àý´úÂëÈçÏ£º
# ÿ¸öÏñËØ³ËÒÔ1.2 out=im.point(lambda i: i *1.2)
ÐèҪעÒâµÄÊÇ£¬Èç¹ûͼÏñµÄģʽΪ“I”(ÕûÊý)»ò“F”(¸¡µãÊý)£¬Ôò±ØÐëʹÓú¯Êý£¬ÇÒ±ØÐë¾ßÓÐÒÔϸñʽ£º
argument (²ÎÊý) *scale (±¶ÂÊ) +offset(Æ«ÒÆÁ¿)
ÀýÈ磬ӳÉ両µãͼÏñµÄʾÀýÈçÏ£º
out=im.point(lambda i:i*1.2+10)
±±¾©Ð£Çø