Python数据分析与挖掘————图像的处理(一)

简介: Python数据分析与挖掘————图像的处理(一)

前言


在大数据流行的今天,对数据的处理以及分析都成了至关重要的方面。二我们这节所要学的就是对图片的处理。利用代码去处理一些图片。以及认识图片的本质。


图片的马赛克


我们都知道,在生活中我们有时候为了不暴露我们的信息。照片有时就会用马赛克的方式来隐藏我们的基本面貌信息。虽然现在手机推出了很多的软件可以对图片进行马赛克处理,但是大多数的软件马赛克都是已经设定好的,无法更改他们的值。而今天我们就可以用到Python中的matplotlib模块来实现图片的马赛克。


一.安装matplotlib,numpy等模块


python的编写有人用的时VS code,也有pycharm编译器。这里介绍vs code编译器。


一.按住win+R键,打开控制端,输入cmd命令;


2469d611637b8ee89ff9e87f809af60e_eb519835cec945e68998b9b1d214d375.png


二.在打开的用户控制界面输入pip install [模块]命令;


c0561a1ae7f6538d189db05f497d160f_81e7565dc9334b8f86655ab22943c84e.png


如上图一样,将需要下载的模块输入,下载成功后就可以使用模块。而对于使用pycharm编译器的同学,就打开pycharm的终端,输入pip install [模块]

就可以了。


三.使用模块


我们主要使用的时matplotlib中的image,故我们导入模块;


import matplotlib.image as mpimg
import math
import numpy as np
import matplotlib.pyplot as plt


导入模块后,我们就可以进行图片的处理了.


二.马赛克图片


一.导入图片


matplotlib.image中的imread()函数就是用来读取图片的编码的。我们可以提前将要使用的图片放在该目录下,也可直接导入,这里博主就使用上次爬虫得到的图片。具体的图片你自己根据自己的情况来定

data_jpg=mpimg.imread('D:\CSDN图片\work.jpg') #导入图片,解码


0dca7f7aeb56f84c44c4f2bacecafb31_c7e0620627ad424ab85380e5753812b8.png


我们打印一下他的值,我们会发现图片解码后就是一个三维数组。而我们对他的操作都是这个数组的操作。


二.定位区域


我们对需要打马赛克的位置进行定位,(imshow()函数)


802aed6e0fca39d0d1dc74af562d27be_f5b40e26eede4b4ca8541f93b52a9979.png


我们会发现我们导入的图片的周围出现了刻度,我们可以根据他上面的刻度来估计我们要进行打码的位置。找到打码的位置后,进行切割;

data1=data_jpg[50:320,150:350]


e76533afe597813df224e66a764b5fef_4fa865e632b6431fb18682a0a0ad6416.png


然后我们就会得到一个经过切割过的图片。我们现在就对这张图片进行像素进行细分割。

data1=data1[::27,::40]根据自己的需要,定义分割的值,这里就表示了把图片的像素以27(y轴),40(x轴)的间隔进行切割为一个像素。就会形成马赛克。


53a4d5f2645b7b59cea8dce1f038f3aa_9eb09726042f41d5995bbe838f36b25a.png


三.图片的合成


最后将上面已经马赛克化的图片区域拷贝到原图片中就可以了;


for i in range(10):
    for j in range(5):
        data2[50+27*i:50+27+27*i,150+40*j:150+40+40*j]=data1[i,j]


最后,将图片显示出来就可以了,如果需要保存,就使用savefig()函数即可;

现在我们来看看最后的效果;


bdc90bbe1d4cba9152cbb283fe90a60f_1aa5c002964e4f41a6d2f129f30b716e.png


源代码展示;


import matplotlib.image as mpimg
import math
import numpy as np
import matplotlib.pyplot as plt
data_jpg=mpimg.imread('D:\CSDN图片\work.jpg')
#plt.imshow(data_jpg)
#马赛克;
data2=data_jpg.copy()
data1=data_jpg[50:320,150:350]
#plt.imshow(data1)
data1=data1[::27,::40]
#plt.imshow(data1)
for i in range(10):
    for j in range(5):
        data2[50+27*i:50+27+27*i,150+40*j:150+40+40*j]=data1[i,j]
plt.imshow(data2)



图片拼接

python中队图片的处理,除了可以打马赛克,还可以对其进行变色,虚拟化,灰图像处理,图片拼接等功能;

concatenate()函数

图片的拼接就是用concatenate()函数实现;


b45780459a931ac89e6ff18b549d66af_5420466a7745421d9b5fe0578c5d1d47.png


import matplotlib.image as mpimg
import math
import numpy as np
import matplotlib.pyplot as plt
data_jpg=mpimg.imread('D:\CSDN图片\work.jpg')
data3=np.concatenate([data_jpg,data_jpg],axis=1)
plt.imshow(data3)


图像的灰度化

一.max()方法

上文提到的,图片的组成就是一个三维数组,其中的数字代表了他们的图像特点。所以,图像的灰度化,也就可以通过改变他们的位置,值,维度来改变图片的颜色,形状.

我们可以看下面的例子;


import matplotlib.image as mpimg
import math
import numpy as np
import matplotlib.pyplot as plt
data_jpg=mpimg.imread('D:\CSDN图片\work.jpg')
print(data_jpg)


[[[215 221 211]
  [215 221 211]
  [215 221 211]
  ...
  [204 189 182]
  [203 188 181]
  [202 187 180]]
 [[215 221 211]
  [215 221 211]
  [215 221 211]
  ...
  [204 189 182]
  [203 188 181]
  [202 187 180]]
 [[215 221 211]
  [215 221 211]
  [215 221 211]
  ...
  [204 189 182]
  [203 188 181]
  [201 186 179]]
 ...
...
  ...
  [188 150 137]
  [189 151 138]
  [189 151 138]]]



data_jpg=mpimg.imread("D:\CSDN图片\work.jpg")
#最大值法;
s=np.max(data_jpg,axis=-1)#axis取-1就是为了得到最里面的值;
plt.imshow(s,cmap='gray') #cmap参数表示最后的颜色,gray时灰色;

效果展示;


fed55c786483e020be7f660862ba203c_948691acb917452e8a053c1eb19a33e5.png


二.min()方法


和max()方法相似,所以这里不做过多的介绍,就直接粘贴代码;


data_jpg=mpimg.imread("D:\CSDN图片\work.jpg")
sss=np.min(data_jpg,axis=-1)
plt.imshow(sss,cmap='gray')


相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
79 3
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
177 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
123 4
数据分析的 10 个最佳 Python 库
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
2月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
2月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
2月前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析的基础教程
【10月更文挑战第41天】本文旨在为初学者提供一个关于如何使用Python语言进行数据分析的入门指南。我们将通过实际案例,了解数据处理的基本步骤,包括数据的导入、清洗、处理、分析和可视化。文章将用浅显易懂的语言,带领读者一步步掌握数据分析师的基本功,并在文末附上完整的代码示例供参考和实践。
|
2月前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力