Python CV2 库内函数的使用方法(持续更新)

CV2是Python里的opencv库,很多时候处理图像都可能会用到。这里列出一些它的函数及相关的使用。

一、resize()缩放

想要将函数缩放,于是在网上寻找方法。下面是在csdn上找到的其他人的文章:

1.(59条消息) Python-OpenCV之图片缩放(cv2.resize)_li_il的博客-CSDN博客

2.第二个是用的另外的库PIL

(59条消息) Python进行图片缩放_不忘初心的专栏-CSDN博客_python图片缩放

但是我却在使用当中遇到了很大的问题

img = cv2.resize(img, (500,500))

报错:“cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\resize.cpp:3929: error: (-215:Assertion failed) func != 0 in function 'cv::hal::resize' ”

我当时人就傻了,我D盘里面没有一个叫’a‘的文件夹叭,不会吧不会吧?

然后将默认插值取样方法改成interpolation=cv.INTER_NEAREST,这个报错就没有了,真奇怪真奇怪

二、读写图片,并转化成灰度图

调用imread即可,如果代码跟要读取的文件放在一个文件夹内,可以直接填入该图片文件的名字。

下面代码的第二行是将彩色图片转换成灰度图片

# 读取图像
imag = cv2.imread('3.jpg')
imag = cv2.cvtColor(imag, cv2.COLOR_BGR2GRAY)

三、读取视频并转换输出成图片,保存在相应的文件夹内

这段代码借鉴了文章:Python调用OpenCV读写视频 - 熊叫大雄 - 博客园 (cnblogs.com)

我有一个在hand 文件夹下名为left_4.mp4的视频,现在我想要将它用python读取,并且每两帧将图片保存在hand文件夹下一个叫做left_4的文件夹内,直到保存了500张,并且按照顺序给每张图片取名。

import cv2

# cap = cv2.VideoCapture(0)  #读取摄像头
cap = cv2.VideoCapture("./hand/left_4.mp4")  # 读取视频文件
m = 0
while True:
    m = m + 1
    ret, frame = cap.read()
    if ret:
        if m % 2 == 0: # 每隔一帧保存一图片
            cv2.imwrite("./hand/left_4/left4-" + str(m / 2).zfill(4) + ".png", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        if m == 1000: # 保存了1000/2=500张时停止
            break
    else:
        break
cap.release()

你可能感兴趣的:(python中一些库的学习,python)