<强>知识掌握强>
<强> cv2.threshold()函数:强>
设置固定级别的阈值应用于多通道矩阵,将灰度图像变换二值图像,或去除指定级别的噪声,或过滤掉过小或者过大的像素点。
Python: cv2。阈值(src,推敲,maxval类型(dst))→retval, dst
在其中:
src:表示的是图片源
打:表示的是阈值(起始值)
maxval:表示的是最大值
类型:表示的是这里划分的时候使用的是什么类型的算法,常用值为0 (cv2.THRESH_BINARY)
进口cv2 img=cv2.imread (“1. jpg”) cv2。imshow (“src”, img) 灰色=cv2。cv2.COLOR_BGR2GRAY cvtColor (img) ret, dst=cv2。阈值(灰色,127年,255年,cv2.THRESH_BINARY) cv2。dst imshow (dst) cv2.waitKey (0) >之前
<强> cv2.findContours()函数:强>
<强>查找检测物体的轮廓强>
cv2。findContours(图像、模式、方法)opencv2返回两个值:轮廓:层次结构。
<强> 强> opencv3会返回三个值,分别是img,轮廓,层次
在其中:
<强>图片:强>表示的是寻找轮廓的图像;
<强>模式:强>表示的是轮廓的检索模式,有四种:
cv2.RETR_EXTERNAL表示只检测外轮廓
cv2.RETR_LIST检测的轮廓不建立等级关系
cv2.RETR_CCOMP建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层。
cv2.RETR_TREE建立一个等级树结构的轮廓。
<强>方法:强>表示的是轮廓的近似办法
cv2.CHAIN_APPROX_NONE存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即马克斯(abs (x1, x2)), abs (y2-y1))==1
cv2.CHAIN_APPROX_SIMPLE压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息
cv2。CHAIN_APPROX_TC89_L1, CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl链近似算法
进口numpy np 进口cv2 矩形=np.zeros ((300300), dtype=皍int8”) cv2.rectangle(矩形、(25、25)(275275),255年,1) cv2.imshow(“矩形”,矩形)=cv2 img、轮廓、层次结构。findContours(矩形,cv2。RETR_TREE cv2.CHAIN_APPROX_SIMPLE) 打印(轮廓) 打印(层次) cv2.waitKey (0) >之前
[阵列([[[25、25]], [[275]], [[275、275]], 25[[275年]]],dtype=int32)) [[[1 1 1 1]]] >之前<强> cv2.polylines函数:强>
<强>绘制多边形强>
cv2。polyline (img, pts的空当,颜色、厚度、线型[,]]]) >之前首先需要顶点坐标。将这些点转换为rowsx1x2形状的数组,其中行是顶点数,它应该是int32类型。
进口numpy np 进口cv2 #创建一个黑人形象 img=np。0 ((200、200、3)np.uint8) 分=np。阵列([[10 5](20、30),[70,20],[50 10]],np.int32) #每个点都是(x, y) 分=分。重塑((1,1,2)) cv2。polyline (img, (pts),真的,(0,255,255)) 分=np。阵列([[5]100年,[150,30],[80,20],[10]90年],np.int32) cv2。polyline (img, (pts),假的,(0,255,255)) cv2。imshow (img2, img) cv2.waitKey () >之前如果第三个参数为假,您将获得连接所有点的折线,而不是闭合形状。
cv2.polylines()可用于绘制多条线。只需创建要绘制的所有行的列表并将其传递给函数,所有线条都将单独绘制。绘制一组行比为每行调用cv2.line()要好得多,速度更快。
<强> cv2.fillPoly)函数强>
可以用来填充任意形状的图型。可以用来绘制多边形,工作中也经常使用非常多个边来近似的画一条曲线.cv2.fillPoly()函数可以一次填充多个图型。
python cv2截取不规则区域图片实例