opencv入门笔记

1、读取图片:image = cv2.imread('imagepath')

      #注:读取图片的路径不能有中文,不然读取不出来

 

2、加载图片:cv2.imshow('窗口名字', image)

#注:直接使用imshow()函数图像会显示,但随即就会消失

         要保证图片一直在窗口上显示要通过waitKey()函数

 

           2.1创建窗口、改变窗口大小:cv2.nameWindow('窗口名字’,cv2.WINDOW_AUTOSIZE)

                    #注:cv2.nameWindow(),初始设定函数标签是cv2.WINDOW_AUTOSIZE,将标签改为cv2.WINDOW_NORMAL控制窗口大小。

                     一般情况下(就是不需要改变默认的窗口大小)这一步可以省略,因为cv2.imshow()自带创建窗口这个功能

 

           2.2 键盘绑定函数: cv2.waitKey(0)

                  #注:waitKey()函数的参数为等待键盘触发的时间,单位为毫秒,其返回值为-1(表示没有键被按下)

                    传入0,指无限等待下一次键盘触发的事件

                   若特指某个键盘值才能退出:

                     while True:

                          if ord('q') = cv2.waitKay(0):

                                break

                    cv2.destroyAllWindow()

                    #键盘输入q退出

 

2.3 删除窗口:cv2.destroyAllWindows()

            opencv是用C++写的,使用完必须释放内存

                    #注:()里不指定任何参数,则删除所有窗口,删除特定的窗口,往()输入特定的窗口值。

 

3、修改图片尺寸:resize_img = cv2.resize(image,dsize(100,100)

                     #dsize()的参数分别是宽度和高度

 

4、返回图片的尺寸:image.shape()

#返回三个参数:image.shape[0], 图片垂直尺寸

                           image.shape[1], 图片水平尺寸

                           image.shape[2], 图片通道数(一般值为3,色彩通道,cv2读取图片的通道是BGR,蓝绿红)

 

5、保存图片:imwrite('图片名称’,image)

'图片名称’:指的是保存的位置+名称(只写名称则保存到当前py脚本的文件夹)

imge:指的是保存的对象

 

6、将图片灰度转换:cv2.cvtColor(image, code =cv.COLOR_BGR2GRAY)

#注:cv2读取图片的通道是BGR,PIL读取图片的通道是RGB(红绿蓝)

        灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸识别。

         所以灰度转换的作用是:转换成灰度的图片的计算强度得以降低。

 

7、在图片中绘制矩形(圆形):

矩形:cv2.rectangle(image, (X, Y, X+W, Y+H), color = (0, 255, 0), thickness = 2)

           #imge:图片对象 (X,Y):是指矩形左上角的坐标 W是长,Y是宽 color中的参数是RGB色彩比例,thickness是指矩形线段的厚度

#cv2.cricle(image,center(x, y) , radius = r, color = (0, 255, 0), thickness = 2)

             #(x ,y)是指圆心坐标 radius是圆的半径

8、cap = cv2.VideoCapture(0)

使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号,所以会打开电脑摄像头,如果电脑上有两个摄像头的话,访问第2个摄像头就可以传入1,依此类推。

VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")

 

9、flag,frame = cap.read()

      cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵。

 

10、cap.set(propId, value)

cv2.VideoCapture().set(propId, value)

功能:设置摄像头

参数:propId:设置的视频参数,

       类型:整数,

       可以参考 :cv2.VideoCapture().get()中的参数

       value: 设置的参数

返回值:bool值:

    true:不能确保摄像头已接受属性值

    flase:摄像头未接受属性值

cap.set(4, 480)

参数:4:在视频流的帧的高度

   480:宽度的数值

功能:把视频流的帧(图片)的高度调成480

 

11、cap.get()参数详解

opencv入门笔记_第1张图片

 

12、cv2.waitKey(1),waitKey()方法本身表示等待键盘输入,

参数是1,表示延时1ms切换到下一帧图像,对于视频而言;

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

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

cv2.waitKay(1)得到的是键盘输入的ASCII码,esc键对应的ASCII码是27,即当按esc键是if条件句成立

 

while True:

     if ord(27) = cv2.waitKey(1):

                 break

       cv2.destroyAllWindow()

 

13、调用release()释放摄像头,调用destroyAllWindows()关闭所有图像窗口。

你可能感兴趣的:(opencv,python,计算机视觉)