OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法毕业设计的内容涉及到图像处理和机械控制,所以选择使用opencv进行图像处理,机械控制部分仍然采用MEGA2560作为主控板 我之前的项目大多使用python作为开发工具,所以这个系列是基于python来做

环境依赖和opencv包

1.环境:python3.7+windows10

2.函数包:

直接pip install opencv-python即可

实例

实例1-1:打开一张图片并且显示

import cv2img = cv2.imread('lena.jpg', 0)cv2.imshow('lena', img)cv2.waitKey(1000)

#加载函数

import cv2

#读取图片

img = cv2.imread('lena.jpg', 0)

#lena.jpg路径路径中不能有中文

#彩色图默认值(1),灰度图(0),包含透明通道的彩色图(-1)

#显示图片

cv2.imshow('lena', img)

#lean窗口名称(中文显示异常)

#img图片的二值化形式

实例1-2:打开摄像头并实时显示
import cv2cap = cv2.VideoCapture(1)while(1):    ret,frame = cap.read()    flag=cv2.COLOR_BGR2GRAY    gray = cv2.cvtColor(frame, flag)    cv2.imshow('windows', gray)    if cv2.waitKey(1) == 27:        break   

#创建一个摄像头实例

name = cv2.VideoCapture(1)

    参数1指的是摄像头的编号,如果你电脑上有两个摄像头的话,访问第2个摄像头就可以输入1

#获取一帧

 ret,frame = cap.read()

    ret是一个布尔值,表示当前这一帧是否获取正确;frame是获取的二值化值形式的图片

#颜色空间转换

gray = cv2.cvtColor(input_image, flag)

    #input_image要转换的图片,flag是转换类型

在opencv中有超过150种颜色空间转换方法,但是经常用的只有BGR-灰度图和BGR-HSV。

BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY,BGR和HSV的转换使用 cv2.COLOR_BGR2HSV

这个函数功能很强大,后面用到会具体介绍

#图像展示延时

cv2.waitKey(delay)

函数功能:

waitKey() 函数的功能是不断刷新图像 , 频率时间为delay , 单位为ms 

同时可以接收键盘输入的值,返回值为当前键盘按键的ASCII 数值,是在一个给定的时间内(单位ms)等待用户按键触发

常见 : 

1.设置 waitKey(0) , 则表示程序会无限制的等待用户的按键事件(卡在这一步)
if cv2.waitKey(1) == 27:        break  
2.等待用户触发事件等待时间为1ms,如果在这个时间段内,用户按下 ESC(ASCII码为27) , 执行 if 体。如果没有按,if函数不做处理

2d52e8dc5f0352d9621fee615542bd62.png

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐