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调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
Python实现合并excel表格的方法分析
Apr 13 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
详解Python中第三方库Faker
Sep 25 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
Python实现制作销售数据可视化看板详解
Nov 27 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
星际实力自我测试
2020/03/04 星际争霸
PHP与SQL注入攻击[二]
2007/04/17 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
jQuery select控制插件
2009/08/17 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
Django如何实现内容缓存示例详解
2017/09/24 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
如何用Python进行时间序列分解和预测
2021/03/01 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
什么是唯一索引
2015/07/05 面试题
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
《白鹅》教学反思
2014/04/13 职场文书
出国留学担保书
2014/05/20 职场文书
临床专业自荐信
2014/06/22 职场文书
先进基层党组织材料
2014/12/25 职场文书
个性发展自我评价2015
2015/03/09 职场文书
安全教育观后感
2015/06/17 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL