新年福利之Python轻松集齐五福!

新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的“福”,今天就带领大家利用python做一个一“福”转“N”福的小demo。

先看效果图
首先,我们需要拿到一张大大的“福”字图片,然后,我们就可以对于这张图进行操作了。我们今天要实现的就是将一张“福”字转化为五种不同的风格技术面分析,现为大家呈上效果图。

灰度图
首先为大家展示的是灰度图,灰度图就是将彩色的RGB三通道图像,转化为单通道的灰色像,RGB三个通道的颜色通过比例系数进行相加。程序如下所示。

def Gray_fu(self):
gray_img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)
return gray_img
1
2
3
轮廓图
接下来是轮廓图,轮廓图需要输入一张灰度图像,首先是对图像进行滤波处理,去除噪声,然后针对于灰色的图片中像素突然变化的点来检测边缘,什么是边缘突然变化呢,参考我们的灰度图,灰度图中,“福”字的边缘同背景颜色出现了巨大的差异,这种差异就是寻找边缘轮廓的依据,程序如下图所示。

def Canny_fn(self):
img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)
img = cv2.GaussianBlur(img, (3, 3), 0)
canny_img = cv2.Canny(img, 50, 150)
return canny_img
1
2
3
4
5
反色
对于反色,理解起来并不难,就是用255减去将原图中的每一个像素值,得到的就是我们的反色,程序如下:

def invert_fu(self):
img = 255 - self.ori_img
return img
1
2
3
腐蚀图
对于腐蚀图,因为在我们选取的图像中,红色是背景,黑色才是福字,所以对红色进行膨胀也就是对黑色进行腐蚀。这也是 OpenCV 的内置功能。我们只需要调用opencv中的膨胀函数即可。

def dilate_fu(self):

img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
img = cv2.dilate(self.ori_img, kernel, iterations=1)
print(img.shape)
return img

1
2
3
4
5
6
福到家
最后是我们的“福到家”,我们只需要将福字进行旋转即可。

def rotate_fu(self):
img = cv2.rotate(self.ori_img, 1)
return img
1
2
3
完整代码
import cv2

class Change_pic():

def __init__(self, img):
    self.ori_img = cv2.imread(img)

def Gray_fu(self):
    ‘‘‘灰度图‘‘‘
    gray_img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)
    return gray_img

def Canny_fn(self):
    ‘‘‘轮廓图‘‘‘
    img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)
    img = cv2.GaussianBlur(img, (3, 3), 0)
    canny_img = cv2.Canny(img, 50, 150)
    return canny_img

def invert_fu(self):
    ‘‘‘反色tu‘‘‘
    img = 255 - self.ori_img
    return img

def dilate_fu(self):
    ‘‘‘腐蚀图‘‘‘
    # img = cv2.cvtColor(self.ori_img, cv2.COLOR_BGR2GRAY)
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
    img = cv2.dilate(self.ori_img, kernel, iterations=1)
    print(img.shape)
    return img

def rotate_fu(self):
    ‘‘‘福到家‘‘‘
    img = cv2.rotate(self.ori_img, 1)
    return img

原文地址:https://blog.51cto.com/14513127/2467870

时间: 2024-07-29 13:58:29

新年福利之Python轻松集齐五福!的相关文章

2018年教你怎么快速集齐支付宝五福攻略

支付宝2018集五福活动开启了,一年一度的支付宝集福活动来了.2018支付宝集福活动怎么快速集齐五福?支付宝集五福有什么秘籍吗?告诉你,还真的有的,小编朋友用这个攻略,已经集齐了五福!下面我们就来看看怎么快速集齐五福瓜分5亿元. 支付宝2018年集齐五福时间和规则: 集五福时间从2月6号开始一直持续到除夕夜(2月15号)的晚上的10点.支付宝2018集五福活动与往年的活动一样,不过春节红包总金额上涨到了5亿元,最高个人红包达到了666元.所有集齐5福卡的网友可以在除夕夜开春节红包. 支付宝201

支付宝用AR集五福,VR和MR怎么看?

架构师技术联盟 2017年春节,支付宝再次推出了"五福红包"活动,表示要"把欠大家的敬业福都还给大家".的确,今年集齐难度大大降低,目前已经有六千多万人集齐. 今年AR应用在在支付宝抢红包上,站在高科技技术角度,更吸引人的眼球,而且红包(广告费)金额也不少,这也是营销的惯用做法,按照25%的人已经集齐5福计算,AR在中国的使用普及率至少已经达到2亿左右,如果再加上AR在其他产品和领域,AR的使用率变得更高.支付宝红包金额也是2亿,如果到2017年1月27日这些人全部

我用 Python 集齐了五福

? [新智元导读]又到了每年集五福的时间.你的五福集齐了吗?每天在各种群里苦苦求扫福,或者忍受着别人天天求扫福,是不是有点厌倦了.作为技术人员,怎么能忍受得了这种低效的全人工操作呢?今天就为大家推荐用Python生成风格不同又数量庞大的「福」字,让大家不用满世界找福字,动动手指即可. ! 是什么让你忽然意识到下周就要过年了? 是考完期末考试的最后一门?还是抢到了回家的火车票?又或者是年终奖的到账短信? 作为一个没有寒假.不用回老家也没有年终奖的人,让我发现马上就要过年的现象是:各个群里面又开始集

Python核心编程第五章习题

Python核心编程-第五章-习题 5.1  整形,讲讲Python普通整形与长整形的区别? Python的标准整形类型是最通用的数字类型.在大多数32位机器上,标准整形类型的取值范围是-2**32-2**32 - 1. Python的长整型类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数. 长整型类型是标准整形类型的超集,当程序需要使用比标准整形更大的整型时,可以使用长整型类型,在整型值后面添加L,表示这个为长整型,3.0版本已经统一称为为整

集五福瓜分5亿现金,你知道里面暗藏猫腻吗?

盼了许久的集五福 今天终于上线了 集齐后除夕拼手气 瓜分5亿现金红包 大家已经迫不及待 开始疯狂扫福字了 开心四处集福时 也要具备安全意识 陌生人送福请慎重 比如今天的主人公 今日问题:你知道小樱某宝为什么被下线了吗? 评论有奖 快把你的答案留言给我们,我们将从正确答案中抽取两位幸运用户并各赠送一份精美礼品! 本期正确答案和中奖用户会在27日的漫画(美容院的优惠)中公布,i春秋公众号将在五个连续工作日每天发布一篇漫画,大家敬请期待! 中奖说明 1.分享本篇文章至朋友圈,并在文中留言您的答案,截图

七日Python之路--第五天(之找点乐子)

(一)一些闲言碎语 刚才在搜索的时候,看到别人说的一句话,大体意思如下:自从学习Python之后,就不想在学习其他语言了,只想抓紧时间写些有用的东西.细想一下,果真如此. 唉,Python魅力如此之大.感觉比Java容易的多,也可能是小众语言,因为足够小才显得足够强大.算了,不愿多想,还是多写些有意思的东西吧,哈哈. (二)一些有趣的代码 (1)一句话文件服务器 [email protected]:~$ python -m SimpleHTTPServer Serving HTTP on 0.0

Python进阶(三十五)-Fiddler命令行和HTTP断点调试

Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 ??上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都称为一个session).界面中能够看到Fiddler抓取的全部HTTP请求.而为了更加方便的管理全部的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作Linux的童鞋应该能够感受到这会有多么方便

python 网络编程(五)---DNS域名系统

1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:119.75.218.77">www.baidu.com->119.75.218.77 ) 2)反向查询:由IP查找域名(如:119.75.218.77 –> www.baidu.com) 查询方式包括: 1)递归查询:当DNS服务器接收到客户端的查询请求时,会做出相应的反应(本地DNS服务器查询.其他服务器查

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai