图片马赛克

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

导包

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. Numpy-数组array操作

    array是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的. 每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象). 数组的形 ...

  2. linux应用-线程操作

    文章写得好,转载一下, https://blog.csdn.net/triorwy/article/details/80380977

  3. SpringCloud Alibaba系列(三) Sentinel热点参数限流

    愿你生命中有够多的云翳,造就一个美好的黄昏 欢迎关注公众号[渣男小四],一个喜欢技术更喜欢艺术的青年 一.介绍 热点即经常访问的数据.很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据 ...

  4. P2652 同花顺

    P2652 同花顺 Link 题目背景 所谓同花顺,就是指一些扑克牌,它们花色相同,并且数字连续. 题目描述 现在我手里有 \(n\) 张扑克牌,但它们可能并不能凑成同花顺.我现在想知道,最少更换其中 ...

  5. 【题解】CF1207E XOR Guessing

    Link 这是一道交互题. \(\text{Solution:}\) 观察到猜的数范围只有\(2^{14}.\) 我第一次想到的方法是,我们可以确定系统选择的两个数的异或和,用这个异或和去穷举所有目标 ...

  6. Python中字符串有哪些常用操作?纯干货超详细

  7. 搭建单机版的kafka

    搭建单机版的kafka  

  8. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  9. 十一长假我肝了这本超硬核PDF,现决定开源!!

    写在前面 在 [冰河技术] 微信公众号中的[互联网工程]专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不 ...

  10. Redis 中 HyperLogLog 的使用场景

    什么是基数估算 HyperLogLog 是一种基数估算算法.所谓基数估算,就是估算在一批数据中,不重复元素的个数有多少. 从数学上来说,基数估计这个问题的详细描述是:对于一个数据流 {x1,x2,.. ...