opencv函数学习(python)

    最近在看胡春旭老师的<ROS机器人开发实践>,第七章讲机器视觉,于是跟随胡老师的代码写了一遍.接下来我就把整理的在这一章学习的有关opencv的几个函数分享出来

    1. CvBridge(): 这是一个在opencv图像和ros图像消息之间转换的对象

    2. imgmsg_to_cv2()和cv2_to_imgmsg():这两个函数一个是将sensor_msgs/Image消息转化为opencv格式的图像消息,一个是将opencv格式的图像消息转化为sensor_msgs/Image格式的图像消息.有两个参数: 参数一是要转换格式的数据,参数二是图像数据编码,比如bgr8

    3.cv2.circle()和cv2.rectangle(): 都是画图函数.一个是在图片上画圆, 后面一个是在图片上画方框. 参数一: 想要作画的图片, 参数二: 中心坐标, 参数三: 半径大小, 参数四: rgb填充色, 参数五: 线条粗细,如果是-1,那么该图形会被填充

    4.cv2.imshow(): 创建一个窗口显示图片. 参数一: 要读入的图片名称. 参数二:如何读取图片

    5.cv2.waitKey(): 等待. 参数单位为毫秒

    6.cv2.destroyAllWindows(): 删除建立的全部窗口

    7.cv2.CascadeClassifier(): 是opencv做人脸检测的一个级联分类器,既可以使用Haar, 也可以使用LBP特征. 参数为haar或者LBP特征的级联表的XML文件路径

    8.cv2.cvtColor(): 颜色转换函数.参数一为输入图像, 参数二是输出图像

    9. cv2.equalizeHist(): 创建平衡直方图,参数为转化颜色后的图像

    10.detectMultiScale(): 多尺度人脸检测确定目标尺寸. 参数有七个. 参数一为待检测图片,一般为灰度图片加快检测检测速度. 参数二为被测物体的矩形框向量图,可以不设置. 参数三为前后两次扫描中搜索窗口的比例系数,默认1.1. 参数四为构成检测目标的相邻矩形的最小个数,默认三个. 如果为0,则函数不做任何操作就返回所有的被检测候选矩形框. 参数五为flags, 一般使用默认值cv2.CASCADE_SCALE_IMAGE. 参数六七: minSize, maxSize用来限制得到的目标区域的范围

    11.cv2.GaussianBlur(): 高斯滤波 参数一为待处理的灰度图像, 参数二为高斯矩阵的长和宽, 参数三为高斯矩阵的标准差,取0时opencv会根据高斯矩阵的尺寸自己计算,一般来说,高斯矩阵的尺寸越大,标准差越大,处理过的图像模糊度越高

    12.cv2.absdiff(): 计算两个数组之间的绝对差值,两个参数就是需要计算的两个源数组

    13.cv2.threshold(): 固定阈值二值化. 四个参数. 参数一为输入图, 只能输入单通道图像, 一般来说为灰度图. 参数二为阈值, 参数三为当像素超过了或者小于阈值(根据type决定)所赋予的值, 参数五type为二值化操作的类型,包含五种:cv2.THRESH_BINARY, cv2.THRESH_BINARY_INV, cv2.THRESH_BINARY_TRUNC, cv2.THRESH_TOZERO, cv2.THRESH_TOZERO_INV

    14.cv2.dilate(): 膨胀图像,得到图像轮廓

    15.cv2.findContours():查找检测物体的轮廓

    16.cv2.contourArea():计算轮廓联通区域的面积

    17.cv2.boundingRect(): 用一个最小的矩形,把找到的形状包起来

    18.cv2.putText():画图函数,在图像上打上文字 参数一为该图片, 参数二为要打上的文字, 参数三为文字类型, 参数四字体大小, 参数五为rgb填充色, 参数五为线条粗细

猜你喜欢

转载自blog.csdn.net/dzhongjie/article/details/80732293