导入所需要的库
import cv2 as cv
import numpy as np
as cv就是cv2,为啥这么写,我也不知,很多人都是这样简写的
输出图片属性
type(image)显示图片类型numpy类型的数组
image.shapeshape会返回tuple元组,第一个元素表示矩阵行数,第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
image.size图像大小
image.dtype图像类型
np.array(image)返回一个对象,可赋值给变量;作用是将图片转化为矩阵
def get_image_info(image): # 定义一个函数来输出图片的一些属性
print("显示图片类型numpy类型的数组",type(image))
# 图像矩阵的shape属性表示图像的大小
# shape会返回tuple元组,第一个元素表示矩阵行数
# 第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
print("shape会返回tuple元组",image.shape)
print("图像大小",image.size) # 图像大小
print("image.dtype图像类型",image.dtype) # 图像类型
pixel_data = np.array(image) # 将图片转化为矩阵
print("将图片转化为矩阵np.array",pixel_data) # 图片矩阵
读取图片
cv.imread()函数读取图片,并返回一个对象,可赋值给变量;
src = cv.imread("pic/bizhi.jpg") # imread读取
创建窗口,用来显示图片
cv.WINDOW_NORMAL(不知作用) | namedWindow
cv.namedWindow('input_image',cv.WINDOW_NORMAL)
在指定窗口展示图片
cv.imshow("input_image",src)
图片另存为;存到C盘要权限
cv.imwrite("D://2.png",src) # 2个参数,路径和原来图片名变量
窗口显示时间,一般为0,一直显示,按键则不为0,退出(个人理解)
cv.waitKey(0)
删除建立的全部窗口,释放资源
cv.destroyAllWindows()
完整代码
import cv2 as cv
import numpy as np
# 输出图片属性
def get_image_info(image): # 定义一个函数来输出图片的一些属性
print("显示图片类型numpy类型的数组",type(image))
# 图像矩阵的shape属性表示图像的大小
# shape会返回tuple元组,第一个元素表示矩阵行数
# 第二个矩阵表示矩阵列数,第3个元素是3,表示像素值由光的三原色组成
print("shape会返回tuple元组",image.shape)
print("图像大小",image.size) # 图像大小
print("image.dtype图像类型",image.dtype) # 图像类型
pixel_data = np.array(image) # 将图片转化为矩阵
print("将图片转化为矩阵np.array",pixel_data) # 图片矩阵
# 主函数 C++风格
if __name__ == "__main__":
# 读取图片
src = cv.imread("pic/bizhi.jpg") # imread读取
# 创建窗口,用来显示图片
# cv.WINDOW_NORMAL | namedWindow
cv.namedWindow('input_image',cv.WINDOW_NORMAL)
# 在指定窗口展示图片
cv.imshow("input_image",src)
# 调用函数,输出图片属性
get_image_info(src)
# 图片另存为;存到C盘要权限
cv.imwrite("D://2.png",src) # 2个参数,路径和原来图片名变量
# 窗口显示时间,单位:毫秒 k=0: (也可以是小于0的数值)
# 一直显示,键盘上按下一个数字键即会消 k>0:显示多少毫秒
cv.waitKey(0)
# 删除建立的全部窗口,释放资源
cv.destroyAllWindows()