*本文学习资源来自《TensorFlow深度学习应用实践》 一、基本的图片存储格式 Python以矩阵形式存储和处理图片。 如:通过Numpy创建一个长宽各300的矩阵,各个点的值为0: img = np.mat(np.zeros((300,300)) 这里img就是一个300*300,每个像素点都为黑色的图片,可以使用OpenCV显示: cv2.imshow('test',img)cv2.waitKey(0) 生成图像时,每个像素都是由一个8位的整数来表示,即每个像素值的范围是0~255。 下面使用opencv的方法把一维图片转成三维RGB图片: # -*- coding:utf-8 -*-import cv2import numpy as npfn = 'test.jpg'if __name__ == '__main__': img = np.mat(np.zeros((300, 300), dtype=np.uint8)) # 把一维图片转成三维图片 img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) cv2.imshow('test', img) cv2.waitKey(0) 二、图像的读取与存储 OpenCV对基本类型的图片,提供imread和imwrite方法读写。 image = cv2.imread('test.jpg',cv2.IMREAD_GRAYSCALE)cv2.imwrite('test.png',image) 三、图像的转换 把图片转成一维的Python bytearray格式: imageByteArray = bytearray(image) bytearray也可以通过矩阵重构的方法还原为原本的图片矩阵: imageBGR = np.array(imageByteArray).reshape(300,300) 四、使用NumPy对图像进行编辑 示例:修改图片的颜色 # -*- coding:utf-8 -*-import cv2import numpy as npif __name__ == '__main__': img = np.zeros((300, 300)) for i in range(0, 300): img[i, i] = 255 cv2.imshow('img', img) cv2.waitKey(0) 运行示例: 示例:对一行或一列进行操作 # -*- coding:utf-8 -*-import cv2import numpy as npif __name__ == '__main__': img = np.zeros((300, 300)) img[:, 10] = 255 img[10, :] = 255 cv2.imshow('img', img) cv2.waitKey(0) |
|
来自: 暖带未来街QAZ > 《?计算机图标门画笔;》