心之所向素履以往全诗比较不乱的wwW395uu也不能收看了,副本挺不乱的395uucOm怎样回事

&p&扶我上去,我来走心的回答一下这个问题。&b&大后寿寿花饰演《艺伎回忆录》中的主角千代子,一双蓝灰色眼睛,就注定了小姑娘不平凡的人生道路。&/b&&/p&&p&&b&这部电影讲述了,一个小女孩被卖到京都一家知名的艺妓馆学艺,故事便从此开始了(不剧透)。&/b&&/p&&p&&b&电影前期是由大后寿寿花长大后就由章子怡饰演,这部电影中后期故事并没有这么好&/b&。自从小百合长大以后故事基本以平铺直叙的方式进行,不论是成为艺妓,是战争,是落难,还是重逢,故事都没有任何突出的重点,也没有惊心动魄的情节,可谓是一个较于平静的回忆录。&/p&&p&&b&男人定义女孩的漂亮往往从第一眼开始,往往只因为一个眼神或一个微笑便足以让男人心跳,然后男人便会产生一见钟情的想法,与其说一见钟情不如说是见色起意,这类女孩被男人统称为漂亮。&/b&&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/730688& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic3.zhimg.com/80/v2-9fa0bf49e0a5bc6cba05e_b.jpg& data-lens-id=&730688&&
&img class=&thumbnail& src=&https://pic3.zhimg.com/80/v2-9fa0bf49e0a5bc6cba05e_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/730688&/span&
&/a&&hr&&p&福利,福利,剧照。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bcfd98d8a950622bde4e6bb8e64512e3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&886& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-bcfd98d8a950622bde4e6bb8e64512e3_r.jpg&&&/figure&
扶我上去,我来走心的回答一下这个问题。大后寿寿花饰演《艺伎回忆录》中的主角千代子,一双蓝灰色眼睛,就注定了小姑娘不平凡的人生道路。这部电影讲述了,一个小女孩被卖到京都一家知名的艺妓馆学艺,故事便从此开始了(不剧透)。电影前期是由大后寿寿花…
&p&死宅一枚。爬取5000张二次元妹子的图片,生成了下面这张图(查看原图小图清晰可见,没有奇奇怪怪的图片)。&/p&&figure&&img data-rawheight=&2193& src=&https://pic2.zhimg.com/v2-e86fa1c0fadcd_b.jpg& data-size=&normal& data-rawwidth=&2193& class=&origin_image zh-lightbox-thumb& width=&2193& data-original=&https://pic2.zhimg.com/v2-e86fa1c0fadcd_r.jpg&&&/figure&&p&&br&&/p&&p&具体制作流程:&/p&&ul&&li&使用 Scrapy 框架爬取5000张二次元图片&/li&&li&使用 opencv
批量格式化图片&/li&&li&将图片按照 HSV 欧式距离排序重新组合图片,实现效果&/li&&li&或者借助软件类似 &a href=&//link.zhihu.com/?target=http%3A//www.fmedda.com/home& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Foto-Mosaik-Edda&i class=&icon-external&&&/i&&/a& 实现相同效果&/li&&/ul&&p&&br&&/p&&p&Foto-Mosaik-Edda 合成软件 &a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1kVu0GS3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网盘下载&i class=&icon-external&&&/i&&/a&&/p&&p&5000张图片数据集合打包下载 &a href=&//link.zhihu.com/?target=https%3A//pan.baidu.com/s/1eRMJBUy& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pan.baidu.com/s/1eRMJBU&/span&&span class=&invisible&&y&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&Github项目地址 &a href=&//link.zhihu.com/?target=https%3A//github.com/ThomasHuai/puzzle/blob/master/README.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&https://github.com/ThomasHuai/puzzle&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&h2&&b&一、安装开发环境&/b&&/h2&&p&&br&&/p&&ol&&li&安装 &b&Scrapy &/b&爬虫框架 &/li&&/ol&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&pip install Scrapy
&/code&&/pre&&/div&&p&&br&&/p&&p&windows 安装可以&a href=&//link.zhihu.com/?target=https%3A//sourceforge.net/projects/pywin32/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击此处&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&2. 推荐使用 wheel 来安装 opencv &a href=&//link.zhihu.com/?target=http%3A//www.lfd.uci.edu/%7Egohlke/pythonlibs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击此处&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&3.安装 numpy 科学计算库&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&pip install numpy
&/code&&/pre&&/div&&p&&br&&/p&&p&4. 初始化一个 Scrapy 项目 acg&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&scrapy startproject acg
&/code&&/pre&&/div&&h2&&b&二、爬取图片&/b&&/h2&&p&&br&&/p&&p&&b&日有效版本:&/b&&/p&&p&&br&&/p&&ul&&li&&b&更新爬取网站为
&/b&&a href=&//link.zhihu.com/?target=http%3A//www.acg.fi/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.acg.fi&i class=&icon-external&&&/i&&/a& (原先为 &a href=&//link.zhihu.com/?target=http%3A//www.52dmtp.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&http://www.52dmtp.com&i class=&icon-external&&&/i&&/a&)&/li&&li&&b&添加仿浏览器头部&/b&&/li&&li&&b&为新萌修复路径&/b&&/li&&/ul&&p&&br&&/p&&p&&b&日更新可用(感谢知友对项目的优化):&/b&&/p&&p&&br&&/p&&ul&&li&&b&1.捕获http异常,防止中断&/b&&/li&&li&&b&2.图片数据读取判断,防止入坑&/b&&/li&&li&&b&3.爬取二级页面分页&/b&&/li&&/ul&&p&&br&&/p&&p&&b&以下代码主要实现操作:&/b&&/p&&ul&&li&中间裁剪&/li&&li&统一大小&/li&&li&下载图片&/li&&li&重复抓取&/li&&/ul&&p&&br&&/p&&p&/image.py&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&c&&#coding=utf-8&/span&
&span class=&c&&#update at &/span&
&span class=&kn&&from&/span& &span class=&nn&&http.client&/span& &span class=&kn&&import&/span& &span class=&n&&IncompleteRead&/span&
&span class=&kn&&import&/span& &span class=&nn&&scrapy&/span&
&span class=&kn&&import&/span& &span class=&nn&&urllib.request&/span&&span class=&o&&,&/span&&span class=&nn&&urllib.parse&/span&
&span class=&kn&&import&/span& &span class=&nn&&numpy&/span& &span class=&kn&&as&/span& &span class=&nn&&np&/span&
&span class=&kn&&import&/span& &span class=&nn&&cv2&/span&
&span class=&kn&&import&/span& &span class=&nn&&os&/span&
&span class=&k&&class&/span& &span class=&nc&&acgimages&/span&&span class=&p&&(&/span&&span class=&n&&scrapy&/span&&span class=&o&&.&/span&&span class=&n&&Spider&/span&&span class=&p&&):&/span&
&span class=&sd&&&&&docstring for acgimages&&&&/span&
&span class=&n&&name&/span& &span class=&o&&=&/span& &span class=&s&&'images'&/span&
&span class=&n&&start_urls&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&
&span class=&s&&&http://www.acg.fi/anime/page/1&&/span&
&span class=&p&&]&/span&
&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&page&/span& &span class=&o&&=&/span& &span class=&mi&&1&/span&
&span class=&k&&def&/span& &span class=&nf&&parse3&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&response&/span&&span class=&p&&):&/span&
&span class=&n&&image_url&/span& &span class=&o&&=&/span& &span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&n&&xpath&/span&&span class=&p&&(&/span&&span class=&s&&&//article[@class='article-content']//img/@src&&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&extract&/span&&span class=&p&&()&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&n&&image_url&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&一共找到图片&/span&&span class=&si&&%d&/span&&span class=&s&&&&/span& &span class=&o&&%&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&image_url&/span&&span class=&p&&))&/span&
&span class=&k&&for&/span& &span class=&n&&item&/span& &span class=&ow&&in&/span& &span class=&n&&image_url&/span&&span class=&p&&:&/span&
&span class=&n&&item&/span& &span class=&o&&=&/span& &span class=&n&&urllib&/span&&span class=&o&&.&/span&&span class=&n&&parse&/span&&span class=&o&&.&/span&&span class=&n&&quote&/span&&span class=&p&&(&/span&&span class=&n&&item&/span&&span class=&p&&,&/span&&span class=&n&&safe&/span&&span class=&o&&=&/span&&span class=&s&&'/:?=.'&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&s&&'jpg'&/span& &span class=&ow&&in&/span& &span class=&n&&item&/span&&span class=&p&&:&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&
&span class=&n&&path&/span& &span class=&o&&=&/span& &span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&path&/span&&span class=&o&&.&/span&&span class=&n&&dirname&/span&&span class=&p&&(&/span&&span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&path&/span&&span class=&o&&.&/span&&span class=&n&&abspath&/span&&span class=&p&&(&/span&&span class=&n&&__file__&/span&&span class=&p&&))&/span&&span class=&o&&+&/span& &span class=&s&&'/../img/'&/span& &span class=&o&&+&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s&&&.jpg&&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&imageSave&/span&&span class=&p&&(&/span&&span class=&n&&item&/span&&span class=&p&&,&/span&&span class=&n&&path&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&s&&'png'&/span& &span class=&ow&&in&/span& &span class=&n&&item&/span&&span class=&p&&:&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&
&span class=&n&&path&/span& &span class=&o&&=&/span& &span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&path&/span&&span class=&o&&.&/span&&span class=&n&&dirname&/span&&span class=&p&&(&/span&&span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&path&/span&&span class=&o&&.&/span&&span class=&n&&abspath&/span&&span class=&p&&(&/span&&span class=&n&&__file__&/span&&span class=&p&&))&/span&&span class=&o&&+&/span& &span class=&s&&'/../img/'&/span& &span class=&o&&+&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&count&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s&&&.png&&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&imageSave&/span&&span class=&p&&(&/span&&span class=&n&&item&/span&&span class=&p&&,&/span&&span class=&n&&path&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&parse2&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&response&/span&&span class=&p&&):&/span&
&span class=&n&&pages_url&/span& &span class=&o&&=&/span& &span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&n&&xpath&/span&&span class=&p&&(&/span&&span class=&s&&&//div[@class='fenye']//a/@href&&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&extract&/span&&span class=&p&&()&/span&
&span class=&n&&num&/span&&span class=&o&&=&/span&&span class=&mi&&1&/span&
&span class=&k&&if&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&pages_url&/span&&span class=&p&&)&/span&&span class=&o&&==&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&n&&pages&/span& &span class=&o&&=&/span& &span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&n&&xpath&/span&&span class=&p&&(&/span&&span class=&s&&&//h1[@class='article-title']//a/@href&&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&extract&/span&&span class=&p&&()&/span&
&span class=&k&&yield&/span& &span class=&n&&scrapy&/span&&span class=&o&&.&/span&&span class=&n&&Request&/span&&span class=&p&&(&/span&&span class=&n&&pages&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&],&/span& &span class=&n&&callback&/span&&span class=&o&&=&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&parse3&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&for&/span& &span class=&n&&pages&/span& &span class=&ow&&in&/span& &span class=&n&&pages_url&/span&&span class=&p&&[:&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&pages_url&/span&&span class=&p&&)&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&]:&/span&
&span class=&n&&pages&/span&&span class=&o&&=&/span&&span class=&n&&pages&/span&&span class=&p&&[:&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&pages&/span&&span class=&p&&)&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&&span class=&o&&+&/span&&span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&num&/span&&span class=&p&&)&/span&
&span class=&n&&num&/span&&span class=&o&&=&/span&&span class=&n&&num&/span&&span class=&o&&+&/span&&span class=&mi&&1&/span&
&span class=&k&&yield&/span& &span class=&n&&scrapy&/span&&span class=&o&&.&/span&&span class=&n&&Request&/span&&span class=&p&&(&/span&&span class=&n&&pages&/span&&span class=&p&&,&/span&&span class=&n&&callback&/span&&span class=&o&&=&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&parse3&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&parse&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&response&/span&&span class=&p&&):&/span&
&span class=&n&&pages_url&/span& &span class=&o&&=&/span& &span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&n&&xpath&/span&&span class=&p&&(&/span&&span class=&s&&&//div[@class='card-item']//h3//a/@href&&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&extract&/span&&span class=&p&&()&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&一共找到二级页面&/span&&span class=&si&&%d&/span&&span class=&s&&&&/span& &span class=&o&&%&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&pages_url&/span&&span class=&p&&))&/span&
&span class=&k&&for&/span& &span class=&n&&pages&/span& &span class=&ow&&in&/span& &span class=&n&&pages_url&/span&&span class=&p&&:&/span&
&span class=&k&&yield&/span& &span class=&n&&scrapy&/span&&span class=&o&&.&/span&&span class=&n&&Request&/span&&span class=&p&&(&/span&&span class=&n&&pages&/span&&span class=&p&&,&/span& &span class=&n&&callback&/span&&span class=&o&&=&/span&&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&parse2&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&page&/span& &span class=&o&&&&/span& &span class=&mi&&1180&/span&&span class=&p&&:&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&page&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&page&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&
&span class=&n&&next_url&/span& &span class=&o&&=&/span& &span class=&s&&&http://www.acg.fi/anime/page/&/span&&span class=&si&&%d&/span&&span class=&s&&&&/span& &span class=&o&&%&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&page&/span&
&span class=&k&&yield&/span& &span class=&n&&scrapy&/span&&span class=&o&&.&/span&&span class=&n&&Request&/span&&span class=&p&&(&/span&&span class=&n&&next_url&/span&&span class=&p&&,&/span&&span class=&n&&callback&/span& &span class=&o&&=&/span& &span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&parse&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&imageSave&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&item&/span&&span class=&p&&,&/span&&span class=&n&&path&/span&&span class=&p&&):&/span&
&span class=&n&&maxsize&/span& &span class=&o&&=&/span& &span class=&mi&&512&/span&
&span class=&n&&req&/span& &span class=&o&&=&/span& &span class=&n&&urllib&/span&&span class=&o&&.&/span&&span class=&n&&request&/span&&span class=&o&&.&/span&&span class=&n&&Request&/span&&span class=&p&&(&/span&&span class=&n&&item&/span&&span class=&p&&)&/span&
&span class=&n&&req&/span&&span class=&o&&.&/span&&span class=&n&&add_header&/span&&span class=&p&&(&/span&&span class=&s&&&User-Agent&&/span&&span class=&p&&,&/span&&span class=&s&&&Mozilla/5.0 (M Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0. Safari/537.36&&/span&&span class=&p&&)&/span&
&span class=&n&&req&/span&&span class=&o&&.&/span&&span class=&n&&add_header&/span&&span class=&p&&(&/span&&span class=&s&&&GET&&/span&&span class=&p&&,&/span&&span class=&n&&item&/span&&span class=&p&&)&/span&
&span class=&n&&req&/span&&span class=&o&&.&/span&&span class=&n&&add_header&/span&&span class=&p&&(&/span&&span class=&s&&&Host&&/span&&span class=&p&&,&/span&&span class=&s&&&img.gov.com.de&&/span&&span class=&p&&)&/span&
&span class=&n&&req&/span&&span class=&o&&.&/span&&span class=&n&&add_header&/span&&span class=&p&&(&/span&&span class=&s&&&Referer&&/span&&span class=&p&&,&/span&&span class=&n&&item&/span&&span class=&p&&)&/span&
&span class=&k&&try&/span&&span class=&p&&:&/span&
&span class=&n&&res&/span& &span class=&o&&=&/span& &span class=&n&&urllib&/span&&span class=&o&&.&/span&&span class=&n&&request&/span&&span class=&o&&.&/span&&span class=&n&&urlopen&/span&&span class=&p&&(&/span&&span class=&n&&req&/span&&span class=&p&&,&/span&&span class=&n&&timeout&/span&&span class=&o&&=&/span&&span class=&mi&&30&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&n&&read&/span&&span class=&p&&()&/span&
&span class=&n&&image&/span& &span class=&o&&=&/span& &span class=&n&&np&/span&&span class=&o&&.&/span&&span class=&n&&asarray&/span&&span class=&p&&(&/span&&span class=&nb&&bytearray&/span&&span class=&p&&(&/span&&span class=&n&&res&/span&&span class=&p&&),&/span&&span class=&n&&dtype&/span&&span class=&o&&=&/span&&span class=&s&&&uint8&&/span&&span class=&p&&)&/span&
&span class=&n&&image&/span& &span class=&o&&=&/span& &span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&imdecode&/span&&span class=&p&&(&/span&&span class=&n&&image&/span&&span class=&p&&,&/span&&span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&IMREAD_COLOR&/span&&span class=&p&&)&/span&
&span class=&n&&height&/span&&span class=&p&&,&/span&&span class=&n&&width&/span& &span class=&o&&=&/span& &span class=&n&&image&/span&&span class=&o&&.&/span&&span class=&n&&shape&/span&&span class=&p&&[:&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&k&&if&/span& &span class=&n&&height&/span& &span class=&o&&&&/span& &span class=&n&&width&/span&&span class=&p&&:&/span&
&span class=&n&&scalefactor&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&n&&maxsize&/span&&span class=&o&&*&/span&&span class=&mf&&1.0&/span&&span class=&p&&)&/span& &span class=&o&&/&/span& &span class=&n&&width&/span&
&span class=&n&&res&/span& &span class=&o&&=&/span& &span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&resize&/span&&span class=&p&&(&/span&&span class=&n&&image&/span&&span class=&p&&,(&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&width&/span& &span class=&o&&*&/span& &span class=&n&&scalefactor&/span&&span class=&p&&),(&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&height&/span& &span class=&o&&*&/span& &span class=&n&&scalefactor&/span&&span class=&p&&))),&/span&&span class=&n&&interpolation&/span& &span class=&o&&=&/span& &span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&INTER_CUBIC&/span&&span class=&p&&)&/span&
&span class=&n&&cutImage&/span& &span class=&o&&=&/span& &span class=&n&&res&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&&span class=&n&&maxsize&/span&&span class=&p&&,&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&&span class=&n&&maxsize&/span&&span class=&p&&]&/span&
&span class=&k&&if&/span& &span class=&n&&width&/span& &span class=&o&&&=&/span& &span class=&n&&height&/span&&span class=&p&&:&/span&
&span class=&n&&scalefactor&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&n&&maxsize&/span&&span class=&o&&*&/span&&span class=&mf&&1.0&/span&&span class=&p&&)&/span& &span class=&o&&/&/span& &span class=&n&&height&/span&
&span class=&n&&res&/span& &span class=&o&&=&/span& &span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&resize&/span&&span class=&p&&(&/span&&span class=&n&&image&/span&&span class=&p&&,(&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&width&/span& &span class=&o&&*&/span& &span class=&n&&scalefactor&/span&&span class=&p&&),&/span& &span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&height&/span&&span class=&o&&*&/span&&span class=&n&&scalefactor&/span&&span class=&p&&)),&/span& &span class=&n&&interpolation&/span& &span class=&o&&=&/span& &span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&INTER_CUBIC&/span&&span class=&p&&)&/span&
&span class=&n&&center_x&/span& &span class=&o&&=&/span& &span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&width&/span&&span class=&o&&*&/span&&span class=&n&&scalefactor&/span&&span class=&o&&*&/span&&span class=&mf&&0.5&/span&&span class=&p&&))&/span&
&span class=&n&&cutImage&/span& &span class=&o&&=&/span& &span class=&n&&res&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&&span class=&n&&maxsize&/span&&span class=&p&&,&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&center_x&/span& &span class=&o&&-&/span& &span class=&n&&maxsize&/span&&span class=&o&&/&/span&&span class=&mi&&2&/span&&span class=&p&&):&/span&&span class=&nb&&int&/span&&span class=&p&&(&/span&&span class=&n&&center_x&/span& &span class=&o&&+&/span& &span class=&n&&maxsize&/span&&span class=&o&&/&/span&&span class=&mi&&2&/span&&span class=&p&&)]&/span&
&span class=&n&&cv2&/span&&span class=&o&&.&/span&&span class=&n&&imwrite&/span&&span class=&p&&(&/span&&span class=&n&&path&/span&&span class=&p&&,&/span&&span class=&n&&cutImage&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&'image is save in '&/span& &span class=&o&&+&/span& &span class=&n&&path&/span&&span class=&p&&)&/span&
&span class=&k&&except&/span& &span class=&n&&urllib&/span&&span class=&o&&.&/span&&span class=&n&&error&/span&&span class=&o&&.&/span&&span class=&n&&HTTPError&/span& &span class=&k&&as&/span& &span class=&n&&e&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&n&&e&/span&&span class=&o&&.&/span&&span class=&n&&code&/span&&span class=&p&&)&/span&
&span class=&k&&except&/span& &span class=&p&&(&/span&&span class=&n&&IncompleteRead&/span&&span class=&p&&)&/span& &span class=&k&&as&/span& &span class=&n&&e&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&n&&e&/span&&span class=&o&&.&/span&&span class=&n&&code&/span&&span class=&p&&)&/span&
&span class=&k&&except&/span& &span class=&n&&urllib&/span&&span class=&o&&.&/span&&span class=&n&&error&/span&&span class=&o&&.&/span&&span class=&n&&URLError&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&'URLError:&/span&&span class=&si&&%s&/span&&span class=&s&&'&/span& &span class=&o&&%&/span& &span class=&n&&item&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&pageend,total:&/span&&span class=&si&&%d&/span&&span class=&s&&&&/span& &span class=&o&&%&/span& &span class=&n&&count&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&&br&&/p&&h2&&b&三、生成图片&/b&&/h2&&p&&br&&/p&&p&软件下载地址:&a href=&//link.zhihu.com/?target=http%3A//www.fmedda.com/home& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Welcome | FMEdda | Foto-Mosaik-Edda&i class=&icon-external&&&/i&&/a&&/p&&p&&br&&/p&&p&1.创建一个图片数据库&/p&&figure&&img data-rawheight=&700& src=&https://pic3.zhimg.com/v2-c238ea522eae1dc110452_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-c238ea522eae1dc110452_r.jpg&&&/figure&&p&&br&&/p&&p&2.导入图片&/p&&figure&&img data-rawheight=&700& src=&https://pic4.zhimg.com/v2-3c96b8aa9a_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic4.zhimg.com/v2-3c96b8aa9a_r.jpg&&&/figure&&p&&br&&/p&&p&3.导入过程中&/p&&figure&&img data-rawheight=&700& src=&https://pic2.zhimg.com/v2-698a541dbca06c2df739e89f868c9ec9_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic2.zhimg.com/v2-698a541dbca06c2df739e89f868c9ec9_r.jpg&&&/figure&&p&&br&&/p&&p&4.创建一个马赛克风格图片&/p&&figure&&img data-rawheight=&700& src=&https://pic2.zhimg.com/v2-2dac1a9e1ed0fe_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic2.zhimg.com/v2-2dac1a9e1ed0fe_r.jpg&&&/figure&&p&&br&&/p&&p&5.打开原图&/p&&figure&&img data-rawheight=&700& src=&https://pic3.zhimg.com/v2-f13fe31b655b9a6d28d7d358ffa6d176_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-f13fe31b655b9a6d28d7d358ffa6d176_r.jpg&&&/figure&&p&&br&&/p&&p&6.选择已经上传的数据库&/p&&figure&&img data-rawheight=&700& src=&https://pic4.zhimg.com/v2-faf0d935b4ef_b.jpg& data-size=&normal& data-rawwidth=&1000& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic4.zhimg.com/v2-faf0d935b4ef_r.jpg&&&/figure&&p&&br&&/p&&p&7.生成完成&/p&&figure&&img data-rawheight=&2014& src=&https://pic2.zhimg.com/v2-a6dddce4f5cb1_b.jpg& data-size=&normal& data-rawwidth=&2040& class=&origin_image zh-lightbox-thumb& width=&2040& data-original=&https://pic2.zhimg.com/v2-a6dddce4f5cb1_r.jpg&&&/figure&&p&&br&&/p&&p&简单高效的平民玩法到此结束。&/p&&p&&br&&/p&&p&逼格不够? &/p&&p&下面分享用 python 代码实现该软件的马赛克拼图效果。&/p&&p&&br&&/p&&p&日 本来今天开开心心。被迫更新&/p&&p&&br&&/p&&h2&&b&一、安装依赖&/b&&/h2&&p&&br&&/p&&p&1.安装图像处理库 pillow&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&pip install pillow
&/code&&/pre&&/div&&p&&br&&/p&&h2&&b&二、使用 python 做到马赛克拼图效果&/b&&/h2&&p&&br&&/p&&p&&b&日二更:&/b&&/p&&p&&br&&/p&&p&&b&1.使用 rgb 平均数实现类似效果&/b&&/p&&p&&b&2.完成多线程处理图片&/b&&/p&&p&&br&&/p&&p&取 rgb 平均值:&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&def&/span& &span class=&nf&&get_avg_color&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&):&/span&
&span class=&n&&width&/span&&span class=&p&&,&/span& &span class=&n&&height&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&
&span class=&n&&pixels&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&load&/span&&span class=&p&&()&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&width&/span&&span class=&p&&):&/span&
&span class=&k&&for&/span& &span class=&n&&y&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&height&/span&&span class=&p&&):&/span&
&span class=&n&&content&/span& &span class=&o&&=&/span& &span class=&n&&pixels&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&n&&y&/span&&span class=&p&&]&/span&
&span class=&n&&data&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&content&/span&&span class=&p&&)&/span&
&span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&g&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&b&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&)):&/span&
&span class=&n&&r&/span& &span class=&o&&+=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&g&/span& &span class=&o&&+=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&n&&b&/span& &span class=&o&&+=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&n&&count&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&n&&rAvg&/span& &span class=&o&&=&/span& &span class=&n&&r&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&
&span class=&n&&gAvg&/span& &span class=&o&&=&/span& &span class=&n&&g&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&
&span class=&n&&bAvg&/span& &span class=&o&&=&/span& &span class=&n&&b&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&
&span class=&k&&return&/span& &span class=&p&&(&/span&&span class=&n&&rAvg&/span&&span class=&p&&,&/span& &span class=&n&&gAvg&/span&&span class=&p&&,&/span& &span class=&n&&bAvg&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&计算近似图片&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&def&/span& &span class=&nf&&find_closiest&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&,&/span& &span class=&n&&list_colors&/span&&span class=&p&&):&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&mi&&10000&/span&
&span class=&n&&cur_closer&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&n&&arr_len&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&cur_color&/span& &span class=&ow&&in&/span& &span class=&n&&list_colors&/span&&span class=&p&&:&/span&
&span class=&n&&n_diff&/span& &span class=&o&&=&/span& &span class=&nb&&abs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span& &span class=&o&&-&/span& &span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&])&/span& &span class=&o&&+&/span& &span class=&nb&&abs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&-&/span& &span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&])&/span&
&span class=&o&&+&/span& &span class=&nb&&abs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&])&/span&
&span class=&k&&if&/span& &span class=&n&&n_diff&/span& &span class=&o&&&&/span& &span class=&n&&diff&/span&&span class=&p&&:&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&n&&n_diff&/span&
&span class=&k&&if&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&cur_closer&/span&&span class=&p&&)&/span& &span class=&o&&&=&/span& &span class=&mi&&5&/span&&span class=&p&&:&/span&
&span class=&n&&cur_closer&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&cur_color&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&n&&arr_len&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&n&&cur_color&/span&
&span class=&n&&arr_len&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&k&&if&/span& &span class=&n&&arr_len&/span& &span class=&o&&&&/span& &span class=&mi&&5&/span&&span class=&p&&:&/span&
&span class=&n&&arr_len&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&index&/span& &span class=&o&&=&/span& &span class=&n&&random&/span&&span class=&o&&.&/span&&span class=&n&&randint&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&cur_closer&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&n&&index&/span&&span class=&p&&]&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&非洲鸟结果图:&/p&&figure&&img data-rawheight=&720& src=&https://pic1.zhimg.com/v2-3ca1ab2d533532facad7924bbe1f14e4_b.jpg& data-size=&normal& data-rawwidth=&720& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic1.zhimg.com/v2-3ca1ab2d533532facad7924bbe1f14e4_r.jpg&&&/figure&&p&图片重复比较多,效果一般,颜色并不能准确的识别,偏暗的颜色有更大的权重,所以不是非常理想,之后更新了代码。&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&日三更:&/b&&/p&&p&&br&&/p&&p&&b&1.使用 hsv (颜色空间)完成颜色精准适配&/b&&/p&&p&&b&2.自定义图片重复数量&/b&&/p&&p&&b&3.增加命令行进度条,增加命令行可自定义参数&/b&&/p&&p&&b&4.创建完成拼图数据库后可以直接合成,不用重复执行创建&/b&&/p&&p&&b&5.修复代码,提高执行效率&/b&&/p&&p&&br&&/p&&p&hsv (颜色空间模型)&/p&&p&&br&&/p&&figure&&img data-rawheight=&270& src=&https://pic1.zhimg.com/v2-26bedd98dbbc42bf69978a73ccf4c520_b.jpg& data-size=&normal& data-rawwidth=&242& class=&content_image& width=&242&&&/figure&&p&&br&&/p&&p&hsv 两点间距离公式(欧式距离):&/p&&p&&img src=&//www.zhihu.com/equation?tex=cost+%3D+%5Csqrt%7B%7Ch1%5E2+-h2%5E2%7C%2B%7Cs1%5E2+-s2%5E2%7C%2B%7Cv1%5E2+-v2%5E2%7C%7D& alt=&cost = \sqrt{|h1^2 -h2^2|+|s1^2 -s2^2|+|v1^2 -v2^2|}& eeimg=&1&&&/p&&p&&br&&/p&&p&核心方法,使用 hsv 平均值代替二更的 rgb 平均值,效果更好。&/p&&p&&br&&/p&&p&\main.py&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&def&/span& &span class=&nf&&get_avg_color&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&):&/span&
&span class=&n&&width&/span&&span class=&p&&,&/span& &span class=&n&&height&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&
&span class=&n&&pixels&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&load&/span&&span class=&p&&()&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&width&/span&&span class=&p&&):&/span&
&span class=&k&&for&/span& &span class=&n&&y&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&height&/span&&span class=&p&&):&/span&
&span class=&n&&cpixel&/span& &span class=&o&&=&/span& &span class=&n&&pixels&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&n&&y&/span&&span class=&p&&]&/span&
&span class=&n&&data&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&cpixel&/span&&span class=&p&&)&/span&
&span class=&n&&h&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&s&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&v&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&)):&/span&
&span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&g&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&n&&b&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&n&&count&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&n&&hsv&/span& &span class=&o&&=&/span& &span class=&n&&rgb_to_hsv&/span&&span class=&p&&(&/span&&span class=&n&&r&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&,&/span&&span class=&n&&g&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&,&/span&&span class=&n&&b&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&)&/span&
&span class=&n&&h&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&s&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&n&&v&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&n&&hAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&h&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&n&&sAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&s&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&n&&vAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&v&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&p&&(&/span&&span class=&n&&hAvg&/span&&span class=&p&&,&/span&&span class=&n&&sAvg&/span&&span class=&p&&,&/span&&span class=&n&&vAvg&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&核心方法,使用欧式距离求cost最小值&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&k&&def&/span& &span class=&nf&&find_closiest&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&,&/span& &span class=&n&&list_colors&/span&&span class=&p&&):&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&mi&&1000&/span&
&span class=&n&&cur_closer&/span& &span class=&o&&=&/span& &span class=&bp&&False&/span&
&span class=&n&&arr_len&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&cur_color&/span& &span class=&ow&&in&/span& &span class=&n&&list_colors&/span&&span class=&p&&:&/span&
&span class=&n&&n_diff&/span& &span class=&o&&=&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&sqrt&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&))&/span&
&span class=&k&&if&/span& &span class=&n&&n_diff&/span& &span class=&o&&&&/span& &span class=&n&&diff&/span& &span class=&ow&&and&/span& &span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&&=&/span& &span class=&n&&REPATE&/span&&span class=&p&&:&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&n&&n_diff&/span&
&span class=&n&&cur_closer&/span& &span class=&o&&=&/span& &span class=&n&&cur_color&/span&
&span class=&k&&if&/span& &span class=&ow&&not&/span& &span class=&n&&cur_closer&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&没有足够的近似图片,建议设置重复&&/span&&span class=&p&&)&/span&
&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&k&&return&/span& &span class=&s&&&({}, {}, {})&&/span&&span class=&o&&.&/span&&span class=&n&&format&/span&&span class=&p&&(&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&],&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&],&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&])&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&&br&&/p&&p&全部代码&/p&&p&/main.py&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span class=&kn&&import&/span& &span class=&nn&&os&/span&
&span class=&kn&&from&/span& &span class=&nn&&PIL&/span& &span class=&kn&&import&/span& &span class=&n&&Image&/span&&span class=&p&&,&/span&&span class=&n&&ImageOps&/span&
&span class=&kn&&import&/span& &span class=&nn&&argparse&/span&
&span class=&kn&&import&/span& &span class=&nn&&time&/span&
&span class=&kn&&from&/span& &span class=&nn&&multiprocessing&/span& &span class=&kn&&import&/span& &span class=&n&&Pool&/span&
&span class=&kn&&import&/span& &span class=&nn&&random&/span&
&span class=&kn&&import&/span& &span class=&nn&&math&/span&
&span class=&kn&&import&/span& &span class=&nn&&sys&/span&
&span class=&kn&&from&/span& &span class=&nn&&colorsys&/span& &span class=&kn&&import&/span& &span class=&n&&rgb_to_hsv&/span&
&span class=&n&&SLICE_SIZE&/span& &span class=&o&&=&/span& &span class=&mi&&85&/span&
&span class=&n&&OUT_SIZE&/span& &span class=&o&&=&/span& &span class=&mi&&5000&/span&
&span class=&n&&IN_DIR&/span& &span class=&o&&=&/span& &span class=&s&&&database/&&/span&
&span class=&n&&OUT_DIR&/span& &span class=&o&&=&/span& &span class=&s&&&output/&&/span&
&span class=&n&&REPATE&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&def&/span& &span class=&nf&&get_avg_color&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&):&/span&
&span class=&n&&width&/span&&span class=&p&&,&/span& &span class=&n&&height&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&
&span class=&n&&pixels&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&load&/span&&span class=&p&&()&/span&
&span class=&k&&if&/span& &span class=&nb&&type&/span&&span class=&p&&(&/span&&span class=&n&&pixels&/span&&span class=&p&&)&/span& &span class=&ow&&is&/span& &span class=&ow&&not&/span& &span class=&nb&&int&/span&&span class=&p&&:&/span&
&span class=&n&&data&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&width&/span&&span class=&p&&):&/span&
&span class=&k&&for&/span& &span class=&n&&y&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&n&&height&/span&&span class=&p&&):&/span&
&span class=&n&&cpixel&/span& &span class=&o&&=&/span& &span class=&n&&pixels&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&n&&y&/span&&span class=&p&&]&/span&
&span class=&n&&data&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&cpixel&/span&&span class=&p&&)&/span&
&span class=&n&&h&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&s&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&v&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&count&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&x&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&)):&/span&
&span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&g&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&n&&b&/span& &span class=&o&&=&/span& &span class=&n&&data&/span&&span class=&p&&[&/span&&span class=&n&&x&/span&&span class=&p&&][&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&n&&count&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&n&&hsv&/span& &span class=&o&&=&/span& &span class=&n&&rgb_to_hsv&/span&&span class=&p&&(&/span&&span class=&n&&r&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&,&/span&&span class=&n&&g&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&,&/span&&span class=&n&&b&/span& &span class=&o&&/&/span& &span class=&mf&&255.0&/span&&span class=&p&&)&/span&
&span class=&n&&h&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&s&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&n&&v&/span& &span class=&o&&+=&/span& &span class=&n&&hsv&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&n&&hAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&h&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&n&&sAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&s&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&n&&vAvg&/span& &span class=&o&&=&/span& &span class=&nb&&round&/span&&span class=&p&&(&/span&&span class=&n&&v&/span& &span class=&o&&/&/span& &span class=&n&&count&/span&&span class=&p&&,&/span&&span class=&mi&&3&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&n&&count&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&k&&return&/span& &span class=&p&&(&/span&&span class=&n&&hAvg&/span&&span class=&p&&,&/span&&span class=&n&&sAvg&/span&&span class=&p&&,&/span&&span class=&n&&vAvg&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&读取图片数据失败&&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&PIL 读取图片数据失败,请更换图片,欢迎提供解决方案&&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&find_closiest&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&,&/span& &span class=&n&&list_colors&/span&&span class=&p&&):&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&mi&&1000&/span&
&span class=&n&&cur_closer&/span& &span class=&o&&=&/span& &span class=&bp&&False&/span&
&span class=&n&&arr_len&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&cur_color&/span& &span class=&ow&&in&/span& &span class=&n&&list_colors&/span&&span class=&p&&:&/span&
&span class=&n&&n_diff&/span& &span class=&o&&=&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&sqrt&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&pow&/span&&span class=&p&&(&/span&&span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&fabs&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]&/span&&span class=&o&&-&/span&&span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&]),&/span& &span class=&mi&&2&/span&&span class=&p&&))&/span&
&span class=&k&&if&/span& &span class=&n&&n_diff&/span& &span class=&o&&&&/span& &span class=&n&&diff&/span& &span class=&ow&&and&/span& &span class=&n&&cur_color&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&&=&/span& &span class=&n&&REPATE&/span&&span class=&p&&:&/span&
&span class=&n&&diff&/span& &span class=&o&&=&/span& &span class=&n&&n_diff&/span&
&span class=&n&&cur_closer&/span& &span class=&o&&=&/span& &span class=&n&&cur_color&/span&
&span class=&k&&if&/span& &span class=&ow&&not&/span& &span class=&n&&cur_closer&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&没有足够的近似图片,建议设置重复&&/span&&span class=&p&&)&/span&
&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&3&/span&&span class=&p&&]&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&k&&return&/span& &span class=&s&&&({}, {}, {})&&/span&&span class=&o&&.&/span&&span class=&n&&format&/span&&span class=&p&&(&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&],&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&],&/span&&span class=&n&&cur_closer&/span&&span class=&p&&[&/span&&span class=&mi&&2&/span&&span class=&p&&])&/span&
&span class=&k&&def&/span& &span class=&nf&&make_puzzle&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&,&/span& &span class=&n&&color_list&/span&&span class=&p&&):&/span&
&span class=&n&&width&/span&&span class=&p&&,&/span& &span class=&n&&height&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&Width = {}, Height = {}&&/span&&span class=&o&&.&/span&&span class=&n&&format&/span&&span class=&p&&(&/span&&span class=&n&&width&/span&&span class=&p&&,&/span&&span class=&n&&height&/span&&span class=&p&&))&/span&
&span class=&n&&background&/span& &span class=&o&&=&/span& &span class=&n&&Image&/span&&span class=&o&&.&/span&&span class=&n&&new&/span&&span class=&p&&(&/span&&span class=&s&&'RGB'&/span&&span class=&p&&,&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&size&/span&&span class=&p&&,&/span& &span class=&p&&(&/span&&span class=&mi&&255&/span&&span class=&p&&,&/span&&span class=&mi&&255&/span&&span class=&p&&,&/span&&span class=&mi&&255&/span&&span class=&p&&))&/span&
&span class=&n&&total_images&/span& &span class=&o&&=&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&floor&/span&&span class=&p&&((&/span&&span class=&n&&width&/span& &span class=&o&&*&/span& &span class=&n&&height&/span&&span class=&p&&)&/span& &span class=&o&&/&/span& &span class=&p&&(&/span&&span class=&n&&SLICE_SIZE&/span& &span class=&o&&*&/span& &span class=&n&&SLICE_SIZE&/span&&span class=&p&&))&/span&
&span class=&n&&now_images&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&y1&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&n&&height&/span&&span class=&p&&,&/span& &span class=&n&&SLICE_SIZE&/span&&span class=&p&&):&/span&
&span class=&k&&for&/span& &span class=&n&&x1&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&n&&width&/span&&span class=&p&&,&/span& &span class=&n&&SLICE_SIZE&/span&&span class=&p&&):&/span&
&span class=&n&&y2&/span& &span class=&o&&=&/span& &span class=&n&&y1&/span& &span class=&o&&+&/span& &span class=&n&&SLICE_SIZE&/span&
&span class=&n&&x2&/span& &span class=&o&&=&/span& &span class=&n&&x1&/span& &span class=&o&&+&/span& &span class=&n&&SLICE_SIZE&/span&
&span class=&n&&new_img&/span& &span class=&o&&=&/span& &span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&crop&/span&&span class=&p&&((&/span&&span class=&n&&x1&/span&&span class=&p&&,&/span& &span class=&n&&y1&/span&&span class=&p&&,&/span& &span class=&n&&x2&/span&&span class=&p&&,&/span& &span class=&n&&y2&/span&&span class=&p&&))&/span&
&span class=&n&&color&/span& &span class=&o&&=&/span& &span class=&n&&get_avg_color&/span&&span class=&p&&(&/span&&span class=&n&&new_img&/span&&span class=&p&&)&/span&
&span class=&n&&close_img_name&/span& &span class=&o&&=&/span& &span class=&n&&find_closiest&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&,&/span& &span class=&n&&color_list&/span&&span class=&p&&)&/span&
&span class=&n&&close_img_name&/span& &span class=&o&&=&/span& &span class=&n&&OUT_DIR&/span& &span class=&o&&+&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&close_img_name&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s&&'.jpg'&/span&
&span class=&n&&paste_img&/span& &span class=&o&&=&/span& &span class=&n&&Image&/span&&span class=&o&&.&/span&&span class=&n&&open&/span&&span class=&p&&(&/span&&span class=&n&&close_img_name&/span&&span class=&p&&)&/span&
&span class=&n&&now_images&/span& &span class=&o&&+=&/span& &span class=&mi&&1&/span&
&span class=&n&&now_done&/span& &span class=&o&&=&/span& &span class=&n&&math&/span&&span class=&o&&.&/span&&span class=&n&&floor&/span&&span class=&p&&((&/span&&span class=&n&&now_images&/span&&span class=&o&&/&/span&&span class=&n&&total_images&/span&&span class=&p&&)&/span&&span class=&o&&*&/span&&span class=&mi&&100&/span&&span class=&p&&)&/span&
&span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&s&&'&/span&&span class=&se&&\r&/span&&span class=&s&&[{}{}]{}%'&/span&&span class=&o&&.&/span&&span class=&n&&format&/span&&span class=&p&&(&/span&&span class=&s&&&#&&/span&&span class=&o&&*&/span&&span class=&n&&now_done&/span&&span class=&p&&,&/span&&span class=&s&&& &&/span&&span class=&o&&*&/span&&span class=&p&&(&/span&&span class=&mi&&100&/span& &span class=&o&&-&/span& &span class=&n&&now_done&/span&&span class=&p&&),&/span&&span class=&n&&now_done&/span&&span class=&p&&)&/span&
&span class=&n&&sys&/span&&span class=&o&&.&/span&&span class=&n&&stdout&/span&&span class=&o&&.&/span&&span class=&n&&write&/span&&span class=&p&&(&/span&&span class=&n&&r&/span&&span class=&p&&)&/span&
&span class=&n&&sys&/span&&span class=&o&&.&/span&&span class=&n&&stdout&/span&&span class=&o&&.&/span&&span class=&n&&flush&/span&&span class=&p&&()&/span&
&span class=&n&&background&/span&&span class=&o&&.&/span&&span class=&n&&paste&/span&&span class=&p&&(&/span&&span class=&n&&paste_img&/span&&span class=&p&&,&/span& &span class=&p&&(&/span&&span class=&n&&x1&/span&&span class=&p&&,&/span& &span class=&n&&y1&/span&&span class=&p&&))&/span&
&span class=&k&&return&/span& &span class=&n&&background&/span&
&span class=&k&&def&/span& &span class=&nf&&get_image_paths&/span&&span class=&p&&():&/span&
&span class=&n&&paths&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&k&&for&/span& &span class=&n&&file_&/span& &span class=&ow&&in&/span& &span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&listdir&/span&&span class=&p&&(&/span&&span class=&n&&IN_DIR&/span&&span class=&p&&):&/span&
&span class=&n&&paths&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&IN_DIR&/span& &span class=&o&&+&/span& &span class=&n&&file_&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&paths&/span&&span class=&p&&)&/span& &span class=&o&&&&/span& &span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&一共找到了&/span&&span class=&si&&%s&/span&&span class=&s&&&&/span& &span class=&o&&%&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&paths&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s&&&张图片&&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&未找到任何图片&&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&paths&/span&
&span class=&k&&def&/span& &span class=&nf&&resize_pic&/span&&span class=&p&&(&/span&&span class=&n&&in_name&/span&&span class=&p&&,&/span&&span class=&n&&size&/span&&span class=&p&&):&/span&
&span class=&n&&img&/span& &span class=&o&&=&/span& &span class=&n&&Image&/span&&span class=&o&&.&/span&&span class=&n&&open&/span&&span class=&p&&(&/span&&span class=&n&&in_name&/span&&span class=&p&&)&/span&
&span class=&n&&img&/span& &span class=&o&&=&/span& &span class=&n&&ImageOps&/span&&span class=&o&&.&/span&&span class=&n&&fit&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&,&/span& &span class=&p&&(&/span&&span class=&n&&size&/span&&span class=&p&&,&/span& &span class=&n&&size&/span&&span class=&p&&),&/span& &span class=&n&&Image&/span&&span class=&o&&.&/span&&span class=&n&&ANTIALIAS&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&img&/span&
&span class=&k&&def&/span& &span class=&nf&&convert_image&/span&&span class=&p&&(&/span&&span class=&n&&path&/span&&span class=&p&&):&/span&
&span class=&n&&img&/span& &span class=&o&&=&/span& &span class=&n&&resize_pic&/span&&span class=&p&&(&/span&&span class=&n&&path&/span&&span class=&p&&,&/span&&span class=&n&&SLICE_SIZE&/span&&span class=&p&&)&/span&
&span class=&n&&color&/span& &span class=&o&&=&/span& &span class=&n&&get_avg_color&/span&&span class=&p&&(&/span&&span class=&n&&img&/span&&span class=&p&&)&/span&
&span class=&n&&img&/span&&span class=&o&&.&/span&&span class=&n&&save&/span&&span class=&p&&(&/span&&span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&OUT_DIR&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&color&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&s&&&.jpg&&/span&&span class=&p&&)&/span&
&span class=&k&&def&/span& &span class=&nf&&convert_all_images&/span&&span class=&p&&():&/span&
&span class=&n&&paths&/span& &span class=&o&&=&/span& &span class=&n&&get_image_paths&/span&&span class=&p&&()&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&s&&&正在生成马赛克块...&&/span&&span class=&p&&)&/span&
&span class=&n&&pool&/span& &span class=&o&&=&/span& &span class=&n&&Pool&/span&&span class=&p&&()&/span&
&span class=&n&&pool&/span&&span class=&o&&.&/span&&span class=&n&&map&/span&&span class=&p&&(&/span&&span class=&n&&convert_image&/span&&span class=&p&&,&/span& &span class=&n&&paths&/span&&span class=&p&&)&/span&
&span class=&n&&pool&/span&&span class=&o&&.&/span&&span class=&n&&close&/span&&span class=&p&&()&/span&
&span class=&n&&pool&/span&&span class=&o&&.&/span&&span class=&n&&join&/span&&span class=&p&&()&/span&
&span class=&k&&def&/span& &span class=&nf&&read_img_db&/span&&span class=&p&&():&/span&
&span class=&n&&img_db&/span& &span class=&o&&=&/span& &span class=&p&&[]&/span&
&span class=&k&&for&/span& &span class=&n&&file_&/span& &span class=&ow&&in&/span& &span class=&n&&os&/span&&span class=&o&&.&/span&&span class=&n&&listdir&/span&&span class=&p&&(&/span&&span class=&n&&OUT_DIR&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&n&&file_&/span& &span class=&o&&==&/span& &span class=&s&&'None.jpg'&/span&&span class=&p&&:&/span&
&span class=&k&&pass&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&n&&file_&/span& &span class=&o&&=&/span& &span class=&n&&file_&/span&&span class=&o&&.&/span&&span class=&n&&split&/span&&span class=&p&&(&/span&&span class=&s&&'.jpg'&/span&&span class=&p&&)[&/span&&span class=&mi&&0&/span&&span class=&p&&]&/span&
&span class=&n&&file_&/span& &span class=&o&&=&/span& &span class=&n&&file_&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&:&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&&span class=&o&&.&/span&&span class=&n&&split&/span&&span class=&p&&(&/span&&span class=&s&&','&/span&&span class=&p&&)&/span&
&span class=&n&&file_&/span& &span class=&o&&=&/span& &span class=&nb&&list&/span&&span class=&p&&(&/span&&span class=&nb&&map&/span&&span class=&p&&(&/span&&span class=&nb&&float&/span&&span class=&p&&,&/span&&span class=&n&&file_&/span&&span class=&p&&))&/span&
&span class=&n&&file_&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span&&span class=&p&&(&/span&&span class=&n&&file_&/span&&span class=&p&&)&/span&
&span class=&n&&img_db&/span&&span class=&o&&.&/span&&span class=&n&&append&/span&&span class=&p&&(&/span&&span class=&n&&file_&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&img_db&/span&
&span class=&k&&if&/span& &span class=&n&&__name__&/span& &span class=&o&&==&/span& &span class=&s&&'__main__'&/span&&span class=&p&&:&/span&
&span class=&n&&parse&/span& &span class=&o&&=&/span& &span class=&n&&argparse&/span&&span class=&o&&.&/span&&span class=&n&&ArgumentParser&/span&&span class=&p&&()&/span&
&span class=&n&&parse&/span&&span class=&o&&.&/span&&span class=&n&&add_argument&/span&&span class=&p&&(&/span&&span class=&s&&&-i&&/span&&span class=&p&&,&/span&&span class=&s&&'--input'&/span&&span class=&p&&,&/span&&span class=&n&&required&/span&&span class=&o&&=&/span&&span class=&bp&&True&/span&&span class=&p&&,&/span&&span class=&n&&help&/span&&span class=&o&&=&/span&&span class=&s&&'input image'&/span&&span class=&p&&)&/span&
&span class=&n&&parse&/span&&span class=&o&&.&/span&&span class=&n&&add_argument&/span&&span class=&p&&(&/span&&span class=&s&&&-}

我要回帖

更多关于 素履以往 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信