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使用xauth方式登录饭否网然后发消息
Apr 11 Python
python GUI实例学习
Nov 21 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python变量类型知识点总结
Feb 18 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Django中的cookie和session
Aug 27 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python字符串下标与切片及使用方法
Feb 13 Python
python matplotlib实现将图例放在图外
Apr 17 Python
python爬虫调度器用法及实例代码
Nov 30 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
php组合排序简单实现方法
2016/10/15 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
Python  连接字符串(join %)
2008/09/06 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
Flask配置Cors跨域的实现
2019/07/12 Python
django如何实现视图重定向
2019/07/24 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
py-charm延长试用期限实例
2019/12/22 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
nohup的用法
2014/08/10 面试题
应届毕业生个人自荐信范文
2013/11/30 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
设备管理实施方案
2014/05/31 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android