1.图像的读操作
具体代码刚开始如果不是特别理解的话就记住就可以了,等到时间长了,用的多了查的多了在去深入的了解。
# 导入cv2 模块 并起别名为cv
import cv2 as cv
# 读取图片为矩阵格式
src = cv.imread("leda.jpg")
print(src.shape)
# 创建一个 窗体 命名为leda 后面这个参数的意思是把图片调整到和窗口大小一致。
# 这里也可以不跟 cv.WINDOW_AUTOSIZE 具体有什么效果 大家可以换一张比较大的图像
# 试一下就知道了
cv.namedWindow("leda",cv.WINDOW_AUTOSIZE)
# 把需要展示的图像的矩阵 传到 前面创建的窗体中进行展示
cv.imshow("leda",src)
# 等待用户输入 如果不输入阻塞到这里 destoryAllWindows()这个函数就一致不执行。
s = cv.waitKey(0)
# 销毁窗口 也可以指定窗口销毁哦
cv.destroyAllWindows()
2.当图像读取中遇见了中文路径
我在第一次遇见这个问题的时候我也蒙圈了好久,路径都是对的但是就是读不出来相应的照片,我一直怀疑是我的代码有问题后来多方查询才发现是因为中文路径的问题。
import cv2 as cv
import numpy as np
# 含有中文的路径 如果直接用cv.imread(path) 去读的话
img_path = r"F:\迅雷下载\opencv\sources\samples\data\lena.jpg"
# 通过图片路径 读取 img_path
# buf - Input array or vector of bytes.
# flags - The same flags as in cv2.imread().
# - >0 Return a 3-channel color image.
# - =0 Return a grayscale image.
# - <0 Return the loaded image as is (with alpha channel).
s = np.fromfile(img_path,dtype=np.uint8)
print(s.shape)
img = cv.imdecode(np.fromfile(img_path,dtype=np.uint8),-1)
print(img.shape)
cv.namedWindow("lena",cv.WINDOW_AUTOSIZE)
cv.imshow("lena",img)
cv.waitKey(0)
cv.imencode(".jpg",img)[1].tofile("leda.jpg")
cv.destroyAllWindows()
3.接下来 开始学习cv的视频读写。