opencv(1)读写图像

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的视频读写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值