【图像处理】numpy打马赛克

简介: 经过上次对numpy简单的认识,相信家人们都非常想了解我们目前可以使用它做什么了那么我们就举两个实战例子来进行说明今天我们先以numpy打马为例Are you ready?

前言

经过上次对numpy简单的认识,相信家人们都非常想了解我们目前可以使用它做什么了

那么我们就举两个实战例子来进行说明

今天我们先以numpy打马为例

Are you ready?

numpy打马赛克

1.方法引入

在开始前我们需要额外的引入几个方法,来显示我们的图片

至于其具体细节,我们先不要管,我们只需要输入:

import matplotlib.pyplot as plt
%matplotlib inline

2.图片导入

ok,我们随便找一个图片来进行操作

比如,我找了个名为Zacarx,jpg的图片

然后,我们把它放到同目录下

然后,这样操作:

img = plt.imread('./Zacarx.jpg')
img
>>array([[[249, 236,  61],
        [244, 231,  56],
        [237, 224,  50],
        ...,
        [251, 201,  42],
        [255, 205,  46],
        [255, 208,  49]],

       [[249, 236,  59],
        [245, 232,  57],
        [239, 226,  52],
        ...,
        [250, 200,  41],
        [254, 204,  45],
        [255, 206,  47]],

       [[252, 240,  60],
        [249, 237,  57],
        [243, 230,  53],
        ...,
        [248, 198,  39],
        [251, 201,  42],
        [253, 203,  44]],

       ...,

       [[135, 166, 125],
        [103, 131,  91],
        [ 97, 123,  84],
        ...,
        [120, 155,  65],
        [120, 155,  65],
        [120, 155,  65]],

       [[137, 168, 127],
        [103, 131,  91],
        [ 96, 122,  83],
        ...,
        [120, 155,  65],
        [120, 155,  65],
        [120, 155,  65]],

       [[138, 169, 128],
        [104, 132,  92],
        [ 95, 121,  82],
        ...,
        [120, 155,  65],
        [120, 155,  65],
        [120, 155,  65]]], dtype=uint8)

我们输入img显示的是基本信息,而且因为这是个彩色图片,所以它以三位的方式显示了出来。

然后我们可以输入

plt.imshow(img)

来显示图片,如图:

Snipaste_2022-10-14_19-41-16

当然我们也可以使用

img.shape

来查看图片大小,如图:

Snipaste_2022-10-14_19-44-12

1080与1080说的是横纵所对应的分辨率

3所说的是三原色

3.图片截取

下来,我们也可以进行图片的截取:

Snipaste_2022-10-14_19-46-46

[ ]里面放的是横纵参数的范围,比如200:1000就是200到1000像素的横值

50:900可以类比一下,横纵都写出来就代表对应的面积了

4.图片打马

当然,我们需要打马赛克的地方不是这里,而是邪恶莫蒂身后的瑞克

我们可以先把瑞克老爷截取出来

然后在进行打码操作,操作如下:

Snipaste_2022-10-15_13-41-15

我们一行一行的解析

rick = img[700:1050,0:120]

表示的是截取700-1500与0-120所围成的面积,也就是我们的瑞克老爷

rick = rick[::10,::10]

每十个像素取一个,使分辨率降低10*10倍

plt.imshow(rick)

显示图片

那好,这样我们就得到了一张打了马赛克的rick老爷

5.原图替换

那么,我们就可以进行最后一步了

Snipaste_2022-10-15_13-47-47

我们肯定不能直接放上去,因为rick.jpg分辨率降低了100倍,那么大小也小了一百倍,所以,我们不妨利用for语句对之放大

这样就得到了我们想要的效果了,是不是很简单?

快去找一个你想打马赛克的图片试试吧!

目录
相关文章
|
3月前
|
存储 计算机视觉 Python
NumPy 在图像处理中的应用
【8月更文第30天】NumPy 是 Python 中用于科学计算的核心库之一,它提供了高效的数组操作功能。在图像处理领域,NumPy 的数组结构非常适合存储和操作图像数据。本文将详细介绍如何使用 NumPy 进行图像处理,包括加载图像、显示图像、像素操作、颜色空间转换和简单的滤波器应用等。
104 0
|
6月前
|
计算机视觉 Python
10个使用NumPy就可以进行的图像处理步骤
这篇文章介绍了使用NumPy进行图像处理的10个基本步骤,包括读取图像、缩小图像、水平和垂直翻转、旋转、裁剪、分离RGB通道、应用滤镜(如棕褐色调)、灰度化、像素化、二值化以及图像融合。通过这些简单的操作,读者可以更好地掌握NumPy在图像处理中的应用。示例代码展示了如何实现这些效果,并配有图像结果。文章强调这些方法适合初学者,更复杂的图像处理可使用专门的库如OpenCV或Pillow。
134 5
|
6月前
|
算法 计算机视觉 Python
图像处理与NumPy的完美结合
【4月更文挑战第17天】NumPy在Python图像处理中扮演重要角色,它支持高效的矩阵运算,使图像表示和操作变得简单。通过NumPy,可以方便地读取、显示图像,执行算术运算和滤波操作。此外,结合傅里叶变换和直方图均衡化等高级技术,NumPy能实现复杂图像处理任务,提升对比度和分析频率特性。其灵活性和效率为图像处理领域带来便利和进步。
|
6月前
|
机器学习/深度学习 存储 算法
OpenCV与NumPy:图像处理中的黄金组合
【4月更文挑战第17天】OpenCV和NumPy是Python图像处理的两大利器,互补协作形成黄金组合。OpenCV专注计算机视觉,提供丰富算法,而NumPy擅长数值计算和数组操作。两者无缝对接,共同实现高效、灵活的图像处理任务。通过灰度化、二值化、边缘检测等案例,展示了它们的协同作用。未来,这一组合将在计算机视觉和机器学习领域发挥更大作用,解锁更多图像处理潜力。
|
6月前
|
算法 关系型数据库 计算机视觉
NumPy 秘籍中文第二版:五、音频和图像处理
NumPy 秘籍中文第二版:五、音频和图像处理
130 0
|
计算机视觉
Python-OpenCV图像处理-02-numpy数组操作
Python-OpenCV图像处理-02-numpy数组操作
170 0
|
计算机视觉 Python
Python 图像处理篇-利用opencv库和numpy库读取包含中文路径下的本地图片实例演示
Python 图像处理篇-利用opencv库和numpy库读取包含中文路径下的本地图片实例演示
146 0
Python 图像处理篇-利用opencv库和numpy库读取包含中文路径下的本地图片实例演示
|
计算机视觉 Python
NumPy Cookbook 带注释源码 五、NumPy 音频和图像处理
版权声明:License CC BY-NC-SA 4.0 https://blog.csdn.net/wizardforcel/article/details/73135779 # ...
844 0
|
计算机视觉 Python
NumPy 音频和图像处理
NumPy 音频和图像处理 # 来源:NumPy Cookbook 2e Ch5 将图像加载进内存 import numpy as np import matplotlib.
1138 0
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
76 0