新年福利来一波之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读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
Python计算字符宽度的方法
Jun 14 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python中property属性实例解析
Feb 10 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
python调用c++传递数组的实例
Feb 13 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
Python enumerate内置库用法解析
Feb 24 Python
python thrift 实现 单端口多服务的过程
Jun 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 iconv函数的使用详解
2013/06/09 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
vue.js实现标签页切换效果
2018/06/07 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
Python中的asyncio代码详解
2019/06/10 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
初一体育教学反思
2014/01/29 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
高中美术教学反思
2016/02/17 职场文书
离婚协议书格式范本
2016/03/18 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis
MySQL时区造成时差问题
2022/04/13 MySQL