Matlab - 如何使用二进制图像屏蔽三维图像

Jak*_*ter 1 matlab image-processing matrix

我的图像有红色,绿色,蓝色通道和图像的二进制版本.

我想要做的是连接这两个图像,使二进制图像作为正常图像的掩码.

我想只选择彩色图像中的二进制1像素.

我知道这应该可以使用cat,甚至可以使用repmat,但是因为我对Matlab很新,所以即使在阅读了函数的文档后我也无法弄清楚如何做到这一点.

Eit*_*n T 6

如果您有一个三维图像I和一个二进制掩码M,您可以通过将图像乘以掩码将无关位掩盖为零:

I = bsxfun(@times, I, M);    
Run Code Online (Sandbox Code Playgroud)

或通过逻辑索引:

I(~mask(:, :, ones(1, size(I, 3)))) = 0;
Run Code Online (Sandbox Code Playgroud)