python使用opencv实现马赛克效果示例


Posted in Python onSeptember 28, 2019

本文实例讲述了python使用opencv实现马赛克效果。分享给大家供大家参考,具体如下:

最近要实现opencv视频打马赛克,在网上找了一下基本是C++的实现,好在原理一样,下面给出python实现。

原理和注意点,我都写在注释里了

import cv2
##马赛克
def do_mosaic(frame, x, y, w, h, neighbor=9):
  """
  马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用邻域内左上像素点的颜色代替,这样可以模糊细节,但是可以保留大体的轮廓。
  :param frame: opencv frame
  :param int x : 马赛克左顶点
  :param int y: 马赛克右顶点
  :param int w: 马赛克宽
  :param int h: 马赛克高
  :param int neighbor: 马赛克每一块的宽
  """
  fh, fw = frame.shape[0], frame.shape[1]
  if (y + h > fh) or (x + w > fw):
    return
  for i in range(0, h - neighbor, neighbor): # 关键点0 减去neightbour 防止溢出
    for j in range(0, w - neighbor, neighbor):
      rect = [j + x, i + y, neighbor, neighbor]
      color = frame[i + y][j + x].tolist() # 关键点1 tolist
      left_up = (rect[0], rect[1])
      right_down = (rect[0] + neighbor - 1, rect[1] + neighbor - 1) # 关键点2 减去一个像素
      cv2.rectangle(frame, left_up, right_down, color, -1)
im = cv2.imread('test.jpg', 1)
do_mosaic(im, 219, 61, 460 - 219, 412 - 61)

while 1:
  k = cv2.waitKey(10)
  if k == 27:
    break
  cv2.imshow('mosaic', im)

原图为:

python使用opencv实现马赛克效果示例

效果如下:

python使用opencv实现马赛克效果示例

图片来自网上,如有侵权,联系删除。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python计算最小优先级队列代码分享
Dec 18 Python
python中常用的各种数据库操作模块和连接实例
May 29 Python
Python求解平方根的方法
Mar 11 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
python 日志 logging模块详细解析
Mar 31 Python
解决python便携版无法直接运行py文件的问题
Sep 01 Python
通过代码简单了解django model序列化作用
Nov 12 Python
Restful_framework视图组件代码实例解析
Nov 17 Python
OpenCV 图像梯度的实现方法
Jul 25 Python
python打包成so文件过程解析
Sep 28 #Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 #Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 #Python
在vscode中配置python环境过程解析
Sep 28 #Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 #Python
python 单线程和异步协程工作方式解析
Sep 28 #Python
python爬虫 正则表达式解析
Sep 28 #Python
You might like
BBS(php & mysql)完整版(二)
2006/10/09 PHP
社区(php&&mysql)三
2006/10/09 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python 从csv读数据到mysql的实例
2018/06/21 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
python操作redis数据库的三种方法
2020/09/10 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
销售人员求职的自我评价分享
2014/03/15 职场文书
常务副总经理任命书
2014/06/05 职场文书
保险公司开门红口号
2014/06/21 职场文书
工作证明格式及范本
2014/09/12 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书