MATLAB 中的图像处理

信息处理 图像处理 matlab
2022-02-10 11:24:47

我们尝试在同一图像中将黑白图像与 RGB 图像进行乘法运算,但它们的类不同:BW -> 逻辑,RGB -> UINT8。

如何从逻辑转换为 UNIT*?或者,我们可以做不同类乘法的图像吗?

2个回答

我猜你有一个二进制(逻辑)掩码你想乘以图像。

这很容易:

mMask = double(mMaskBinary);

for ii = 1:numChannels

    mOutImage(:, :, ii) = mMask  .* mInputImage(:, :, ii);

end

在最新的 MATLAB 版本(从 R2016b 开始)中,扩展是隐式完成的。
因此,如果您想在图像和图像之间进行乘法运算,您可以将它们逐个元素相乘,然后像上面的循环一样自动扩展到第 3 维。M×NM×N×3

享受。

转换类型的最简单方法是: a=uint8(a) 其中 a 是您的 bw 图像。

我可以通过这种方式转换为任何类型,例如 a=double(a)。

对于乘法,请记住使用 .* 进行元素乘法。* 进行矩阵乘法。