opencv-python(cv2)

Posted deleteme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv-python(cv2)相关的知识,希望对你有一定的参考价值。

1、对图像进行按照独立通道进行拆分

b,g,r = cv2.split(img)             #涉及到opencv的图像读取是以bgr形式来做的

img = cv2.merge(b,g,r)          #对图像进行按通道混合

或者使用numpy索引(注:numpy索引的耗时更短)

b=img[:,:,0]

2、图像边缘填充,padding

cv2.copyMakeBorder()

3、图像相加(区别于numpy操作)

cv2.add(a,b)  #250 + 20 =255 饱和操作

x + y             #(250 + 20)%255 =15 溢出后取模操作

4、加权相加(图像混合)

cv2.addWeighted(img1,0.3,img2,0.7,0) # det=0.3*img1 + 0.7*img2 + 0

4、仿射与透视变换

Tips:仿射变换和透视变换都是线性变换,保持了变换之后的平直性和平行性,基本上可以理解为乘一个变换矩阵然后再加一个平移矩阵。

cv2.warpaffine   &   cv2.warpperspective

cv2.getAffineTransform()  &  cv2.getPerspectiveTransform()c

5、图像旋转

Tips:参考博客:https://blog.csdn.net/lkj345/article/details/50555870

cv2.getROtationMatrix2D

6、图像金字塔

cv2.pyrDown()   &  cv2.pyrUp()

7、直方图

cv2.calcHist()               &          hists,bins = cv2.histogram()

matplotlib.pyplotlib.hist()               #绘制直方图

cv2.equalizeHist(img)                    #直方图均衡化


8、霍夫变换

用来检测直线

Tips:https://www.cnblogs.com/php-rearch/p/6760683.html

cv2.HoughLinesP()                       #传入参数有minLineLength 和  MaxlineGap

9、Harris角点检测

Tips:https://www.jianshu.com/p/4049c00afaf4

cv2.cornerHarris()   &   cv2.cornerSubPix()   #R<0的时候是直线,R>0的时候是角点

10、Shi-Tomasi 角点检测

cv2.goodFeatureToTrack()                         #更改了对R的计算方法

11、SIFT(Scale-Invariant Feature Transform)

SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。本节先介绍高斯模糊算法。

Tips:https://blog.csdn.net/zddblog/article/details/7521424

我的学习笔记:(挖坑待填)

img = cv2.cvtColor(img_gray,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()

kp = sitf.detect(img,None)

img = cv2.drawKeypoints(gray,kp)

以上是关于opencv-python(cv2)的主要内容,如果未能解决你的问题,请参考以下文章

Opencv-python 找到图像轮廓并绘制,cv2.findContours()函数,求轮廓外接矩形,cv2.boundingrect()

cv2.imshow命令在opencv-python中无法正常工作

使用opencv-python录视频

OpenCV-Python 人脸眼睛嘴识别

OpenCV-Python基础教程4-颜色空间转换

初识OpenCV-Python - 002: Drawing functions