新年福利来一波之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的Django框架使用的一些实用建议
Apr 03 Python
详解Python的Django框架中的通用视图
May 04 Python
python多线程方式执行多个bat代码
Jun 07 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
python3+PyQt5自定义视图详解
Apr 24 Python
python远程调用rpc模块xmlrpclib的方法
Jan 11 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
python集合删除多种方法详解
Feb 10 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
python os模块在系统管理中的应用
Jun 22 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php date()日期时间函数详解
2010/05/16 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
Python文件和目录操作详解
2015/02/08 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
装潢设计专业推荐信模板
2013/11/26 职场文书
高二英语教学反思
2014/01/19 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
五一促销活动总结
2014/07/01 职场文书
日语系毕业求职信
2014/07/27 职场文书
行政上诉状范文
2015/05/23 职场文书
初中军训感言
2015/08/01 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
Nginx四层负载均衡的配置指南
2021/06/11 Servers
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
OpenCV实现普通阈值
2021/11/17 Java/Android
关于Redis的主从复制及哨兵问题
2022/06/16 Redis