两分钟教你玩转千图成像Part1~
导读
本期将实现用Python进行豆瓣图片的爬取,并用软件快速生成马赛克拼图。
图片获取方式:微信公众号后台回复:照片
软件获取方式:微信公众号后台回复:千图成像
微信公众号:
简介
千图成像即马赛克拼图。马赛克拼图主要运用于抽象艺术图像的表达,利用图片像素的原理,将图像的每个色彩点,用不同的马赛克原石(图片)拼贴出来。
网上流传较广的方法为通过 照片无规则拼接加调整背景透明度的方法实现(如下图,来源见水印)。但从本质上来说是一种“取巧”的方法。
那本系列教程将用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~相关推荐
- python千人成像_Python实现千图成像:从图片爬取到图片合成
千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...
- Python---如何实现千图成像:初级篇(从图片爬取到图片合成)
千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...
- python 爬取图片_Python实现千图成像:从图片爬取到图片合成
千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...
- python 透明图片合成_Python实现千图成像:从图片爬取到图片合成
千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...
- ps入门第20天_ps批处理_ps动作的编辑与创建 案例:千图成像
一前言 二操作步骤 1.录制动作 ①窗口---动作---创建文件夹 ②创建新动作---命名 ③点击开始记录 ④点击裁剪---按住shift---裁剪出正方形 ⑤文件---存储为 找个任意的文件夹存放即 ...
- 10分钟教你玩起来freemodbus
源码获取 本节教程源码资料获取方式: 1.公众号后台回复"modbus" 2.小飞哥gitee仓库自提 3.留言区获取资料链接 freemodbus是什么? 简介及应用场景 Fre ...
- 两分钟教你使用两款可视化工具
作者 | Walker 编辑 | 安可 [导读]:本文详细介绍了两个数据可视化工具库并附python演练.欢迎大家点击上方蓝字关注我们的公众号:深度学习与计算机视觉. 我们本篇文章讲的数据可视化是面向 ...
- 闲置宽带 | 彼度云两分钟教你选对产品
路由器除了能上网还能干嘛呢? 你想过没有? 我给大家疯狂安利一个黑科技产品,能上网的同时,竟然还能把改善一下生活质量. 彼度科技根据现有上游和潜在上游研发了一款新品,在今年3月底正式上线--彼度云G1 ...
- 两分钟教你学会视频添加滚动字幕并调整色调
视频剪辑时经常会给一些视频添加滚动字幕,需要调整色调,如何快速剪辑呢?这里给大家分享简单实用的小工具,快速学会剪辑多个视频,一起来试试吧. 在电脑上下载"媒体梦工厂"进入主界面&q ...
- 视频加水印怎么加?两分钟教你如何视频加水印
怎么给视频添加上水印呢?很多小伙伴会有随手拍摄视频的习惯,很多时候会将拍摄好的视频剪辑好后上传到网上供大家浏览,但是就会有很多人将视频下载下来盗用,发到自己的主页上,这无疑是侵害我们自己的合法权益,为 ...
最新文章
- Netflix 开源用于 Spring Boot的 GraphQL 服务框架DGS
- 联想 k2450 温度、耗电试验
- 通过.obj生成2d图像_自动生成 凹凸法线灯贴图 插件
- Linux 进程控制 :进程创建,进程终止,进程等待,程序替换
- Freenom.com的域名+github pages+netlify的CDN加速
- 参考文献中会议名称怎么缩写_期刊缩写查询总结
- Java版数据结构与算法——线性表
- Elizabeth Taylor【伊丽莎白·泰勒】
- 使用C#创建Windows服务 并发布Windows 服务
- java jquery jsonp 跨域_Jquery跨域调用(JSONP)遇到error问题的解决
- 字符串的迷之算法——KMP,AC自动机,后缀数组
- 时间序列研(part11)--EG两步法
- c语言输出最大的数ns流程图_急!!!!c语言NS流程图
- 《资治通鉴》曾参三人成“真”、胡服骑射、吕不韦
- 需求和设计阶段使用的IPO图
- 文件hidsdi.h
- 数值分析——自适应辛普森积分
- 认识PCIe---硬件篇
- 闪电网络如何实现更加去中心化的网络
- 华硕笔记本U盘装系统教程
热门文章
- 玩手游神助攻:盘点那些具有游戏宏按键,可自定义按键一键多用的模拟器
- rockchip的pwm驱动框架
- 采用泰克示波器TBS2000和TCP0030A电流探头准确评估高速DCDC转换器电感的选择
- Android抓包从未如此简单
- retainall java_java用retainALL 处理两个具有相同元素的list,竟然返回false,这是为什么?...
- 云通讯赛道掀起并购潮 背后有哪些新趋势暗流涌动?
- Magisk使用及模块分享
- Halcon基础操作
- java date 格式化 yyyymmdd_如何将LocalDate格式化为yyyyMMDD(不含JodaTime)
- 2018年阿里巴巴关于java重要开源项目汇总