图像的基本操作
第一步的第一步是要导入opencv库和numpy库
import cv2 as cv
import numpy as np
写入
img = cv.imread(r"E:\Test\cross12.tif", 0)
r防止转译,后面的数字0表示灰度图,1表示彩色图
保存
cv.imwrite(r"E:\Test\1.tif", img)
显示
cv.imshow("cross", resized_img)
k = cv.waitKey(0)
if k ==27: # 按esc退出窗口
cv.destroyAllWindows()
必须使用waitKey才能显示
显示的窗口大小调整
用了一张2048*2048的图片,会覆盖整个屏幕并且显示不完整
方法一
resized_img = cv.resize(img, (500, 500))
用元组把想要的尺寸给框起来
方法二
resized_img = cv.resize(img, (int(img.shape[1]/2), int(img.shape[0]/2)))
可以使图像的比例不发生改变
将图像转化为灰度图
用函数来完成该功能:
def to_gray(image):
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
cv.imwrite("路径", gray)
核心语句是
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
图像的属性获取
def get_image_info(image):
# 从上到下依次是图像的类型、长和宽和通道数、总大小、像素值类型
print(type(image))
print(image.shape)
print(image.size)
print(image.dtype)
pixel_data = np.array(image) # 获取像素大小(矩阵)
print(pixel_data)
视频的基本操作
def video_demo():
# 参数可以是设备的索引号,或者是一个视频文件(没有声音)。
# 设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。
# 你可以通过设置成 1 或 者其他的来选择别的摄像头
# 你可以使用函数 capture.get(propId) 来获得视频的一些参数信息。
# 这里 propId 可以是 0 到 18 之间的任何整数。
capture = cv.VideoCapture(0)
while True:
ret, frame = capture.read() # frame表示帧数
frame = cv.flip(frame, 1) # 通过摄像头读取视频,即“自拍”;把视频翻转过来
cv.imshow("video", frame)
c = cv.waitKey(50) #后面还有销毁窗口的操作