{"id":96,"date":"2023-01-10T14:36:54","date_gmt":"2023-01-10T06:36:54","guid":{"rendered":"https:\/\/mianka.xyz\/?p=95"},"modified":"2023-01-10T16:12:36","modified_gmt":"2023-01-10T08:12:36","slug":"python-pil","status":"publish","type":"post","link":"https:\/\/www.mianka.xyz\/?p=96","title":{"rendered":"python \u4f7f\u7528PIL\u5e93\u8fdb\u884c\u9a8c\u8bc1\u7801\u6e05\u6670\u5904\u7406"},"content":{"rendered":"<h1><a href=\"https:\/\/www.mianka.xyz\/?cat=3\" rel=\"noopener\" class=\"smart-seo-link\">python<\/a> \u4f7f\u7528PIL\u5e93\u8fdb\u884c\u9a8c\u8bc1\u7801\u6e05\u6670\u5904\u7406<\/h1>\n<pre class=\"prism-highlight prism-language-python\">from&nbsp;PIL&nbsp;import&nbsp;Image\nimport&nbsp;sys\nimport&nbsp;os\nsys.setrecursionlimit(1000000)\npixel_list&nbsp;=&nbsp;[]\nall_pixel_list&nbsp;=&nbsp;[]\n#\u4e8c\u503c\u5316\ndef&nbsp;Binarization(image):\n&nbsp;&nbsp;&nbsp;&nbsp;threshold&nbsp;=&nbsp;160\n&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;=&nbsp;[]\n&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;i&nbsp;in&nbsp;range(256):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;i&nbsp;&lt;&nbsp;threshold:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.append(0)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.append(1)\n&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;=&nbsp;image.point(table,&nbsp;&#39;1&#39;)\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;image\ndef&nbsp;partition(image):\n&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;=&nbsp;image.size[0]\n&nbsp;&nbsp;&nbsp;&nbsp;height&nbsp;=&nbsp;image.size[1]\n&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;1\n&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;w&nbsp;in&nbsp;range(width):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;h&nbsp;in&nbsp;range(height):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel&nbsp;=&nbsp;image.getpixel((w,&nbsp;h))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;pixel&nbsp;==&nbsp;0:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zuobiao&nbsp;=&nbsp;str(w)&nbsp;+&nbsp;&#39;,&#39;&nbsp;+&nbsp;str(h)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;zuobiao&nbsp;not&nbsp;in&nbsp;all_pixel_list:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(&#39;\u8d77\u59cb\u50cf\u7d20&#39;,&nbsp;zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(pixel_list)&nbsp;&gt;&nbsp;20:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.clear()\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_around(w,&nbsp;h)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(pixel_list)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;len(pixel_list)&nbsp;&nbsp;&gt;&nbsp;20:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;+=&nbsp;1\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;count&nbsp;!=&nbsp;1:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass\ndef&nbsp;check_around(width,height):\n&nbsp;&nbsp;&nbsp;&nbsp;shang&nbsp;=&nbsp;(&nbsp;width&nbsp;,&nbsp;height-1)\n&nbsp;&nbsp;&nbsp;&nbsp;xia&nbsp;=&nbsp;(&nbsp;width&nbsp;,&nbsp;height+1&nbsp;)\n&nbsp;&nbsp;&nbsp;&nbsp;zuo&nbsp;=&nbsp;(&nbsp;width-1,&nbsp;height)\n&nbsp;&nbsp;&nbsp;&nbsp;you&nbsp;=&nbsp;(&nbsp;width+1&nbsp;,&nbsp;height)\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;image.getpixel(shang)&nbsp;==&nbsp;0:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zuobiao&nbsp;=&nbsp;str(shang[0])&nbsp;+&nbsp;&#39;,&#39;&nbsp;+&nbsp;str(shang[1])\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;zuobiao&nbsp;not&nbsp;in&nbsp;all_pixel_list:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_around(shang[0],&nbsp;shang[1])\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;image.getpixel(xia)&nbsp;==&nbsp;0:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zuobiao&nbsp;=&nbsp;str(xia[0])+&#39;,&#39;+str(xia[1])\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;zuobiao&nbsp;not&nbsp;in&nbsp;all_pixel_list:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_around(xia[0],xia[1])\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;image.getpixel(zuo)&nbsp;==&nbsp;0:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zuobiao&nbsp;=&nbsp;str(zuo[0])+&#39;,&#39;+str(zuo[1])\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;zuobiao&nbsp;not&nbsp;in&nbsp;all_pixel_list:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_around(zuo[0],zuo[1])\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;image.getpixel(you)&nbsp;==&nbsp;0:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zuobiao&nbsp;=&nbsp;str(you[0])+&#39;,&#39;+str(you[1])\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;zuobiao&nbsp;not&nbsp;in&nbsp;all_pixel_list:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel_list.append(zuobiao)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_around(you[0],you[1])\nif&nbsp;__name__&nbsp;==&nbsp;&#39;__main__&#39;:\n&nbsp;&nbsp;&nbsp;&nbsp;path&nbsp;=&nbsp;os.path.dirname(__file__)&nbsp;+&#39;jpg\/&#39;\n&nbsp;&nbsp;&nbsp;&nbsp;out_path&nbsp;=&nbsp;os.path.dirname(__file__)&nbsp;+&#39;out_jpg\/&#39;\n&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;filename&nbsp;in&nbsp;os.listdir(path):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;=&nbsp;Image.open(path&nbsp;+&nbsp;filename)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;=&nbsp;image.convert(&#39;L&#39;)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;=&nbsp;filename.split(&#39;.&#39;)[0]\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image&nbsp;=&nbsp;Binarization(image)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.save(out_path&nbsp;+&nbsp;&#39;\\{}_\u4e8c\u503c\u5316.jpg&#39;.format(id))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;partition(image)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all_pixel_list.clear()<\/pre>\n<p><\/p>\n<p>\u4e0b\u8f7d\u9a8c\u8bc1\u7801\u7a0b\u5e8f<\/p>\n<pre class=\"prism-highlight prism-language-python\">#&nbsp;\u4e0b\u8f7d\u9a8c\u8bc1\u7801\nimport&nbsp;requests\nimport&nbsp;os\npath&nbsp;=&nbsp;os.path.dirname(__file__)\nfor&nbsp;i&nbsp;in&nbsp;range(10):\n&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;=&nbsp;&#39;https:\/\/my.cnki.net\/Register\/CheckCode.aspx?id=1605429917005&#39;\n&nbsp;&nbsp;&nbsp;&nbsp;response&nbsp;=&nbsp;requests.get(url)\n&nbsp;&nbsp;&nbsp;&nbsp;file_path&nbsp;=&nbsp;path&nbsp;+&nbsp;&#39;jpg\/{}.jpg&#39;.format(i)\n&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;open(file_path,&#39;wb&#39;)&nbsp;as&nbsp;f:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.write(response.content)<\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>python\u4f7f\u7528PIL\u5e93\u8fdb\u884c\u9a8c\u8bc1\u7801\u6e05\u6670\u5904\u7406fromPILimportImageimport&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[15],"class_list":["post-96","post","type-post","status-publish","format-standard","hentry","category-pythonbiji","tag-python"],"_links":{"self":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts\/96","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=96"}],"version-history":[{"count":0,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts\/96\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=96"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=96"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}