美文网首页
Python CV2的基本操作

Python CV2的基本操作

作者: 想阳 | 来源:发表于2020-03-27 02:04 被阅读0次

    Python CV2的基本操作

    cv2.imread(filepath,flags)

    filepath:要读入图片的完整路径

    flags:读入图片的标志

    • cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
    • cv2.IMREAD_GRAYSCALE:读入灰度图片
    • cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

    返回值是一个numpy对象

    cv2.namedWindow(窗口名,属性)

    窗口名是一个字符串,属性包括

    cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小

    cv2.WINDOW_NORMAL:窗口大小可调整

    cv2.imshow(wname,img) 展示图片

    第一个参数是显示图像的窗口的名字

    第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小。

    cv2.imwrite保存图片

    使用函数cv2.imwrite(file,img,num)保存一个图像。

    第一个参数是要保存的文件名,

    第二个参数是要保存的图像。

    可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。

    • cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
    • cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小
    cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
    cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
    

    cv2.flip 翻转图片

    使用函数cv2.flip(img,flipcode)翻转图像,flipcode控制翻转效果。

    • flipcode = 0:沿x轴翻转
    • flipcode > 0:沿y轴翻转
    • flipcode < 0:x,y轴同时翻转

    cv2.putText 在图像上输出文字

    putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None) 
    
    1. img: 图像
    2. text:要输出的文本
    3. org: 文字的起点坐标 第一个是宽 第二个是高 以左上角为参考
    4. fontFace: 字体
    5. fontScale: 字体大小
    6. color: 字体颜色
    7. thickness: 字图加粗
    import cv2
     
    img = cv2.imread("01.jpg")
     
    cv2.putText(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255))
     
    cv2.imshow("img",img)
    cv2.waitKey()
    
    image.png

    基本绘图

    参考:https://blog.csdn.net/jnulzl/article/details/47056937

    ===============================接下来是视频操作

    cv2.VideoCapture获取摄像头

    VideoCapture()中参数是0,表示打开笔记本的内置摄像头,

    参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")

    cap.isOpened()函数

    返回true表示成功,false表示不成功

    cap.read()

    #正常使用
    ret,frame = cap.read()
    

    cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。

    其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。

    frame就是每一帧的图像,是个三维矩阵。

    cv2.waitKey(1)

    #正确使用
    c = cv2.waitKey(1)
    

    表示等待键盘输入

    参数是1,表示延时1ms切换到下一帧图像,对于视频而言;没有按键返回-1

    参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;

    参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。

    c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27

    ord() 函数 返回对应的 ASCII 数值

    cap.release()

    释放摄像头的资源

    相关文章

      网友评论

          本文标题:Python CV2的基本操作

          本文链接:https://www.haomeiwen.com/subject/ftjkuhtx.html