新年福利来一波之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缩进区别分析
Feb 15 Python
在Python下进行UDP网络编程的教程
Apr 29 Python
详解Python Socket网络编程
Jan 05 Python
Python实现图片拼接的代码
Jul 02 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python3标准库总结
Feb 19 Python
tensorflow之并行读入数据详解
Feb 05 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
Python实现播放和录制声音的功能
Aug 12 Python
python生成xml时规定dtd实例方法
Sep 21 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 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获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python @classmethod 的使用场合详解
2019/08/23 Python
python定时任务 sched模块用法实例
2019/11/04 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
上课打牌的检讨书
2014/02/15 职场文书
小组名称和口号
2014/06/09 职场文书
材料物理专业求职信
2014/09/01 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
宪法宣传标语100条
2019/10/15 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js