将矩阵保存为图像,恢复后不做任何更改
Save a matrix as an image without changes after recovery
我需要将矩阵保存为图像,以便在回读后,初始矩阵和恢复矩阵相同。我有代码:
import scipy.misc
def get_matrix(N, M):
import random
matrix = [[ random.randint(1, 100) for j in range(M) ] for i in range(N)]
return matrix
def equal(matA, matB):
if len(matA) != len(matB):
return False
if (len(matA[0]) != len(matB[0])):
return False
for i in range(len(matA)):
for j in range(len(matA[i])):
if matA[i][j] != matB[i][j]:
return False
return True
init_matrix = get_matrix(10, 10)
scipy.misc.imsave('matrix.jpg', init_matrix)
recovered_matrix = scipy.misc.imread('matrix.jpg')
assert equal(init_matrix, recovered_matrix)
但是从磁盘读取图像后,矩阵不相等。如何解决?
如果您愿意使用 matplotlib 或 scikit-image,这些库具有满足您需要的内置功能。否则请查看 imageio 包。
我需要将矩阵保存为图像,以便在回读后,初始矩阵和恢复矩阵相同。我有代码:
import scipy.misc
def get_matrix(N, M):
import random
matrix = [[ random.randint(1, 100) for j in range(M) ] for i in range(N)]
return matrix
def equal(matA, matB):
if len(matA) != len(matB):
return False
if (len(matA[0]) != len(matB[0])):
return False
for i in range(len(matA)):
for j in range(len(matA[i])):
if matA[i][j] != matB[i][j]:
return False
return True
init_matrix = get_matrix(10, 10)
scipy.misc.imsave('matrix.jpg', init_matrix)
recovered_matrix = scipy.misc.imread('matrix.jpg')
assert equal(init_matrix, recovered_matrix)
但是从磁盘读取图像后,矩阵不相等。如何解决?
如果您愿意使用 matplotlib 或 scikit-image,这些库具有满足您需要的内置功能。否则请查看 imageio 包。