新年福利来一波之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中的变量的数据类型
May 13 Python
Python实现程序的单一实例用法分析
Jun 03 Python
Python的迭代器和生成器
Jul 29 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python中property函数用法实例分析
Jun 04 Python
python openpyxl使用方法详解
Jul 18 Python
django Admin文档生成器使用详解
Jul 22 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 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
smarty简单应用实例
2015/11/03 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
js实现tab切换效果
2017/02/16 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
用python 制作图片转pdf工具
2015/01/30 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python递归函数特点及原理解析
2020/03/04 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
六年级学生评语
2014/04/22 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers