图片马赛克

关注公众号“轻松学编程”了解更多。

导包

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

读取图片

dog = plt.imread('./img/金毛.jpg')
plt.imshow(dog)

dog.shape


图片高800,宽1280。

全图打马赛克

#隔30行30列取一个像素点
#新数组行数:800/30 = 27(向上取整)
#新数组列数:1280/30 = 43(向上取整) dog2 = dog[::30,::30]
plt.imshow(dog2)
print(dog2.shape)

新图像大小为27*43,。由于每个像素点都是从原图像中抽取的,然后再组成新的图像,所以看上去就像是打上了马赛克,有些部分看不清楚。

头部打马赛克

#从原图像中截取头部像素点
head = dog[40:620,400:900]
plt.imshow(head)
print(head.shape)

#从头部图像中按比例抽取一部分像素点
head2 = head[::30,::30]
plt.imshow(head2)

head2.shape

图像拼接

把打了马赛克的头部拼接到原图像中。

头部截取点:

head = dog[40:620,400:900]

行:40到620

列:400到900

#复制一个新的图像
dog_m = dog.copy()
#打了马赛克的头部图像的行数
for i in range(20):
for j in range(17): #打了马赛克的头部图像的列数
# 把打了马赛克的头部图像的像素点替换原图像对应的像素点
dog_m[40+i*30:70+i*30,400+j*30:430+j*30] = head2[i,j]
plt.imshow(dog_m)

头部一般是圆的,下面把头部打上圆形马赛克:

#圆
dog_m2 = dog.copy()
#头部马赛克图像形状(20,17,3) ---->(y,x)
#所以圆心为 ----> (x,y)
circle_dot = (9,10)
#头部半径为6
r = 6
for i in range(20):
for j in range(17):
if (i-circle_dot[1])**2 + (j-circle_dot[0])**2 < r**2:
dog_m[40+i*30:70+i*30,400+j*30:430+j*30] = head2[i,j]
plt.imshow(dog_m)

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

公众号

关注我,我们一起成长~~

python给图片打马赛克的更多相关文章

  1. Python提取图片的ROI

    图像处理经常需要提取图片的ROI,本文使用Python提取图片的ROI. 使用的Module是PIL (Pillow),一个图像处理库,用到的函数为类 Image 中的 crop 方法. 函数原型为: ...

  2. python 读取图片的尺寸、分辨率

    #需要安装PIL模块 #encoding=gbk#--------------------------------------------------------------------------- ...

  3. python 对比图片相似度

    最近appium的使用越来越广泛了,对于测试本身而言,断言同样是很重要的,没有准确的断言那么就根本就不能称之为完整的测试了.那么目前先从最简单的截图对比来看.我这里分享下python的图片相似度的代码 ...

  4. python在图片上画矩形

    python在图片上画矩形 image_path = '' image = cv2.imread(image_path) first_point = (100, 100) last_point = ( ...

  5. Python读取图片尺寸、图片格式

    Python读取图片尺寸.图片格式 需要用到PIL模块,使用pip安装Pillow.Pillow是从PIL fork过来的Python 图片库. from PIL import Image im = ...

  6. Python下图片的高斯模糊化的优化

    资源下载 #本文PDF版下载 Python下图片的高斯模糊化的优化(或者单击我博客园右上角的github小标,找到lab102的W6目录下即可) #本文代码下载 高斯模糊(一维)优化代码(和本文方法集 ...

  7. python 对图片做垂直投影

    Python 对图片做垂直投影 本文利用opencv对图片进行垂直投影,做出垂直投影图,大体思路:打开图片,灰度化,二值化,按列进行统计,新建一个大小和原图一样的图片,按列进行填充: cv2.cv.G ...

  8. python下载图片超时的调查

    在使用python3下载图片时, 常用的方法有urlretrieve和requests两种, 不管哪种方法在网速极慢的情况下, 会出现图片下载卡住现象.那如何解决呢? 小编根据网上提供的资料测试了几种 ...

  9. python Pillow 图片处理模块,好强大有没有

    python Pillow 图片处理模块,好强大有没有 Pillow 需要给 python 另外安装 第一个用法:https://www.cnblogs.com/ibingshan/p/1105739 ...

随机推荐

  1. Python练习题 015:一颗自由落地的球

    [Python练习题 015] 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹多高? ----------------------- ...

  2. Python练习题 014:完数

    [Python练习题 014] 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. -------------------- ...

  3. VS2015如何调试自己写的DLL与调试

    转载: 1. https://blog.csdn.net/u014738665/article/details/79779632 2. https://blog.csdn.net/jacke121/a ...

  4. matlab中colormap

    来源:https://ww2.mathworks.cn/help/matlab/ref/colormap.html?searchHighlight=colormap&s_tid=doc_src ...

  5. centos7下安装fabric2.2

    准备基础环境 1.安装curl.git yum install curl yum install git 2.go环境搭建 下载解压 cd /home mkdir app cd app wget ht ...

  6. Jmeter接口测试--上传附件

    jmeter接口测试上传附件指引 1.添加HTTP请求取样器--在取样器中的HTTP请求项中对"使用KeepAlive"."对POST使用multipart/form-d ...

  7. 用于编写下一代JavaScript的编译器。

    下载 用于编写下一代JavaScript的编译器. 支持巴别塔 Babel(发音为babble)是一个由社区驱动的项目,被许多公司和项目使用,由一群志愿者维护.如果你愿意帮助支持这个项目的未来,请考虑 ...

  8. 搭建go-stress-testing压力测试

    参考地址:https://github.com/link1st/go-stress-testing安装golang环境 yum install -y golang 下载软件包 wget -q http ...

  9. CodeForces 79D 【Password】,洛谷P3943 【星空】

    其实我做的是洛谷的P3943,但是听说fstqwq窃题...... 题目描述: 小 C 拿来了一长串星型小灯泡,假装是星星,递给小 F,想让小 F 开心一点.不过,有 着强迫症的小 F 发现,这串一共 ...

  10. 关于keytool和jarsigner工具签名的使用小结

    在我们日常Android应用开发中,我们都要对我们开发的apk做签名处理,或者加固,增强我们apk的安全性,防止被逆向反编译,在apk签名这块,我们一般采用JDK自动工具来签名,下面就对相关工具做个简 ...