导读

本期将实现用Python进行豆瓣图片的爬取,并用软件快速生成马赛克拼图。

Elon Musk-埃隆马斯克-马赛克拼图肖像插画作品

简介

千图成像即马赛克拼图。马赛克拼图主要运用于抽象艺术图像的表达,利用图片像素的原理,将图像的每个色彩点,用不同的马赛克原石(图片)拼贴出来。

原图
两千张周杰伦照片拼贴出的马赛克拼图

网上流传较广的方法为通过照片无规则拼接加调整背景透明度的方法实现(如下图,来源见水印)。但从本质上来说是一种“取巧”的方法。

那本系列教程将用Python教你玩转千图成像,从原理出发,如何用代码快速、准确的实现马赛克拼图。

本系列教程

Part1:Python实现图片爬取+软件快速体验马赛克拼图

part2:马赛克拼图实现原理+代码实现

part3:如何实现多样式的马赛克拼图


照片爬取

本文以爬取周杰伦豆瓣照片为例。进入周杰伦的图片界面,获得其地址链接规则与请求头信息,可以看到不同页数对应的strat值不同,规则为start=30*第几页。

#请求头信息与链接
headers = {  'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"  }
url = 'https://movie.douban.com/celebrity/1048000/photos/?type=C&start=' + str(page * 30) + '&sortby=like&size=a&subtype=a'

然后通过查看HTML代码获得图片对应的class值,通过requests与bs4对页面进行解析与爬取。完整代码如下。

# -*- utf-8 -*-import os
import requests
from bs4 import BeautifulSoupheaders = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"}
def GetHtmlText(url):try:r = requests.get(url, headers=headers)#print(url)r.raise_for_status()r.encoding = 'utf-8'return r.textexcept:return ""def main(pages):FilePath = os.getcwd() + 'jay'if not os.path.exists(FilePath):os.makedirs(FilePath)TempPage = pagesFileNum = 1for page in range(pages):url = 'https://movie.douban.com/celebrity/1048000/photos/?type=C&start=' + str(page * 30) + '&sortby=like&size=a&subtype=a'html = GetHtmlText(url)soup = BeautifulSoup(html, 'html.parser')#print(str(page * 30))uls = soup.find_all('ul', {"class": "poster-col3 clearfix"})print(html)for ul in uls:imgs = ul.find_all('img')for img in imgs:imgurl = img['src']imgcontent = requests.get(imgurl).contentfilename = str(FileNum) + '.jpg'with open(os.getcwd() + '/jay/' + filename, 'wb') as wf:wf.write(imgcontent)FileNum += 1if __name__ == '__main__':main(10)运行结果如下。值得一说的是,在进行爬取时默认保存的图片格式为jpg,而豆瓣图片储存格式并非完全为jpg格式,所以会出现部分图片无法读取与查看。但并不影响后续的操作。

软件生成马赛克拼图

Foto-Mosaik-Edda是一个简单易用的向导程序,软件大小为1.47MB,用户可以使用它自己的照片,轻松的创建出由很多张图片组成的马赛克拼图

1.创建图库

2. 创建马赛克拼图

3. 部分结果

往期推荐

  • Torch+SSD实现目标检测是否佩戴口罩
  • 手写作业/文件太多不想写?手写模拟器发布啦
  • 【漫评】你驻足于春色中,于那独一无二的春色之中

千图成像_两分钟教你玩转千图成像Part1~相关推荐

  1. 一分钟学会看k线图_一分钟怎样学会看k线图(纯干货)散户必备!

    原标题:一分钟怎样学会看k线图(纯干货)散户必备! K线图最早是日本德川幕府时代大阪的米商用来记录当时一天.一周或一月中米价涨跌行情的图示法,后被引入股市.K线图有直观.立体感强.携带信息量大的特点, ...

  2. 商品规格可选怎么设计_两分钟前|开平木质地栈板怎么安装

    两分钟前|开平木质地栈板怎么安装 zybzclcj 两分钟前|开平木质地栈板怎么安装 规定制造设备的材料不能对卡板木箱的性质.纯度.质量产生影响,其所用的材料需具有安全性.可辨别性及使用强度.木箱又称 ...

  3. python程序加密_三分钟教你python自动化加密Word

    还在忧虑周五下班前,老板吩咐要给客户加密200个文件吗?工作到凌晨2点,还要把当日完成的10个文件加密,让人很发狂啊.想到一份份的文档要挨个打开并加密,就让人有一种想要die掉的996即视感. 三分钟 ...

  4. python画简便的图-最适合小白学的花色玩Python折线图|画个天气预报

    原标题:最适合小白学的花色玩Python折线图|画个天气预报 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...

  5. python画双折线图-最适合小白学的花色玩Python折线图|画个天气预报

    原标题:最适合小白学的花色玩Python折线图|画个天气预报 这是菜鸟学Python的第102篇原创文章 前面写一篇关于数据可视化的入门开篇,简单的介绍了一下Matplotlib的使用(),今天我们进 ...

  6. 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了

    相信大家用电脑都会截图,但有时候需要用到录屏,这就难倒了很多人.那么如何在电脑是录屏呢?下面就来教你学会两种电脑录屏的方法,以后别再说不知道了. 阅读引导: •阅读完本文预计需要2分钟时间. •本文是 ...

  7. win10录屏_一分钟教你学会两种电脑录屏方法,以后别再说不知道了

    Win10系统是目前大家常用的电脑系统. 不过,有一些人在使用Win10电脑的过程中经常会需要用到录屏功能. 比如:你是一个主播,需要介绍自己的上新的产品:或者你是个视频UP主,需要录制一些影视剧情的 ...

  8. 两分钟教你使用两款可视化工具

    作者 | Walker 编辑 | 安可 [导读]:本文详细介绍了两个数据可视化工具库并附python演练.欢迎大家点击上方蓝字关注我们的公众号:深度学习与计算机视觉. 我们本篇文章讲的数据可视化是面向 ...

  9. c++ eos智能合约开发_十分钟教你开发EOS智能合约

    EOS环境搭建和启动节点 下面从EOS入门的环境搭建.编译运行一个智能合约.发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获. 首先下载EOS环境搭建和启动节点.这一步其实还是比 ...

  10. 的图片怎么循环渲染_十分钟教你做个炫酷的图片切换过度效果

    做个炫酷的图片切换过度效果 首先,今天是520节日.到了520这类为情侣准备的节日,小编都会感到一万点暴击-- 首先酸一波,搞点事情(蹭波热度). 给大家分享一个520特效页面:看完记得回来为小编点个 ...

最新文章

  1. android 获取音乐文件的内置专辑图片
  2. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
  3. SVC和PendSV
  4. SAP FI系列培训视频教程
  5. 学维修电脑要多久_学厨师要多久才出师
  6. python英文版怎么改成中文版_“PyQt的Qt Designer菜单是中文版的,怎么改成英文的“python的qt designer教程...
  7. 《程序设计技术》第七章例程
  8. 美通企业日报 | 英特尔百度签署新合作备忘录;佛山照明与阿里云战略合作物联网生态...
  9. u盘文件名乱码linux,U盘文件名乱码的原因和解决办法
  10. python可视化数据分析交互作用_测试设计功能交互分析
  11. 计算机显卡风扇有异响,电脑运行中有异响,拍一拍就好了,原来好多人还不知道问题在哪!...
  12. 加拿大计算机专业前八大学,加拿大留学:计算机工程专业排名前八的名校详情...
  13. android模拟器 adb 命令,安卓模拟器下 使用ADB命令
  14. Python 安装 包时 VC 14 找不到错误终极解决办法
  15. Android不同屏幕适配的大神解决方案(转)
  16. 芯片PIC32MZ1024ECH100 (MCHP) -- 32位高性能单片机 up to 330 DMIPS
  17. Linux起服务常用命令及实例
  18. Typora导出word文档自动生成目录
  19. JAVA局域网飞鸽传书软件设计与实现免费
  20. 迅雷工作原理的推测及慎用它的理由

热门文章

  1. 1462 通往奥格瑞玛的道路
  2. 将Web项目War包部署到Tomcat服务器基本步骤
  3. iOS多线程与网络开发之多线程概述
  4. 《Head first HTML与CSS 第二版》读书笔记 第一章 了解HTML
  5. 二元最近的共同祖先问题(O(n) time 而且,只有一次遍历,O(1) Space (它不考虑函数调用栈空间))...
  6. 【整理】unity3d优化总结篇
  7. Windows Server 2008 R2 远程桌面服务RDS和VDI介绍
  8. MatlabTrick
  9. 寻找指定型别的父控件
  10. MySQL中多表的连接