一、读取图像:imread(‘filename’)
 
 
src = cv.imread('D:/OpenCV/opencv-python/coins.png')
 
二·、显示图像:imshow(winname, mat)
 
@param winname Name of the window.
@param mat Image to be shown.
cv.imshow('input image', src)
 
三、保存图像:imwrite(filename, img, params=None)
 
 
cv.imwrite('D:/OpenCV/opencv-python/coins1.png', src)
 
四、waitkey
 
- waitKey():在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下:键,则继续等待,一直处在循环中。
 - 下面程序中OpenCv等待用户触发事件,等待时间为50ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,则继续循环。
 
 
c = cv.waitKey(50)
if c == 27:
   break
 
- 如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件
 
 
五、代码展示
 
 import cv2 as cv
import numpy as np
def video_demo():
    capture = cv.VideoCapture('D:/OpenCV/20220305_11.mp4')  
    while True:
        ret, frame = capture.read()
        """
        src:输入数组。
        DST:输出数组的大小和类型与src相同。
        flipCode:指定如何翻转数组的标志;0表示绕x轴翻转,而正值(例如,1)表示绕y轴翻转。负值(例如,-1)表示在两个轴上翻转。
        """
        frame = cv.flip(frame, 1)
        cv.imshow('video', frame)
        c = cv.waitKey(1)
        if c == 27:
            break
def get_image_info(image):
    """
    type(object_or_name, bases, dict)
    type(object) -> the object's type
    type(name, bases, dict) -> a new type
    """
    print(type(image))
    
    print(image.shape)
    
    print(image.size)
    
    
    print(image.dtype)
    
    pixel_data = np.array(image)  
    print(pixel_data)
print("-------Hello Python-------")
src = cv.imread('D:/OpenCV/opencv-python/coins.png')
"""
namedWindow(winname[, flags]) -> None
winname:窗口的名字
flags:窗口类型,CV_WINDOW_AUTOSIZE表明窗口大小自动适应图片大小,并且不可手动更改。 CV_WINDOW_NORMAL表明窗口可以被随意拖动改变大小。
"""
cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)
"""
@param winname Name of the window.
@param mat Image to be shown.
"""
cv.imshow('input image', src)
get_image_info(src)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
cv.imwrite('D:/OpenCV/opencv-python/coins1.png', src)
video_demo()
cv.waitKey(0)
cv.destroyAllWindows()
print('Hi,Python!')