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实现class对象转换成json/字典的方法
Mar 11 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 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
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
javascript cookies操作集合
2010/04/12 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
js运动事件函数详解
2016/10/21 Javascript
拖动时防止选中
2017/02/03 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
Python字符串处理实例详解
2017/05/18 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
医院后勤自我鉴定
2013/10/13 职场文书
12月红领巾广播稿
2014/02/13 职场文书
保险公司早会主持词
2014/03/22 职场文书
亲属关系公证书
2014/04/08 职场文书
节能减排倡议书
2014/04/15 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
会计主管竞聘书
2015/09/15 职场文书