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代码的打包与发布详解
Jul 30 Python
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
在python里面运用多继承方法详解
Jul 01 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python如何优雅获取本机IP方法
Nov 10 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
python字典的值可以修改吗
Jun 29 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
再次研究下cache_lite
2007/02/14 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
PHP开发的一般流程
2013/08/13 面试题
What is view? why do we have view?
2012/06/22 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
初一科学教学反思
2014/01/27 职场文书
卫生巾广告词
2014/03/18 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
七夕活动策划方案
2014/08/16 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
师德师风培训感言
2015/08/03 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server