新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的“福”,今天就带领大家利用python做一个一“福”转“N”福的小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轻松集齐五福(demo)相关推荐

  1. python模拟春节集五福_新年福利来一波之Python轻松集齐五福(demo)

    新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的"福",今天就带领大 ...

  2. python简单代码 春节集五福-集五福活动又来了,不过这个价值几十亿的大项目也别错过...

    原标题:集五福活动又来了,不过这个价值几十亿的大项目也别错过 已经持续5年的支付宝集五福活动,终于在广大网友千呼万唤下,"下周一见"上线了! * 图片来源自网络截图,侵删 不得不感 ...

  3. python简单代码 春节集五福-我用 Python 集齐了五福

    新的一年又要到来了,各个大的公司又在这年末为大家送上了新春的祝福,支付宝还是延续了这几年的传统,在年末为大家送上了集五福的活动,为了大家能更快更好的扫出来大大的"福",今天小编就带 ...

  4. python简单代码演示效果-10分钟教你用python 30行代码搞定简单手写识别!

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 手写笔记还是电子笔记好呢? 毕业季刚结束,眼瞅着2018级小萌新马上就要来了,老腊肉小编为了咱学弟学妹们的学习,绞尽脑汁准备编一套大学秘籍, ...

  5. python简单代码hello-小白学 Python(1):开篇

    人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员[臭鸡蛋什么的 ...

  6. python简单代码hello-树莓派完成简单的编程(四)

    原标题:树莓派完成简单的编程(四) 在上一篇文章中,我们学习了Vi文本编辑器,那么用它可以实现什么功能呢? 树莓派python以及c语言编程 这里我选择了最简单和很流行的两种编程语言: C语言和Pyt ...

  7. python简单代码需要写多久_python基本语法?初学Python要多久才能入门?

    展开全部 首先给你分2113享Python学习入门中常用的语5261法知识 1.变量.常量,就4102是值不能被改变的量,比如16535.10等数字或者一个字符串的文本.与常量相对应的就是变量,就是值 ...

  8. python简单代码制作小游戏-用Python设计一个经典小游戏

    本文主要介绍如何用Python设计一个经典小游戏:猜大小. 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用.参数传递.函数设计.条件控制和循环等,做个整体的总结和复习. 游戏规则: 初始本金是 ...

  9. python自动填写小程序表单_新年好!教大家用Python写一个自动回复拜年信息的小程序!...

    原标题:新年好!教大家用Python写一个自动回复拜年信息的小程序! 过年期间,想必大家都收到很多拜年信息吧!有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心劳神 ...

最新文章

  1. zcu102 hdmi example(一)
  2. C#中将list进行序列化并使用SharpZipLib进行压缩
  3. 一次CMS GC问题排查过程(理解原理+读懂GC日志)
  4. “局部图像特征描述概述”--樊彬老师
  5. Spark Windows
  6. java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型
  7. 定制jekyll主题以及github pages部署完全总结
  8. Intel 64 and IA-32 Architectures Instruction Format 指令格式
  9. 洛谷2149 Elaxia的路线(dp+最短路)
  10. 计算机系统安装要点,电脑重新装系统要注意哪些要点 重装系统时的六大事项...
  11. SharePoint 2010学习资源
  12. jdbc连接数据库步骤oracle,jdbc连接oracle数据库的步骤
  13. 【Swift】文档分享到其他应用
  14. element tabs label 插槽
  15. BPR: Bayesian Personalized Ranking from Implicit Feedback 论文笔记
  16. 哥去微软面试,第一句话就被…
  17. StringTokenizer类详解
  18. 小学计算机画线反思,会画画的线活动反思
  19. java 多线程 卖票_编写一个Java 多线程程序,完成三个售票窗口同时出售20张票(如下图所示);...
  20. 移动计算机类岗位综合知识测评,【浙江移动产品运营面试】一开始是笔试,普通的行测题+移动知识+性格测试。-看准网...

热门文章

  1. python套接字编程_Python网络编程 Python套接字编程
  2. navicat导数据速度_华为廊坊云数据中心二期1~3期主楼聚氨脂、聚脲防水隔热总承包工程...
  3. 开发日记-20190915 关键词 汇编语言王爽版 第十三章
  4. 开发日记-20190527 关键词 ubuntu无线网卡驱动安装
  5. android VectorDrawable使用笔记(五)
  6. sphinx是支持结果聚类的——WHERE、ORDER BY和GROUP BY
  7. 更新view是可以update到表的
  8. netstat 查看端口命令
  9. 【题解】HNOI2008GT考试
  10. list(列表) python