新年福利来一波之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 相关文章推荐
Django实现图片文字同时提交的方法
May 26 Python
Python 中的with关键字使用详解
Sep 11 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python列表删除的三种方法代码分享
Oct 31 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
python如何制作缩略图
Apr 30 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
python生成任意频率正弦波方式
Feb 25 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
discuz安全提问算法
2007/06/06 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
smarty中常用方法实例总结
2015/08/07 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
php-app开发接口加密详解
2018/04/18 PHP
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
微信小程序表单验证功能完整实例
2017/12/01 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
英语三分钟演讲稿
2014/08/19 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
党员思想汇报材料
2014/12/19 职场文书
转正申请报告格式
2015/05/15 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书