2 - Open CV读取图像、视频,并保存到本地

1.读取图像

import cv2 as cv

# cv模块下的imread()函数可以读出图片
# 将读出的图像付给一个新的变量
src = cv.imread("images/handsomeboy01.jpg")

# 有了图片之后,我们就可以创建一个GUI将它显示出来。
# 通过Open CV框架进行创建这个显示图像的窗口
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)

# 通过函数imshow()进行显示图像在当前的窗口,
# 但是这个显示的窗口怎么和之前创建的窗口进行吻合呢?
# 这时就可以通过名字与之前的窗口进行吻合。
cv.imshow("input image",src)

# Open CV在创建一个窗口之后,如果没有告诉它多久关掉的话,
# 它就会等到你的下一次操作执行的时候,进行关掉。
cv.waitKey(0)
cv.destroyAllWindows()
# 等到用户的下次操作时,它就会关闭窗口,并且释放掉所有的内存。

2.读取图像,打印输出图像的属性信息

# 图像就是结构化存储的数据信息
# 图像属性:通道数目、高与宽、像素数据、位图深度(每个像素点由多少位表示)、图像类型

import cv2 as cv
import numpy as np


# 定义一个函数,读取图像的各属性的信息
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)


print("------------- Hello Guyan ------------")

# 读出图像,赋值给变量
src = cv.imread('images/handsomeboy01.jpg')
# 创建窗口
cv.namedWindow("Guyan01 image",cv.WINDOW_AUTOSIZE)
# 将读出的图像进行显示到当前窗口
cv.imshow("Guyan01 image",src)
# 将读取的图像进行保存,进行保存的时候,会根据图片的后缀进行保存图片的类型
cv.imwrite("dist/images/turtor_01/turtor_01.jpg",src)

# 同样可以将我们的图片保存为一张灰度图片
gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY)
cv.imwrite("dist/images/turtor_01/gray_turtor_01.jpg",gray)

# 调用定义的函数
get_image_info(src)
cv.waitKey(0)

cv.destroyAllWindows()

执行结果:

------------- Hello Guyan ------------
<class 'numpy.ndarray'> //图像类型为numpy数组类型的
(301, 200, 3)   //打印输出图像的具体信息为3通道的
180600         //打印输出图像的大小
uint8          //m每个通道所占位数为多少呢?无符号的int8位,就是一个字节的位数
//并且会在项目的文件夹dist/images/turtor_01中含有加载进来的原图像和经过灰度处理的灰度图像。

3.读取视频

import cv2 as cv


def video_demo():
    # 打开电脑上的摄像头
    capture = cv.VideoCapture(0)
    # 打开摄像头之后就可以进行读写操作了
    while(True):
        # 读视频的时候会返回两个值,一个是return,即为返回值;
        ret,frame = capture.read()
        # 将视频显示的时候进行左右变换,并且输出。同样也可以上下变换
        frame = cv.flip(frame,1)
        # frame即为读取的视频的每一帧,之后就会将视频的每一帧显示出来
        cv.imshow("Video Image",frame)
        # 定义用户50ms之后进行关闭窗口
        c = cv.waitKey(50)
        if c == 27:
            break


video_demo()
cv.imshow(0)
# 关闭窗口,只需要告诉它窗口的名字就可以了。
cv.destroyAllWindows()

执行结果:在我们运行程序的时候就会打开我们电脑上的摄像头,从摄像头中就可以看到我们自己了。

发布了76 篇原创文章 · 获赞 2 · 访问量 2774

猜你喜欢

转载自blog.csdn.net/zjy123078_zjy/article/details/103514559
今日推荐