我有问题。 我有这个程序,使黑色透明。
src=imread("0.jpg", 1);
cvtColor(src,tmp,CV_BGR2GRAY);
threshold(tmp,alpha,100,255,THRESH_BINARY);
Mat rgb[3];
split(src,rgb);
Mat rgba[4]={rgb[0],rgb[1],rgb[2],alpha};
merge(rgba,4,dst);
imwrite("1.png",dst);
他的输入和输出是:
但我不希望黑色透明,我希望白色是透明的。 但我无法弄明白。 请问你能帮帮我吗?谢谢。
答案 0 :(得分:2)
src=imread("0.jpg", 1);
cvtColor(src,tmp,CV_BGR2GRAY);
threshold(tmp,alpha,100,255,THRESH_BINARY_INV);
Mat rgb[3];
split(src,rgb);
Mat rgba[4]={rgb[0],rgb[1],rgb[2],alpha};
merge(rgba,4,dst);
imwrite("1.png",dst);
如果我们选择THRESH_BINARY_INV而不是THRESH_BINARY。 输出为:Black background with some transparent places。 这是整个问题,现在已经解决了。