OpenCV中文官方文档学习笔记

第二章 图像入门

2.1 读取图像、显示图像、保存图像

cv.imread(),cv.imshow(),cv.imwrite()   

cv.waitKey()    cv.destroyAllWindows()

2.2 读取视频,显示视频和保存视频

cv.VideoCapture(),cv.VideoWriter()

2.3 绘图功能

cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText()

2.4 鼠标事件

cv.setMouseCallback()

2.5 轨迹栏作为调色板

cv.getTrackbarPos,cv.createTrackbar

第三章 核心操作

3.1 基本操作

opencv中采用:BGR空间

img.shape    img.size   img.dtype

cv.split()      cv.copyMakeBorder() 在图像周围创建边框

3.2 图像算数运算

图像加法:cv.add()      numpy操作res = img1 + img2,图像直接做加法不能得到叠加的效果,可能会溢出

图像融合:cv.addWeighted

按位运算(AND OR NOT XOR)

图像叠加方法:ROI灰度转换-二值转换-二值反转(bitwise_not)-母图对应的ROI区域涂黑(bitwise_and)-图像相加-

3.3 性能衡量和提升技术

            Python标量操作比Numpy标量操作快。因此,对于包含一两个元素的运算,Python标量比Numpy数组好。当数组大小稍大时,Numpy会占优势。
注意 :通常,OpenCV函数比Numpy函数要快。因此,对于相同的操作,首选OpenCV功能。但是,可能会有例外,尤其是当Numpy处理视图而不是副本时。
注意:尽量避免在Python中使用循环,尤其是双/三重循环等。它们本来就很慢。
由于Numpy和OpenCV已针对向量运算进行了优化,因此将算法/代码向量化到最大程度。
利用缓存一致性。
        除非需要,否则切勿创建数组的副本。尝试改用视图。数组复制是一项昂贵的操作。
即使执行了所有这些操作后,如果你的代码仍然很慢,或者不可避免地需要使用大循环,请使用Cython等其他库来使其更快。

猜你喜欢

转载自blog.csdn.net/tortorish/article/details/116404358