我们尝试在同一图像中将黑白图像与 RGB 图像进行乘法运算,但它们的类不同:BW -> 逻辑,RGB -> UINT8。
如何从逻辑转换为 UNIT*?或者,我们可以做不同类乘法的图像吗?
我们尝试在同一图像中将黑白图像与 RGB 图像进行乘法运算,但它们的类不同:BW -> 逻辑,RGB -> UINT8。
如何从逻辑转换为 UNIT*?或者,我们可以做不同类乘法的图像吗?
我猜你有一个二进制(逻辑)掩码你想乘以图像。
这很容易:
mMask = double(mMaskBinary);
for ii = 1:numChannels
mOutImage(:, :, ii) = mMask .* mInputImage(:, :, ii);
end
在最新的 MATLAB 版本(从 R2016b 开始)中,扩展是隐式完成的。
因此,如果您想在图像和图像之间进行乘法运算,您可以将它们逐个元素相乘,然后像上面的循环一样自动扩展到第 3 维。
享受。
转换类型的最简单方法是: a=uint8(a) 其中 a 是您的 bw 图像。
我可以通过这种方式转换为任何类型,例如 a=double(a)。
对于乘法,请记住使用 .* 进行元素乘法。* 进行矩阵乘法。