新年福利来一波之Python轻松集齐五福(demo)


Posted in Python onJanuary 20, 2020

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

先看效果图

新年福利来一波之Python轻松集齐五福(demo)

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

灰度图

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

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

反色图

对于反色图,理解起来并不难,就是用255减去将原图中的每一个像素值,得到的就是我们的反色图,程序如下:

def invert_fu(self):
 img = 255 - self.ori_img
 return img

腐蚀图

对于腐蚀图,因为在我们选取的图像中,红色是背景,黑色才是福字,所以对红色进行膨胀也就是对黑色进行腐蚀。这也是 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

福到家

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

def rotate_fu(self):
 img = cv2.rotate(self.ori_img, 1)
 return img

完整代码

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):
  '''反色图'''
  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

总结

以上所述是小编给大家介绍的新年福利来一波之Python轻松集齐五福,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python解决字典中的值是列表问题的方法
Mar 04 Python
Python下使用Psyco模块优化运行速度
Apr 05 Python
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python的Urllib库的基本使用教程
Apr 30 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
Python 3.8新特征之asyncio REPL
May 28 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
Python timer定时器两种常用方法解析
Jan 20 #Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 #Python
如何通过Django使用本地css/js文件
Jan 20 #Python
Python中 Global和Nonlocal的用法详解
Jan 20 #Python
Django后台管理系统的图文使用教学
Jan 20 #Python
解决Pycharm的项目目录突然消失的问题
Jan 20 #Python
Python log模块logging记录打印用法解析
Jan 20 #Python
You might like
PHP 采集程序原理分析篇
2010/03/05 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
Python去除字符串两端空格的方法
2015/05/21 Python
Python文件及目录操作实例详解
2015/06/04 Python
python让列表倒序输出的实例
2018/06/25 Python
python调用百度语音识别api
2018/08/30 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
Python List cmp()知识点总结
2019/02/18 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
Python下载的11种姿势(小结)
2020/11/18 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
公司业务员岗位职责
2014/03/18 职场文书
护理专业求职信
2014/06/15 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
如何利用python实现列表嵌套字典取值
2022/06/10 Python