1
嗨,我有幾個Mat
,我想重疊(以自定義順序)。 Mat
holdes一些opencv多邊形(這意味着很多透明度)。這Mat
我需要覆蓋/合併。但與傳統的阿爾法混合更像是100%不透明但具有透明度。OpenCv覆蓋兩個墊(圖紙不是圖像)與透明度
這是我想要合併的簡單示例代碼。
Mat m1, m2;
m1.create(Point{ 100,100 }, CV_8UC4);
m2.create(Point{ 100,100 }, CV_8UC4);
cv::polylines(m1, std::vector<Point>{ Point{ 2,20 },Point{ 20,40 } }, true, Scalar(6, 6, 255));
cv::polylines(m2, std::vector<Point>{Point{ 100,100 }, Point{ 0,0 } }, true, Scalar(192, 112, 0));
請注意,我不能在一個Mat
直接繪製多邊形由於種種原因。
我想,也許m1.copyTo(m2);
會的工作,但其覆蓋的一切(包括黑色背景)
不知道如何得到它合併了/沒有背景重疊?我可以構造墊子的錯嗎?
創建要複製(我猜的一切,這不是黑色)件的面罩,然後用'copyTo'與面具。 –
@DanMašek你知道任何聰明的功能來檢測黑色/黑色以外的所有東西嗎?我試過cv :: threshold(m1,m1,1,255,cv :: THRESH_BINARY);'但是它的工作不太好。 – user1234
添加圖紙的示例圖像。 – Micka