分享

Python

 暖带未来街QAZ 2019-11-05

*本文学习资源来自《TensorFlow深度学习应用实践》

一、基本的图片存储格式

Python以矩阵形式存储和处理图片。

如:通过Numpy创建一个长宽各300的矩阵,各个点的值为0:

img = np.mat(np.zeros((300,300))

这里img就是一个300*300,每个像素点都为黑色的图片,可以使用OpenCV显示:

cv2.imshow('test',img)cv2.waitKey(0)
Python-OpenCV 2. 图像基本操作

生成图像时,每个像素都是由一个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)

运行示例:

Python-OpenCV 2. 图像基本操作

示例:对一行或一列进行操作

# -*- 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)
Python-OpenCV 2. 图像基本操作

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多