新年福利来一波之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二叉树遍历的实现方法
Nov 21 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
python支付宝支付示例详解
Aug 22 Python
Python queue队列原理与应用案例分析
Sep 27 Python
解决pip install psycopg2出错问题
Jul 09 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
利用python做表格数据处理
Apr 13 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/05/26 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Django中信号signals的简单使用方法
2019/07/04 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
2019年Java 最常见的 面试题
2016/10/19 面试题
教师现实表现材料
2014/02/14 职场文书
减负增效提质方案
2014/05/23 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
合理化建议书
2015/02/04 职场文书
旗帜观后感
2015/06/08 职场文书
仙境之桥观后感
2015/06/16 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
重阳节主题班会
2015/08/17 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Golang 编译成DLL文件的操作
2021/05/06 Golang