代码之家  ›  专栏  ›  技术社区  ›  Rens

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

  •  0
  • Rens  · 技术社区  · 2 年前

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

    RGB_image Mask

    我可以通过以下操作将此掩码应用于二进制图像:

    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*遮罩不起作用,因为RGB图像的维度多于二进制遮罩。

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

    我强烈倾向于在R中这样做,如果可能的话,我更倾向于继续使用成像器包。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Rens    2 年前

    经过一番试验,我发现了自己的问题。 这个功能起到了作用,它确实取决于成像器包。

    RGBimage应该是由imager加载的RGB图像:load.image() 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"))
    }
    
    推荐文章