新年福利来一波之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中的变量默认是什么类型
Sep 11 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python上下文管理器和with块详解
Sep 09 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
django 模型中的计算字段实例
May 19 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python os.rename实例用法详解
Dec 06 Python
Python绘制分类图的方法
Apr 20 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+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
javascript 验证日期的函数
2010/03/18 Javascript
围观tangram js库
2010/12/28 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
Python基础知识_浅谈用户交互
2017/05/31 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
基于python实现文件加密功能
2020/01/06 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
利用python 读写csv文件
2020/09/10 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
业务总经理岗位职责
2014/02/03 职场文书
推荐信怎么写
2014/05/09 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
刘胡兰观后感
2015/06/16 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
高中化学教学反思
2016/02/22 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
Python关于OS文件目录处理的实例分享
2021/05/23 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL