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获得一个月有多少天的方法
Jun 04 Python
一张图带我们入门Python基础教程
Feb 05 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
int在python中的含义以及用法
Jun 27 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
python爬虫-模拟微博登录功能
Sep 12 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 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
文章推荐系统(二)
2006/10/09 PHP
《APMServ 5.1.2》使用图解
2006/10/23 PHP
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
Django 开发环境配置过程详解
2019/07/18 Python
python3图片文件批量重命名处理
2019/10/31 Python
django实现后台显示媒体文件
2020/04/07 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
三查三看党性分析材料
2014/02/18 职场文书
交通事故私了协议书
2014/04/16 职场文书
企业承诺书怎么写
2014/05/24 职场文书
老干部工作汇报材料
2014/10/28 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python