写个简单的测试下就知道了。
import cv2
import numpy as np
img=np.ones((9,9),dtype=np.uint8)
temp=img.copy().astype(np.int8)
cv2.circle(temp,(5,5),3,-100,1)
test=[temp==-100]
print(test)
#output:
[[False, False, False, False, False, False, False, False, False],
[False, False, False, False, False, False, False, False, False],
[False, False, False, False, False, True, False, False, False],
[False, False, False, True, True, False, True, True, False],
[False, False, False, True, False, False, False, True, False],
[False, False, True, False, False, False, False, False, True],
[False, False, False, True, False, False, False, True, False],
[False, False, False, True, True, False, True, True, False],
[False, False, False, False, False, True, False, False, False]]
所以,这个函数的作用就很明显了。如果图片是单通道的图片,那么处理后的img就只有在画圆的地方的位置是true,其他为false ;如果是三通道的话,那就是蓝色通道的圆为true,其他为false。
根据这段代码和你的描述,这应该是用来产生掩膜用的,如果thickness=-1,那么叠加在圆原图像上面的话就是将圆内的区域显示出来,圆外的区域为黑色。如果thickness>=1,那么就只会显示在圆上的点,其他区域为黑色。