Python制作表情包还能去掉马赛克?

2018-07-24 18:08:59 浏览数 (1)

在去马赛克教程之前我们先来说说表情包斗图这点事,有没有遇到这种时刻:朋友不断发来有趣又生动的表情包,连连霸屏你的聊天记录,你却半天才发出一句话,无图抵抗的囧态?今天小编教你一招逆袭!

本招瞬间秒杀你的斗图好友!表情包不仅仅是一张图片,一张动图,更是一种精神,是我们生活中的调味剂,慢慢一张张去寻找存在、保存再发送,是不是好累好麻烦?想想算了,斗图斗不过,打字也不想打,等着被KO?python在手,斗图无敌手!小编来救你(坏笑ing)

首先,用scrapy框架爬取某表情网站表情图,源码附赠:(本文源码和部分图片引用自:https://www.52pojie.cn/forum.phpmod=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()

full_url = 'http://qq.yh31.com' ''.join(list(href))

hreftext=''.join(list(hreftext))

#文件夹名称

if hreftext=='>更多>':

continue

path = 'C:GIF'

if not os.path.exists(path):

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):

full_url='http://qq.yh31.com' url1[0] '_' str(i) '.html'

#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)

if not os.path.exists(path):

os.makedirs(path)

for lst in resp:

alt = lst.xpath('img/@alt').extract()

src = lst.xpath('img/@src').extract()

src = 'http://qq.yh31.com' ''.join(list(src))

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功能如此强大!想知道python还有什么厉害之处吗?

Python还有什么用?

Python除了极少的事情不能做之外,其他基本上可以说全能,系统运维、图形处理、数学处理、文本处理、数据库编程、网络编程、web编程、多媒体应用、pymo引擎、黑客编程、爬虫编写、机器学习、人工智能等等。

Python是解释语言,程序写起来非常方便,写程序方便对做机器学习的人很重要。

Python的开发生态成熟,有很多有用的库可以用。相比而言,Lua虽然也是解释语言,甚至有LuaJIT这种神器加持,但其本身很难做到Python这样。

Python效率超高,解释语言的发展已经大大超过许多人的想象。毫无疑问使用Python语言的企业将会越来越多,Python程序猿的人才缺口也将越来越大,认准时机,把握机遇。

Python在手,就业无忧!

如今Python语言的学习已经上升到了国家战略的层面上。国家相关教育部门对于“人工智能普及”格外重视,不仅将Python列入到小学、中学和高中等传统教育体系中,并借此为未来国家和社会发展奠定了人工智能的人才培养基础,逐步由底层向高层推动“全民学Python”,从而进一步实现人工智能技术的推动和社会人才结构的更迭。

Python岗位年薪至少在10-20w之间,而且除了北、上、广、深外,杭州和合肥等二、三线城市的待遇正在与一线城市持平。

未来,无论你身处何地,都能享受到全国人工智能、Python“一盘棋”带来的“市场发展红利”。顺应潮流的风向标,Python人工智能工程师发展前途广阔。

0 人点赞