时间:2021-05-22
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现PS滤镜中马赛克效果。分享给大家供大家参考,具体如下:这里利用Python实现PS滤镜中的马赛克效果,具体的算法原理和效果可以参考
本文为大家分享了OpenCV实现马赛克和毛玻璃滤镜的具体代码,供大家参考,具体内容如下一、马赛克效果马赛克的实现原理是把图像上某个像素点一定范围邻域内的所有点用
利用Python+opencv实现从摄像头捕获图像,识别其中的人眼/人脸,并打上马赛克。系统环境:Windows7+Python3.6.3+opencv3.4.
本文实例为大家分享了OpenCV实现马赛克功能的具体代码,供大家参考,具体内容如下实现用按下鼠标左键拖动时,在鼠标经过的路径上打上马赛克。马赛克的原理是将图像中
打了马赛克的图片不能还原,马赛克效果的使用,可以有效防止图片中的敏感信息被无意泄露所造成的严重后果,由于马赛克的使用原理是对图片的像素进行改变,因此从根本上解决