表盘识别用到的函数

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
param1Canny检测器的高阈值
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()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值