1.opencv基础

1.opencv基础

In [1]:
import cv2 as cv 

#读出video
#打开指定路径下的视频文件:cap =cv2.VideoCapture(path)
#读取每一帧:flag,frame = cap.read(),打开视频并读取每一帧图片,将视频转换为4维的矩阵
def video_demo():
    cap=cv.VideoCapture(0)
    while(1):
        # get a frame
        ret, frame = cap.read()#frame是每一针
        #视频左右镜像打开,参数是1
        frame=cv.flip(frame,1)
        # show a frame
        cv.imshow("capture", frame)
        cv.waitKey(50)
       # c=cv.waitKey(10)#延时50ms,等待键盘输入返回对应的ASCII
        #if c==27:    
        #其中27是ESC的意思,ASCII十进制的表示方法
        if  cv.waitKey(20)&0xFF == ord('q'):
            break
        #如果在输入q后仍然无法中断摄像头,把cv.waitKey时间延长一点即可
        #0xFF == ord('q')是键盘接收命令q时退出,
        #0xFF位掩码是d对应十进制255,二进制1111 1111,只有后8位实际有效,为避免产干扰,通过 ‘与’ 操作将其余位置0。
        #ord('q'):返回q对应的Unicode码对应的值,q对应的Unicode数值为113。ord()是返回字符对应的整数        
#查看图片信息
def get_image_info(image):
    print(type(image))
    print(image.shape)
    print(image.size)
    print(image.dtype)

    
    
print("----hello----")
#读取图片
src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
#窗口名字
cv.namedWindow("picture1",0)
#显示图片窗口
#如果名字是中文则文件上要加上   # -*- coding=GBK -*-
#  如果不加会报错,如果加的是    # -*- coding: utf-8 -*-,虽然不会报错,但会是乱码
cv.imshow("picture1",src)
# 创建窗口,其实不写这行代码也可以show出来。单位mshttp://localhost:8889/notebooks/%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/OPENCV/1.opencv%E5%9F%BA%E7%A1%80.ipynb#
cv.waitKey(1000)#参数为0,就是窗口一直显示
#关闭窗口
cv.destroyAllWindows()#删除建立的全部窗口,释放资源
get_image_info(src)
#保存图片
cv.imwrite("./test1.png",src)
#显示灰度图
gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)
cv.namedWindow("picture2",0)
cv.imshow("picture2",gray)
cv.waitKey(5000)
cv.destroyAllWindows()
 
----hello----
<class 'numpy.ndarray'>
(96, 89, 3)
25632
uint8
In [2]:
video_demo()
cv.waitKey(1)
#如果没下面的指令也会造成,在获取键盘指令后,窗口无法完全关闭
cv.destroyAllWindows()#删除建立的全部窗口,释放资源

猜你喜欢

转载自www.cnblogs.com/AI-robort/p/13377798.html