我有一个小的渲染图像,其alpha通道为GpuMat
,类型为CV_8UC4
。我有很多GpuMat
个实例,其中3个频道为CV_8UC3
。我想把这个RGBA快速地插入到每个其他图像的左上角,正确地关注aplha通道。
GpuMat icon = renderLogoWithTransparency(); // CV_8UC4
std::vector<GpuMat> &images = imageLibrary(); // CV_8UC3
for(auto &image: images)
{
Rect target(0,0,icon.cols,icon.rows);
icon.copyTo(image(target));
}
产生的错误是:OpenCV Error: Assertion failed (!fixedType() || ((cuda::GpuMat*)obj)->type() == mtype) in create, file /root/opencv/modules/core/src/matrix.cpp, line 2260
copyTo
对于简单复制而言似乎是合法的,我希望颜色混合。如何在不从GPU下载到主内存的情况下进行混合?