import cv2
1.cv2.imread(filename, flags)
这两天学习OpenCV-Python时,也就是cv2库
参数:
filepath:读入imge的完整路径 'D:/Desktop/lena.jpg' ####路径里不能有中文
flags:标志位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代
cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用-1作为实参替代
PS:alpha通道,又称A通道,是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度复信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255
2.使用copy()函数 复制图像
output = image.copy()
3.cv2.cvtColor(p1,p2) 是颜色空间转换函数,
p1是需要转换的图片,p2是转换成何种格式。
cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
通过在网上看别人实验的结果,发现转换后并不是通常意义上的黑白图片。根据问别人后的结果,他说,灰度图片并不是指常规意义上的黑白图片,只用看是不是无符号八位整型(unit8),单通道即可判断。
img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
plt.subplot(2,2,2)
plt.imshow(img_RGB)
plt.axis('off')
plt.title('RGB')
img_GRAY = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2GRAY)
print(img_BGR.shape)
print(img_GRAY.shape)
print(type(img_GRAY))
print(img_GRAY.astype)
print(img_GRAY.dtype.name, img_BGR .dtype.name)
引用自:cv2.imread()和cv2.cvtColor() 的使用-CSDN博客
4.HoughCircles(image, method, dp, minDist, circles=None, param1=None, param2=None, minRadius=None, maxRadius=None)
cv2提供了一种圆检测的方法:HoughCircles。该函数的返回结果与参数设置有很大的关系。
检测的图像是9枚钱币,分别使用了阈值(大津法和三角法)、均值偏移滤波以及未处理图像。实验的结果是只要调整param1和param2两个参数,上述方法都能准确的识别图像中的圆形。与圆最贴切的是大津法阈值。使用该方法同时需要使用cv2.THRESHOLD_TRUNC。
method | 目前只支持cv2.HOUGH_GRADIENT |
dp | 图像解析的反向比例。1为原始大小,2为原始大小的一半 1 |
minDist | 圆心之间的最小距离。过小会增加圆的误判,过大会丢失存在的圆 200 |
param1 | Canny检测器的高阈值 |
param2 | 检测阶段圆心的累加器阈值。越小的话,会增加不存在的圆;越大的话,则检测到的圆就更加接近完美的圆形 |
minRadius | 检测的最小圆的半径 |
maxRadius | 检测的最大圆的半径 |
5.if x
和 if x is not None
python里面的其他值也被检测为False
。最常见的例子就是空列表,bool([])
也返回False
。但是,空列表有一个隐含的意思,它不等于None
!!None
意味着没有值,而空列表意味着零个值,这在语义上是不同的!有些人弄混淆就是这里没弄清楚
我们上面说到,python会自动给非boolean类型进行bool判断的时候转换成boolean类型。
我们来看看是不是这样
6.uint8与uint16
7.根据给定的圆心和半径等画圆
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
作用
参数说明
img:输入的图片data
center:圆心位置
radius:圆的半径
color:圆的颜色
thickness:圆形轮廓的粗细(如果为正)。负厚度表示要绘制实心圆。
lineType: 圆边界的类型。
shift:中心坐标和半径值中的小数位数。
cv2.circle(image, (i[0], i[1]), i[2], (0, 0, 255), 2) # 在原图上画圆,圆心,半径,颜色(红色),线框
cv2.circle(image, (i[0], i[1]), 2, (255, 0, 0), 2) # 画圆心
8.opencv python 中cv2.putText()函数的用法
cv2.putText(image, text, (5,50 ), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
1
位置参数说明:
图片
要添加的文字
文字添加到图片上的位置
字体的类型
字体大小
字体颜色
字体粗细
9.展示图片
#cv2.imshow('image',image) #cv2.waitKey(0) #cv2.destroyAllWindows()