关键时刻,第一时间送达!
在去马赛克教程之前我们先来说说表情包斗图这点事,有没有遇到这种时刻:朋友不断发来有趣又生动的表情包,连连霸屏你的聊天记录,你却半天才发出一句话,无图抵抗的囧态?今天小编教你一招逆袭!
本招瞬间秒杀你的斗图好友!表情包不仅仅是一张图片,一张动图,更是一种精神,是我们生活中的调味剂,慢慢一张张去寻找存在、保存再发送,是不是好累好麻烦?想想算了,斗图斗不过,打字也不想打,等着被KO?python在手,斗图无敌手!小编来救你(坏笑ing)
首先,用scrapy框架爬取某表情网站表情图,源码附赠:
(本文源码和部分图片引用自:https://www.52pojie.cn/forum.php?mod=viewthread&tid=698696)
import scrapy
import os,sys
import requests
import re
class scrapyone(scrapy.Spider):
name = "stackone"
start_urls = ["http://qq.yh31.com/ql/bd/"]
def parse(self,response):
hrf=response.xpath('//*[@id="main_bblm"]/div[2]/dl/dd/li')
for li in hrf:
item={}
href=li.xpath('a/@href').extract()
hreftext=li.xpath('a/text()').extract()
hreftext=''.join(list(hreftext))
#文件夹名称
if hreftext=='>更多>':
continue
path = 'C:GIF'
os.makedirs(path)
item['dirname']=hreftext
yield scrapy.Request(url=full_url,meta={'key':item},callback = self.parse1)
def parse1(self,response):
ite={}
full_url=[]
url1 = response.xpath('//*[@id="pe100_page_infolist"]/a[2]/@href').extract()
url2 = response.xpath('//*[@id="pe100_page_infolist"]/a[2]/@href').re('d+')
url1 = ''.join(url1)
url1 = url1.split('_')
url2 = ''.join(url2)
ite['dirn']=response.meta['key']['dirname']
for i in range(1,int(url2)+1):
#print(full_url)
yield scrapy.Request(url=full_url,meta={'key1':ite},callback = self.parse2)
def parse2(self,response):
p1=response.meta['key1']['dirn']
resp = response.xpath('//*[@id="main_bblm"]/div[1]/li/dt/a')
path = 'C:GIF'+''.join(p1)
os.makedirs(path)
for lst in resp:
alt = lst.xpath('img/@alt').extract()
src = lst.xpath('img/@src').extract()
alt = ''.join(list(alt))
html=requests.get(src)
with open(path+''+alt+'.gif', 'wb') as file:
file.write(html.content)
脚本执行方式:cmd-->切换到脚本所在目录-->scrapy runspider xxxx.py
最终成效
执行后会自动根据GIF分类在c:gif文件夹下建立相应文件夹存储gif图片,想发那张发哪张,那么对于那些图片上的马赛克,你有没有很苦恼?如果上面的表情包爬取还不够满足你,那么接下来,教你如何去掉图片马赛克,先来看看效果图:
厉害不?
其实技巧是利用了Python中OPenCV的优势,标定马赛克的特征,使用CV2.inRange二值化标识马赛克对图片进行二值化处理;代码如下:
其次,使用OPenCV的dilate方法,扩展特征的区域,优化图片处理效果;
最后使用inpaint方法,把噪声的mask作为参数,推理并修复图片。
来源:python编程
https://mp.weixin.qq.com/s/7wA8svS-PErrejzrK9R4tw
Python开发整理发布,转载请联系作者获得授权
领取专属 10元无门槛券
私享最新 技术干货