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实现发送email的几种常用方法
Aug 18 Python
Python sys.argv用法实例
May 28 Python
Python 探针的实现原理
Apr 23 Python
详细介绍Python的鸭子类型
Sep 12 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
numpy中的ndarray方法和属性详解
May 27 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
python自动点赞功能的实现思路
Feb 26 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
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
如何整合JQuery和Prototype
2014/01/31 面试题
火车来了教学反思
2014/02/11 职场文书
学员自我鉴定
2014/03/19 职场文书
股东授权委托书
2014/10/15 职场文书
离职感谢信怎么写
2015/01/22 职场文书
检讨书大全
2015/01/27 职场文书
门店店长岗位职责
2015/04/14 职场文书
2015年节能减排工作总结
2015/05/14 职场文书