我搜索过OpenCV,matplotlib,彩色地图以及其他有关使用透明胶片在图像上绘图的帖子。我还没有找到一种方法来绘制一条渐变从一种颜色到透明颜色的线条。
例如,此图像接近我的意思,但黑色部分不透明。我需要在交叉路口周围没有方框的两条线。
是否有可以处理具有完全透明色的渐变的包?我一直在使用Python 3和OpenCV 3,但是,任何其他能够实现这一目标的软件包都可以。谢谢。
答案 0 :(得分:1)
听起来你正在寻找一些alpha混合。
# Define line params
x = img.shape[1] // 2
w = 10
# Construct line
line = np.zeros_like(img)
line[:, (x-w):(x+w+1)] = (0, 255, 255)
# Construct line alpha mask
alpha = np.zeros_like(img, np.float32)
alpha[:, (x-w):x, :] = np.repeat(np.arange(1, w+1 )[:, np.newaxis] / (w+1), 3, axis=1)
alpha[:, x:(x+w+1), :] = np.repeat(np.arange(w+1, 0, -1)[:, np.newaxis] / (w+1), 3, axis=1)
# Blend into img
img = ((1-alpha) * img + alpha * line).astype(img.dtype)