opencv的坐标分布
cv2.rectangle
cv2.rectangle(img, (left, top), (right, bottom), (255, 0, 0), 2)
第一个参数:img是原图
第二个参数:矩阵的左上点坐标 坐标必须是int类型
第三个参数:矩阵的右下点坐标 坐标必须是int类型
第四个参数:线对应的rgb颜色
第五个参数:线的宽度
cv2.putText
cv2.putText(image, str(label), (left, top), cv2.FONT_HERSHEY_COMPLEX, 0.8, (0, 255, 0), 1)
各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细
字体大小,数值越大,字体越大
字体粗细,越大越粗
cv2.getTextSize
text_size = cv2.getTextSize(str(label), cv2.FONT_HERSHEY_COMPLEX, 0.5, 1)
各参数依次是:添加的文字,字体,字体大小,字体粗细
返回值:Text的宽和高 W:text_size[0][1] H:text_size[0][1]
cv2.imwrite
cv2.imwrite("./save.jpg", image)
cv2.circle
cv2.circle(img, (left, top), point_size, color, thickness)
point_size = 1 时画出的是一个点
cv2.line
cv2.line(img,(10,10),(200,200),(0,255,0),3)
cv2.fillConvexPoly
用于填充凸多边形,参数凸多边形的顶点
duobianxing = np.array([[1, 0], [200, 800], [500, 400]])
cv2.fillConvexPoly(img, duobianxing, (255, 255, 255))
cv2.addWeighted(可以实现透明填充)
将两张相同大小,相同类型的图片进行融合
参数1:图片1(数组)
参数2:alpha,第一个数组元素权重参数3:src2第二个原(图片)数组
参数4:beta,第二个数组元素权重
参数5:gamma,图1与图2求和后添加的数值参数6:dst,输出图片
cv2.addWeighted(image, 0.5, image_copy, 1 - 0.5, 0.0, image)
cv2.imshow
cv2.imshow('Press q on keyboard to exit.', frame)
# Press q on keyboard to exit.
if cv2.waitKey(1) & 0xFF == ord('q'):
break
整体代码
def showimg(image_path):
img = cv2.imread(image_path, 0)
cv2.namedWindow("Image")
cv2.rectangle(image, (x_min, y_min), (x_max, y_max), (0,255,0), 2)
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()