新年福利来一波之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学习笔记之os模块使用总结
Nov 03 Python
举例讲解Python中装饰器的用法
Apr 27 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python将字典内容存入mysql实例代码
Jan 18 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
python路径的写法及目录的获取方式
Dec 26 Python
python集合删除多种方法详解
Feb 10 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
python实现横向拼接图片
Mar 23 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 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 采集程序 常用函数
2008/12/18 PHP
php表单提交问题的解决方法
2011/04/12 PHP
php实现的短网址算法分享
2014/06/20 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
小程序云开发实战小结
2018/10/25 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Python实现简单的代理服务器
2015/07/25 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Django Rest framework频率原理与限制
2019/07/26 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
美发活动策划书
2014/01/14 职场文书
先进事迹演讲稿
2014/09/01 职场文书
公司合并协议书范本
2014/09/30 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
python数字转对应中文的方法总结
2021/08/02 Python
logback如何自定义日志存储
2021/08/30 Java/Android