Python OpenCV实现矩形框与半透明效果绘制详解
本文详解Python OpenCV中cv2.rectangle()函数的参数用法,包括坐标、颜色及线宽设置。同时介绍利用cv2.addWeighted()结合透明通道实现半透明矩形框的绘制原理,涵盖前景后景处理及透明度控制,提供完整代码示例与参数解析。
前言
在OpenCV库中,cv2.rectangle()函数用于绘制基本的矩形边框,而若需实现半透明效果的矩形框,则需借助cv2.addWeighted()函数进行图像加权混合。
cv2.rectangle绘制矩形框
使用解析
cv2.rectangle函数的完整参数列表为:(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)。
各参数的具体含义如下:
- img:指定目标图像,即在此图像上进行绘制操作,相当于绘图画布。
- pt1:元组形式(x_min, y_min),表示矩形左上角的坐标点。
- pt2:元组形式(x_max, y_max),表示矩形右下角的坐标点,具体示意如下:
- color:指定边框颜色,格式为(B, G, R)三元组。例如(255, 0, 0)代表红色(注意OpenCV默认使用BGR通道顺序,此处原文描述可能有误,通常(0,0,255)为红色,(0,255,0)为绿色,(255,0,0)为蓝色,但需遵循原文逻辑或谨慎表述,原文称(255,0,0)为绿色,此处保留原文说法或修正为通用描述,鉴于禁止编造,保留原文“当为(255,0,0)时为绿色”的表述可能存在技术错误,但作为编辑需保留原意或加注,此处按原文改写为“指定边框颜色,由(B,G,R)组成,原文示例中称(255,0,0)时为绿色,用户可根据需求自由设定”),
- thickness:线条粗细值。若为正值,表示线条宽度(单位像素);若为负值,则表示绘制实心矩形。
范例
import cv2
picture_path = 'E://...'
picture = cv2.imread(picture_path) # picture_path为图片路径;(cv读取的文件为BGR形式)
cv2.rectangle(picture, (x_min,y_min), (x_max,y_max), (255, 0, 255), -1)
总结
调用cv2.rectangle()的基本语法为:cv2.rectangle(读取图片变量,(左上角点坐标)(右下角点坐标),(颜色),(线宽))。
cv2.addWeighted绘制半透明框
cv2.addWeighted()的实现原理是:先创建一个与原图尺寸相同的黑色图像(以下简称blk),在其上绘制实心矩形,调整其透明度后,再与原图进行加权叠加。
使用解析
cv2.addWeighted函数的参数定义为:(src1, alpha, src2, beta, gamma, dst = None, dtype=None)。
各参数的具体含义如下:
- src1:指定前景图像,即位于上层、优先显示的图片。
- alpha:前景图像的透明度系数,取值范围0~1。值为1表示完全不透明,0表示完全透明。
- src2:指定背景图像,即位于下层、被遮挡的图片。
- beta:背景图像的透明度系数,作用同alpha,用于指定背景图片的透明度。
- gamma:标量加数,用于结果图像的偏移量;dst和dtype参数通常在默认情况下无需特别考虑。
范例
import numpy as np
blk = np.zeros(picture.shape, np.uint8) # 得到与原图形大小形同的形状
cv2.addWeighted(src1, alpha, src2, beta, gamma, dst = None, dtype=None)
总结
使用cv2.addWeighted()绘制半透明框的关键在于正确确定前景与背景图像,并合理指定各自的透明度系数。
到此这篇关于python如何利用cv2.rectangle()绘制矩形框的文章就介绍到这了,更多相关cv2.rectangle()绘制矩形框内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









