如何使用成像器将二进制掩码应用于 R 中的 RGB 图像

问题描述 投票:0回答:1

我已经使用 imager::load.image() 函数加载了 RGB 图像。 我还使用 imager::threshold() 函数创建了一个二进制掩码。

RGB_imageMask

我可以通过这样做将此蒙版应用于二值图像:

red_channel <- R(RGB_image)
green_channel <- G(RGB_image)
blue_channel <- B(RGB_image)

red_channel <- red_channel * Mask
green_channel <- green_channel * Mask
blue_channel <- blue_channel * Mask

但是 RGB_image * Mask 不起作用,因为 RGB 图像的维度比二进制 mask 更多。

所以我需要 R 中的一个函数来将二进制掩码应用于 RGB 图像。 或者将红色、绿色和蓝色图像组合成 RGB 图像的方法。

我非常倾向于在 R 中执行此操作,并且如果可能的话,我更倾向于继续使用成像器包。

r rgb mask imager
1个回答
0
投票

经过一番实验,我找到了自己的问题。 这个函数可以解决问题,它确实依赖于成像器包。

RGBimage 应该是由 imager:load.image() 加载的 RGB 图像 Bthreshold 应该是由 TRUE 和 FALSE 值组成的二进制阈值。

apply_rgb_mask <-function(RGBimage, Bthreshold){
red <- R(RGBimage) * Bthreshold
green <- G(RGBimage) * Bthreshold
blue <- B(RGBimage) * Bthreshold
return(imappend(list(red, green, blue), "c"))
}
© www.soinside.com 2019 - 2024. All rights reserved.