2、OpenCV 的基本操作

您当前位置: 首页 > Pi-motion 树莓派AI视觉云台 > 3、课程讲解

basic_writeAndRead.zip  点击下载

draw.zip  点击下载

trackbar.zip  点击下载

1.1 读入、显示和保存图像    


1、图像的读入:

img = cv2.imread('tankCar.jpg', 0) 第一个参数是图片的路径,第二个参数是如何读取这幅图片

cv2.IMREAD_COLOR: 读入一副彩色图像。图像的透明度会被忽略,这是默认参数。 Cv2.IMREAD_GRAYSCALE: 以灰度模式读入图像

       

2、图像的显示:

cv2.imshow(‘image’,img)

第一个参数是窗口的名字,窗口会自动调整为图像的大小,

第二个参数是显示图像的句柄 但是在程序执行的过程中窗口会一闪而过,需要添加以下语句:       

  cv2.waitKey(0): 键盘绑定程序,等待键盘输入。

cv2.destroyAllWindows(): 删除我们建立的任何窗口

cv2.destroyWindow(‘image’): 删除指定的窗口名


3、图像的保存:

cv2.imwrite(‘car.jpg’, img)

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

第二个参数是保存的图像


4、图像的读取显示保存综合:

下方程序会加载一幅彩图并显示图片,键盘按下‘s’键保存图像并退出或者按下‘ESC’键退出但不保存程序的源码位于/home/pi/yahboom/basic_writeAndRead/basic_writeAndRead.py

源程序如下:


image.png


1.2 读入、显示和保存视频

     

学习视频的读取,显示和保存视频。函数为 cv2.VideoCapture()和 cv2.VideoWrite()


从摄像头获取视频流:

打开摄像头:

cap = cv2.VideoCapture(0)

 

参数 0 表示设备的默认摄像头,当设备有多个摄像头时可以改变参数选择 读取摄像头的视频流:ret, frame = cap.read() 无参数,但需放在死循环中不断读取形成视频 释放摄像头资源:cap.release() 无参数,程序关闭之前务必关闭摄像头,释放资源。

 

读取视频文件:

cap = cv2.VideoCapture(‘filename’)

其他同上

 

保存视频:

创建一个 VideoWriter 对象,并指定输出文件名,指定视频编码格式 指定编码格式:fourcc = cv2.VideoWriter_fourcc(*’XVID’) 指定输出文件:

out = cv2.VideoWriter(‘output.avi’,fourcc,20.0,(640,480))    

最后一个参数为视频的分辩率


视频读取显示保存综合: 获取摄像头的视频流并保存在当前文件夹下


1.3 绘制直线、矩形、圆


学习使用 OpenCV 绘制不同的几何图形,相关函数为 cv2.line(), cv2.circle(), cv2.rectangle(), cv2.putText()等。


image.png


绘制直线:

cv2.line(img, startPoint, endPoint, color, thickness)

绘制圆:

cv2.circle(img, centerPoint, radius, color, thickness) thickness 是负数是表示圆被填充                                                 

绘制矩形:

cv2.rectangle(img, point1, point2, color, thickness)

point1 为左上顶点,point2 point1 对角线上的另一个顶点

书写文本:

cv2.putText( img, text, point, font, size, color, thickness )                   

text 为要写的文本,point 为第一个字符的左下坐标,font 为字体类型,size 为字体大小 综合:在一幅图片上画线,画圆,画矩形和文字。

 

程序运行效果如下:


image.png 


1.4 OpenCV把鼠标当画笔/调色板 

     

学习将滑动条绑定到窗口,实现动态调整某些参数。学习 cv2.getTrackbarPos()cv2.createTrackbar()两个函数。


创建滑动条:cv2.createTrackbar(name,window, min, max, callback)

第一个参数是滑动条的名字,第二个参数是滑动条存在的窗口,第三和第四个参数是滑 动条的取值范围,第五个是回调函数。


获取滑动条的值:cv2.getTrackbarPos(name, window)

第一个参数是滑动条的名字,第二个参数是滑动条存在的窗口 Demo:改变 RGB 值,实现一个调色板。


运行效果:

image.png 

1-1 OpenCV生成带有调色板的窗口


程序如下,程序的源码位于/home/pi/yahboom/trackbar/track.py

 

image.png