import cv2 import numpy as np gray=cv2.imread(r"C:\Games\python\PyCharm Community Edition 2021.3.1\daima\open cv\2.jpg",cv2.IMREAD_GRAYSCALE) '''Canny边缘检测 edges=cv2.Canny(image,threshold1,threshold2) edges为边界图像 image为原图像 threshold1阈值minVal threshold2阈值maxVal maxVal,minVal变小,有更多的细节信息。 edges=cv2.Canny(img,50,1000) cv2.imshow("a",edges) cv2.waitKey(0)''' '''图像金字塔''' #向下取样 '''st=cv2.pyrDown(src) dst:向下取样结果 src:原始图像''' #向上取样 '''dst=cv2.pyrUp(src)''' '''图像轮廓 边缘检测''' #边缘查找 '''contours,hierarchy=cv2.findContours(image,mode,method) contours:轮廓(image图像的轮廓) hierachy:图像的拓扑信息(轮廓层次) image:原始图像 mode:轮廓检索模式 cv2.RETR_EXTERNAL:表示只检测外轮廓 cv2.RETR_LIST:检测的轮廓不建立等级关系 cv2.RETR_CCOMP:建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。 cv2.RETR_TREE:建立一个等级树结构的轮廓 method:轮廓的近似方法 cv2.CHAIN_APPROX_NONE:存储所有的轮廓点,相邻的两个点的像素位置差不超过1 cv2.CHAIN_APPROX_SIMPLE:压缩水平方向,垂直方向,对角线方向的元素。只保留该方向的终点坐标。 cv2.CHAIN_APPROX-TC89-L1:使用teh-Chinl chain近似算法 cv2.CHAIN_APPROX_TC89_KCOS:使用teh-Chinl chain近似算法''' ret,binary=cv2.threshold(gray,91,255,cv2.THRESH_BINARY) cv2.imshow("1",binary) cv2.waitKey(0) #contours,hierarchy=cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #轮廓绘制 '''cv2.drawContours() r=cv2.drawContours(o,contours,contourldx,color[,thickness]) r:目标图像,直接修改目标的像素点,实现绘制 o:原始图像 contours:需要绘制的边缘数组(由上面函数得到的其中一个参数用于此函数中) contourldx:需要绘制的边缘索引,如果全部绘制则为-1 color:绘制的颜色,为BGR格式的 Scalarthickness:可选,绘制的密度,即描绘轮廓时所用的画笔粗细(一般我们默认即可)''' #r=cv2.drawContours(binary,contours,-1,(0,0,255),1) #cv2.imshow("original",gray) #cv2.imshow("result",r) #cv2.waitKey(0) #cv2.destroyAllWindows()
python图像识别的学习
最新推荐文章于 2024-04-25 07:44:14 发布