生成透明文本图像OpenCV

时间:2018-07-08 12:27:13

标签: python opencv image-processing

如何在python opencv中创建除给定文本的像素以外的透明图像?

我在C++中发现了这个solution,它创建的图像没有透明度。因此,当将它们合并在一起时,该解决方案只会添加像素。这会使文本像素强度随背景图像变化。

Mat img = imread("lenna.png", CV_LOAD_IMAGE_COLOR);

// Create and rotate the text
Mat textImg = Mat::zeros(img.rows, img.cols, img.type());
putText(textImg, "stackoverflow", Point(0, img.cols/2), FONT_HERSHEY_SIMPLEX, 2.0,Scalar(20,20,20),2);

// Sum the images (add the text to the original img)
img= img+textImg;

namedWindow("WaterMark", CV_WINDOW_AUTOSIZE);
imshow("WaterMark", img);

因此,一种方法是根据文本制作遮罩图像,然后使用其生成Alpha通道。但这是否有更好的解决方案。

1 个答案:

答案 0 :(得分:3)

image = np.zeros((100,300,4),np.uint8)
cv2.putText(image, "Test String", (10,50),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255,255))

result