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()