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)

猜你喜欢

转载自www.cnblogs.com/deleteme/p/11072360.html