【发布时间】:2015-08-26 15:05:51
【问题描述】:
我使用 warpPerspective() 函数创建一个鸟视图图像,如下所示:
warpPerspective(frame, result, H, result.size(), CV_WARP_INVERSE_MAP, BORDER_TRANSPARENT);
结果看起来非常好,而且边框是透明的: Bird-View-Image
现在我想把这张图片放在另一张“out”的图片之上。我尝试使用这样的函数 warpAffine 执行此操作:
warpAffine(result, out, M, out.size(), CV_INTER_LINEAR, BORDER_TRANSPARENT);
我还根据 stackoverflow 上已经提出的问题将“输出”转换为具有 alpha 通道的四通道图像: Convert Image
这是代码:cvtColor(out, out, CV_BGR2BGRA);
我希望看到棋盘,但看不到灰色背景。但实际上我的结果是这样的:
我做错了什么?我是否忘记了要做的事情?还有其他方法可以解决我的问题吗?任何帮助表示赞赏:)
谢谢!
最好的问候 DamBedEi
【问题讨论】:
-
afaik,openCV 不处理
cv::imshow中的透明度,您可以尝试将图像另存为.png文件并检查那里是否应用了透明度? -
我做到了。似乎应用了透明度。但是我没有看到背景,而是看到了典型的透明度模式,这并不是更好:D
-
可能没有背景...您希望看到什么?如果您想“合并”两个具有透明度的图像(例如,具有透明前景的纯色背景),您必须在保存到文件之前(手动)执行此操作。
-
是的,这就是我想做的。你知道如何手动操作吗?