opencv基础知识点笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

1.cv2.goodFeaturesToTrach():这个函数可以计算Harris角点和Shi-tomasi角点,但默认情况下是Shi-tomasi角点

void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,
                              int maxCorners, double qualityLevel, double minDistance,
                              InputArray _mask, int blockSize,
                              bool useHarrisDetector, double harrisK )

_image:单通道8位或32位浮点型图像; _corners:保存检测出的角点 ; maxCorners:角点数目最大值; qualityLevel:角点的品质因子; blockSize :计算协方差矩阵时的窗口大小; harrisK:Harris角点检测需要的k值。 minDistance:在最初选出角点内出现其他的角点,则删除; _mask:指定感兴趣区,可指定在该感兴趣区域内寻找角点; useHarrisDetector : 指示是否使用Harris角点检测,如不指定,则计算shi-tomasi角点;

2、cv2.line(img, pt1, pt2, color[, thickness[,shift]]):图像img中连接点pt1和pt2的坐标,color表明线的颜色。

import cv2 as cv
import numpy as np
color = np.random.randint(0,255,(100,3))   # 随机产生一种颜色
# 将mask中坐标1(a,b)和坐标2(c,d)连线
mask = cv2.line(mask, (a,b),(c,d), color[i].tolist(), 2)  

3、cv2.circle(img, center, radius, color[, thinckness[, lineType]]):根据提供的圆心center和半径radius画圆。

thickness: 轮廓的粗细;lineType:边界类型;shift:中心坐标和半径值中的小数位数;

4、pl, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params): 用于获得光流检测后的角点位置

参数说明:pl表示光流检测后的角点位置,st表示是否是运动的角点,err表示是否出错,old_gray表示输入前一帧图片,frame_gray表示后一帧图片,p0表示需要检测的角点,lk_params:winSize表示选择多少个点进行u和v的求解,maxLevel表示空间金字塔的层数。

import cv2
lk_params = dict( winSize  = (15,15),maxLevel = 2, criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))
p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params)

5、cv2.putText() : 在图片的指定位置添加内容。

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)

img自然指要添加文字的图片; text就是你要添加的内容;fontFace:字体风格设;fontScale:字体大小设置;color:字体颜色设置;thickness:字体粗细设置。

import cv2
show_time = '1cm'
cv2.putText(mask, show_time, (520, 341), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 1, cv2.LINE_AA)

猜你喜欢

转载自blog.csdn.net/weixin_45303602/article/details/127721404