(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片

这篇具有很好参考价值的文章主要介绍了(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

吴恩达机器学习的课程作业里,经常会出现以mat数据存储的图像,为此我十分好奇,中间过程是怎么实现的,这篇博客简单的学习一下:

首先,我们看一下图片:(图片来源于网络,如有侵权,请立刻联系我删除

(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片
导入需要用到的包

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.0
    new_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.0
    new_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()

(娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片
可以实现!

上面要先对图片去除颜色,就是变成黑白的,转换成二维数据矩阵,不去颜色的还要保存颜色的,然后后面转换就不行了。然后利用Image.fromarray(data) 新建图片文章来源地址https://www.toymoban.com/news/detail-510934.html

完整代码

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.0
    new_data = np.reshape(data, (height, width))
    return new_data

# 将矩阵转换为图片
def matrix_to_image(data):
    data = data * 255.0
    new_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图片转换成矩阵数据,矩阵数据转换成图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (Python)MATLAB mat矩阵和Python npy矩阵转换

    Python np.ndarray矩阵转换为MATLAB mat文件 Python读取MATLAB mat文件

    2024年01月16日
    浏览(44)
  • 使用Python批量转换彩色图片到灰度图片

    当涉及到图像处理和计算机视觉时,有时需要将彩色图片转换为灰度图片,一张一张使用PS等工具转换十分复杂且没有必要。今天介绍的这种方法用到了Pillow库。使用Pillow库来打开,加载并转换彩色图像,并将图像储存在另一个文件夹里。具体步骤如下所示。 目录  〇、准备

    2024年02月05日
    浏览(72)
  • python将图片转矩阵

        在机器学习手写数字识别案例中,需要将手写数字图片转矩阵向量。其实转矩阵,就需要根据图片上像素点来组成一个矩阵,如果把图片看作一个 长*宽 的二维矩阵,那么矩阵中的每个点的像素表示的数字组成一个新的矩阵。     一般图片我们会将他转灰度图,整个图片

    2024年02月11日
    浏览(20)
  • 用Python将原始边列表转换为邻接矩阵

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在图论和网络分析中,图是一种非常重要的数据结构,它由节点(或顶点)和连接这些节点的边组成。在Python中,我们可以使用邻接矩阵来表

    2024年04月25日
    浏览(28)
  • python学习笔记——矩阵跟向量间的转换

    2、向量转矩阵:reshape() 可以将一维数据转为多维数据

    2024年02月16日
    浏览(43)
  • 【数据结构】三对角矩阵(带状矩阵)的压缩 数组下标转换

    王道书中给出定义如下: 书中没有给出具体的推导过程,在CSDN上也没搜到,因此我来发一篇(哈哈哈哈哈 推导过程如下: 首先除去第一行。 从第二行开始,当矩阵的下标为(i,j)的时候: 前面一定会有第一行的2个 会有从第2行开始到第i-1行的每行3个,因此是3(i-1-2+1)=3(i-2)

    2024年02月07日
    浏览(49)
  • 使用Python和wxPython将图片转换为草图

    导语: 将照片转换为艺术风格的草图是一种有趣的方式,可以为您的图像添加独特的效果。在本文中,我们将介绍如何使用Python编程语言和wxPython图形用户界面库来实现这一目标。我们将探讨如何使用OpenCV库将图像转换为草图,并使用wxPython创建一个简单的界面,使用户能够选

    2024年02月14日
    浏览(33)
  • Python PDF转换为图片的解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月03日
    浏览(59)
  • 【Python】旋转矩阵与旋转向量的相互转换(OpenCV)

    因为任意旋转矩阵仅有 3 个自由度,因此旋转向量是旋转矩阵的一个方便和最紧凑的表示。在全局 3D 几何优化中常用到旋转矩阵和旋转向量的相互转换,例如相机标定、PnP 问题的求解等。本文介绍基于 OpenCV-Python 的互转换实现方法。 参数详解 : src :输入旋转向量(3x1 或

    2024年02月12日
    浏览(42)
  • 将欧拉角转换为旋转矩阵(手眼标定)python版本

    1、欧拉角版 2、四元数版 3、旋转矩阵版本 4、齐次矩阵

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包