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连接oracle数据库实例
Oct 17 Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Python如何输出整数
Jun 07 Python
Python SMTP发送电子邮件的示例
Sep 23 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
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python生成器generator用法实例分析
2015/06/04 Python
深入理解python函数递归和生成器
2016/06/06 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
初三班主任寄语大全
2014/04/04 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
医院合作协议书
2014/08/19 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
合作协议书范本
2014/10/25 职场文书
首次购房证明
2015/06/19 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书