注意:运行本次课程的程序时一定要有桌面用于显示图片,建议大家使用VNC登录进入系统,这样图片就可以显示出来。
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
源程序如下:
程序运行之后,我们可以看到树莓派系统桌面显示图片,如下图所示。
然后我们按一下键盘上的S键保存图片,同时我们可以看到Jupyter lab上面提示“save image successfully”.
学习视频的读取,显示和保存视频。函数为 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))
最后一个参数为视频的分辩率
视频读取显示保存综合: 获取摄像头的视频流并保存在当前文件夹下
学习使用 OpenCV 绘制不同的几何图形,相关函数为 cv2.line(), cv2.circle(), cv2.rectangle(), cv2.putText()等。
绘制直线:
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 为字体大小 综合:在一幅图片上画线,画圆,画矩形和文字。
程序的源码位于/home/pi/yahboom/draw/draw.py
程序运行效果如下:
学习将滑动条绑定到窗口,实现动态调整某些参数。学习 cv2.getTrackbarPos()和cv2.createTrackbar()两个函数。
创建滑动条:cv2.createTrackbar(name,window, min, max, callback)
第一个参数是滑动条的名字,第二个参数是滑动条存在的窗口,第三和第四个参数是滑 动条的取值范围,第五个是回调函数。
获取滑动条的值:cv2.getTrackbarPos(name, window)
第一个参数是滑动条的名字,第二个参数是滑动条存在的窗口Demo:改变 RGB 值,实现一个调色板。
程序如下,程序的源码位于/home/pi/yahboom/trackbar/trackbar.py
程序运行效果如下:
我们可以随意拖动滚动条,显示不同的颜色,如下图所示。
然后我们按一下键盘上的“S”键或者“ECS”退出该进程。