SCIPY提供了一些与图像一起工作的基本功能。例如,它具有读取图像到numpy阵列、将numpy阵列写入图像的功能,以及调整图像大小的功能。下面是一个展示这些功能的简单例子:
图像基础操作
from scipy.misc import imread, imsave, imresize
img = imread('assets/cat.jpg')# 读取图像
print(img.dtype, img.shape) # Prints "uint8 (400, 248, 3)"
img_tinted = img * [1, 0.95, 0.9]#意思就是只有红色通道不变,绿色和蓝色通道分别乘0.95和0.9
img_tinted = imresize(img_tinted, (300, 300))# 变换图像的尺寸
imsave('assets/cat_tinted.jpg', img_tinted)# 保存图像
#scipy.io.loadmat and scipy.io.savemat是用在读取和保存matlab文件
img = imread('assets/cat.jpg')# 读取图像
print(img.dtype, img.shape) # Prints "uint8 (400, 248, 3)"
img_tinted = img * [1, 0.95, 0.9]#意思就是只有红色通道不变,绿色和蓝色通道分别乘0.95和0.9
img_tinted = imresize(img_tinted, (300, 300))# 变换图像的尺寸
imsave('assets/cat_tinted.jpg', img_tinted)# 保存图像
#scipy.io.loadmat and scipy.io.savemat是用在读取和保存matlab文件
两点之间距离
import numpy as np
from scipy.spatial.distance import pdist, squareform
from scipy.spatial.distance import pdist, squareform
x = np.array([[0, 1], [1, 0], [2, 0]])
print(x)
print(x)
#pdist计算的是每一行的距离,
pdist(x, 'euclidean')=(0,根号2,
根号3,根号2,0,1,根号3,1,0)
#即第一行的与第一行、第二行、第三行的距离......
d = squareform(pdist(x, 'euclidean'))
#
squareform 的参数就是 pdist 的返回值,将 pdist 返回的一维形式拓展为方阵
print(d)
print(d)