新年福利来一波之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类继承与子类实例初始化用法分析
Apr 17 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
深入理解Python中装饰器的用法
Jun 28 Python
python入门前的第一课 python怎样入门
Mar 06 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
pytorch 可视化feature map的示例代码
Aug 20 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
python字符串的拼接方法总结
Nov 18 Python
python 连续不等式语法糖实例
Apr 15 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
5行Python代码实现一键批量扣图
Jun 29 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
mysql+php分页类(已测)
2008/03/31 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
如何运行Python程序的方法
2013/04/21 Python
python基础教程之常用运算符
2014/08/29 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python SQLite3简介
2018/02/22 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python字符串string的内置方法实例详解
2018/05/14 Python
对python sklearn one-hot编码详解
2018/07/10 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
工作自荐信
2013/12/11 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers
Python中tqdm的使用和例子
2022/09/23 Python