нашел решение, используя OpenCV
cv.rectangle(overlayMat, point1, point2, [rgb[0], rgb[1], rgb[2], rgb[3]], -1); //img,(x,y), (x+width,y+height), scala 4 colour, fill
cv.addWeighted(overlayMat,alpha,vidMat,1 - alpha,0,vidMat);
применяет цвет к точке x, y точки 1, затем размер вычисляется с использованием x + ширина, y + высота в точке 2, цвет основан на скалярном массиве RGBA, -1 заполняет всю область, указанную в точке 2 .
add weighted применяет цветной прямоугольник, сохраненный в другом мате, к исходному мату, используя прозрачность альфа-значений.