(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片
吴恩达机器学习的课程作业里,经常会出现以mat数据存储的图像,为此我十分好奇,中间过程是怎么实现的,这篇博客简单的学习一下:
首先,我们看一下图片:(图片来源于网络,如有侵权,请立刻联系我删除)
导入需要用到的包
import PIL.Image as Image
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
from scipy.io import loadmat
file_name = "113936HmJVY.jpg"
将图片转换为矩阵
def image_to_matrix(file_name):# 读取图片image = Image.open(file_name)# 显示图片image.show()width, height = image.size# 灰度化image_grey = image.convert("L")data = image_grey.getdata()data = np.matrix(data, dtype="float") / 255.0new_data = np.reshape(data, (height, width))return new_data
我们生成的数据矩阵为:
[[0.05098039 0.07058824 0.08235294 ... 0.11372549 0.10588235 0.11372549][0.05490196 0.07058824 0.09019608 ... 0.10588235 0.10588235 0.10980392][0.07058824 0.0745098 0.09411765 ... 0.10980392 0.10980392 0.10980392]...[0.07843137 0.09019608 0.08627451 ... 0.23529412 0.23921569 0.23137255][0.0627451 0.07058824 0.07058824 ... 0.23921569 0.23529412 0.22352941][0.07843137 0.0745098 0.0745098 ... 0.24705882 0.23921569 0.22745098]]
我们转换成dataframe的格式,方便查看:
dataframe = pd.DataFrame(data=data)
print(dataframe)
0 1 2 ... 1917 1918 1919
0 0.050980 0.070588 0.082353 ... 0.113725 0.105882 0.113725
1 0.054902 0.070588 0.090196 ... 0.105882 0.105882 0.109804
2 0.070588 0.074510 0.094118 ... 0.109804 0.109804 0.109804
3 0.066667 0.090196 0.125490 ... 0.109804 0.101961 0.105882
4 0.070588 0.109804 0.137255 ... 0.109804 0.101961 0.109804
... ... ... ... ... ... ... ...
1075 0.074510 0.062745 0.070588 ... 0.227451 0.227451 0.227451
1076 0.094118 0.094118 0.094118 ... 0.231373 0.239216 0.231373
1077 0.078431 0.090196 0.086275 ... 0.235294 0.239216 0.231373
1078 0.062745 0.070588 0.070588 ... 0.239216 0.235294 0.223529
1079 0.078431 0.074510 0.074510 ... 0.247059 0.239216 0.227451
可以看出,我们的图像大小为:1920*1080
将矩阵转换为图片
def matrix_to_image(data):data = data * 255.0new_im = Image.fromarray(data)return new_im
new_im = matrix_to_image(data)
plt.imshow(data, cmap=plt.cm.gray, interpolation="nearest")
new_im.show()
可以实现!
上面要先对图片去除颜色,就是变成黑白的,转换成二维数据矩阵,不去颜色的还要保存颜色的,然后后面转换就不行了。然后利用Image.fromarray(data) 新建图片
完整代码
import PIL.Image as Image
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
from scipy.io import loadmat# 将图片转换为矩阵
def image_to_matrix(file_name):# 读取图片image = Image.open(file_name)# 显示图片image.show()width, height = image.size# 灰度化image_grey = image.convert("L")data = image_grey.getdata()data = np.matrix(data, dtype="float") / 255.0new_data = np.reshape(data, (height, width))return new_data# 将矩阵转换为图片
def matrix_to_image(data):data = data * 255.0new_im = Image.fromarray(data)return new_im# 定义图片路径
file_name = "113936HmJVY.jpg"# 将图片转换为矩阵并输出到csv文件
data = image_to_matrix(file_name)
print(data)
print('=='*30)
dataframe = pd.DataFrame(data=data)
print(dataframe)
# dataframe.to_csv('d:/out.csv', sep=' ', header=False, float_format='%.2f', index=False)
# 将矩阵转换为图片
new_im = matrix_to_image(data)
plt.imshow(data, cmap=plt.cm.gray, interpolation="nearest")
new_im.show()
(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片相关推荐
- 用Python实现Flickr照片文本数据下载入库及图片保存(第一次帮忙)
用Python实现Flickr照片文本数据下载入库及图片保存_fbc3173的博客-CSDN博客 来源 #原来的代码 #!/usr/bin/python import requests import ...
- Python实现从excel读取数据并绘制成精美图像
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Pyth ...
- Python dataframe指定列顺序输出 + 列数据转化成字符 + 数据框转化成列表
参考: (3条消息)pandas中的DataFrame按指定顺序输出所有列 - quintind的专栏 - CSDN博客 https://blog.csdn.net/quintind/article/ ...
- 利用PYTHON将netcdf(.nc)格式数据转换成JSON GeoJSON
PYTHON netcdf(.nc)格式数据转JSON GeoJSON 代码 代码解释 代码 废话不多,直接上代码 #%% import xarray as xr import json from d ...
- Python脚本把支付宝和微信账单数据转换成随手记APP的excel标准模板导入
目录 实现初衷 下载账单流水 微信账单 支付宝账单 处理数据 账单文件命名及存放 执行Python脚本 随手记导入数据 查看账单 代码实现 实现初衷 每天通过手动记账太麻烦,而且要精细到每一项支付的内 ...
- QIIME2导入数据-fq数据转换成qza数据-使用方法心得
启动QIIME2运行环境 conda activate qiime2-2019.4 ###新建并定位设置到存在fq数据的文件夹 mkdir qiime2-importing-tutorial ##建立 ...
- python 读取excel太慢_实用技巧——Python实现从Excel读取数据并绘制成图像
喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! 本文主要阐述如何使用python从excel读取数据,并用matplotlib绘制成二维图像. 主要知识点为 ...
- 实用技巧——Python实现从Excel读取数据并绘制成图像
本文主要阐述如何使用python从excel读取数据,并用matplotlib绘制成二维图像. 主要知识点为: 使用xlrd扩展包读取excel数据 使用matplotlib绘制二维图像 美化图像,添 ...
- python文件转换php,php文件怎么转成mp3
在格式的转换上,直接是amr的模式是无法让我们播放的,还需要进行mp3模式的转换.根据不同的php代码将amr格式记录转换为mp3格式,下面我们就来看看转换的方法吧. 2.静态版本包可在linux下载 ...
- python爬取天眼查数据(未破解图片验证及ajax版)
import time import requests from bs4 import BeautifulSoup import lxml import json import copy import ...
最新文章
- 2022-2028年中国铁路信息化建设投资分析及前景预测报告
- UTA研究团队提出首个3D点云+GAN新方法,让机器人“眼神”更犀利 | AI日报
- Hugo快速搭建Blog
- [POI2005]BAN-Bank Notes
- 游戏线程池的设计0-转自
- 《xUnit Test Patterns》学习笔记2 - Goal Of Test Automation
- python gui下载进度条_对python GUI实现完美进度条的示例详解
- 「力扣」509. 斐波那契数【动态规划】详解!
- 经过 8 万画作+人工注释训练,算法学会了赏析名画
- mysql sql 字符串拼接_深入讲解SQL中的字符串拼接
- python——txt文本处理
- GIF微信表情如何制作
- ANSYS FLUENT——最基本操作(以一个简单的案例为例)
- 解决 WKWebView goback执行无效的bug
- 网页底部固定版权信息
- 大连市金州区石河计算机学校,2021大连市金州区安全教育平台登录入口网址【最新】...
- 烤仔观察 | 秋天的第一口“菠萝”真的那么好吃吗?
- HTTP 与 HTTPS 的理解
- cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
- Flutter学习总纲教程