将图像放在另一个使黑色部分透明

时间:2013-12-16 08:36:26

标签: image matlab transparent

我想要做的是将一个图像放在第二个图像上,但只放置那些不是完全黑色的部分。我怎么能在Matlab中做到这一点?

我现在拥有的是:

image

所以我基本上想要的是同样的东西,没有白纸周围的黑色边框。这是我的代码:

resizedBg(startrow:startrow+size(rscrop,1)-1, startcol:startcol+size(rscrop,2)-1, :) = rscrop;

提前致谢!

1 个答案:

答案 0 :(得分:0)

基本上,你可以表现得好像有面具一样。

让你的第一张图像A和第二张图片B.你想要用B填充B到底是完全黑色的。它直接转换为Matlab:

C = zeros(size(B,1), size(B,2),3);
C(startRow:startRow+size(A,1)-1, startCol:startCol+size(A,2)-1,:) = A;
M = repmat(sum(C,3)==0,1,1,3);
C(M) = B(M);

我将蒙版M在3个维度上展开,可以直接用作蒙版。