'''图片转数组''' img = Image . open ( '1.jpg' ) # 使用 PIL 打开图片 data = img . getdata ( ) # 获取图片的数据信息 class <'ImagingCore'> data = np . array ( data ) # 把这个数据通过 numpy 转换成多维度的张量 print ( data )

直接用 cv2.imread() 读出来就是个三维的数组

import cv2
img2 = cv2.imread('1.jpg')  # 使用 cv2 来打开图片
print(img2)

在这里插入图片描述
如果想知道方法一和方法二的区别,可以查阅我的上一篇 opencv 学习文章:
https://blog.csdn.net/qq_42902997/article/details/108326214

矩阵转换成图片

  • 产生一个 625 * 625 * 3 的图片,先产生 625 * 625 * 3 = 1171875 个像素点
  • 将产生的数据通过numpy 进行 resize
  • 将处理过的矩阵通过 imwrite 写成新的图片(如果没有这一步而直接 imshow 会出错)

错误代码段

data = [random.randint(0,255) for _ in range(1171875)]
data = np.resize(data,(625,625,3))
print(data)
cv2.imshow('img2',data)  # 错误示范:这里直接将矩阵是 imshow 不出结果的
cv2.waitKey(0)

正确代码段

import numpy as np
import cv2
import random
data = [random.randint(0,255) for _ in range(1171875)]   
data = np.resize(data,(625,625,3))
print(data)
cv2.imwrite('2.jpg',data)
s = cv2.imread('2.jpg')
cv2.imshow('img2',s)
cv2.waitKey(0)

最后产生了一张这样的图:其中像素点的值都在 0-255 之间
在这里插入图片描述

文章目录图片转化成矩阵方法一:方法二:矩阵转换成图片错误代码段正确代码段图片转化成矩阵方法一:使用 PIL 的方法 + img.getdata() 提取数据 + np.array() 的转换最后得到的结果是个二维数组from PIL import Imageimport numpy as np'''图片转数组'''img = Image.open('1.jpg') # 使用 PIL 打开图片data = img.getdata() # 获取图片的数据信息 class &l
最近学了些opencv,想把摄像头拍到的图像通过opencv显示出来,摄像头拍到的数据存到二维数组中,然后通过opencv显示,大概的程序如下:         unsigned char graph[64][128];//摄像头拍到的数据         IplImage* img = cvCreateImage( cvSize(64,128), 16, 1 ); //size为图像
import numpy as np # import scipy import matplotlib.pyplot as pltdef ImageToMatrix(filename): # 读取图片 im = Image.open(filename) # 显示图片 # im.show() /*************************************/ //1.读入Mat矩阵(cvMat一样),Mat img=imread("*.*");//cvLoadImage //确保转换前矩阵中的数据都是uchar(0~255)类型(不是的话量化 一般情况下,在计算机视觉领域会出现很多次需要将图像显示或者保存到文件夹下,下面就介绍使用多种方法来实现图像的保存与显示。 文章目录1. 从矩阵图片的显示方法与保存1.1 PIL实现1.2 Matplotlib实现1.3 OpenCV实现1.4 Numpy实现1.5 Torchvision实现2. 从路径到图片的显示方法2.1 PIL实现2.2 Matplotlib实现2.3 OpenCV实现 1. 从矩阵图片的显示方法与保存 1.1 PIL实现 from PIL import .
    刚开始接触到OpenCV,本身是想学借助OpenCV的库来进行图像处理学习的,后来发现OpenCV将所有的东西都集成起来了,对于打算学习图像处理来说这样反而不是什么好事;     在我看来,图像处理基本基于对像素值的处理,那么我们尽可能的用数组来存储像素值,对于OpenCV来说不便于按照我们的做法来对图片进行处理。但是OpenCV给我们集成了cv::Mat::at这样一个结构,用于读取图...
前面的一些例子中,我们都是利用Image.open()来打开一幅图像,然后直接对这个PIL对象进行操作。如果只是简单的操作还可以,但是如果操作稍微复杂一些,就比较吃力了。因此,通常我们加载完图片后,都是把图片转换成矩阵来进行更加复杂的操作。 python中利用numpy库和scipy库来进行各种数据操作和科学计算。我们可以通过pip来直接安装这两个库 pip install numpy pip install scipy 以后,只要是在python中进行数字图像处理,我们都需要导入这些包: from PIL import Image import numpy as np import ma
# 读取图片并转换为灰度图像 img = cv2.imread('image.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 边缘检测 edges = cv2.Canny(gray, 100, 200) # 查找轮廓 contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 计算矩阵图片中的比例 matrix_area = 100 # 假设矩阵面积为100 img_area = img.shape[0] * img.shape[1] # 计算图片面积 ratio = matrix_area / img_area print('矩阵图片中的比例为:', ratio)
Pytorch避坑之:RuntimeError: Input type(torch.cuda.FloatTensor) and weight type(torch.FloatTensor) shoul 暖仔会飞: 机器学习理论之(13):感知机 Perceptron;多层感知机(神经网络) 暖仔会飞: 不是,是借用上课的时候老师 ppt 的图表情包 机器学习理论之(13):感知机 Perceptron;多层感知机(神经网络) 小张小张嚣嚣张张: 写的真好!请问作者大大的图(在这个文章中)是自己做的吗? 代码复现之:RCNN(1)分类任务构建 + 模型训练 zhzgcyy: 请问这个代码可以训练自己的数据集吗?需要怎么导入自己的数据集呢? Keras学习之:如何写多模型神经网络 飞翔的-企鹅: 你好,博主,请问一下这样是不是可以搭建不同类型数据输入的模型了,,input1是图片数据,input2是信号数据,最后一个输出,保证这两者的标签是一一对应的,然后只用一个y_train就可以训练了。