asdTools-RGB图像转为三通道灰度图

文章首发及后续更新:https://mwhls.top/4681.html,无图/无目录/格式错误/更多相关请至首发页查看。
新的更新内容请到mwhls.top查看。
欢迎提出任何疑问及批评,非常感谢!

Github – 开源代码及Readme
Blog – 工具介绍

摘要:转换RGB图像为三通道灰度图。

场景
  • 希望对灰度图进行处理,但又希望和RGB的处理保持一致,因此需要三通道的灰度图。
使用示例
from asdTools.Classes.Image.ImageBase import ImageBase

class RGB2Gray3Channel(ImageBase):
    """
    转换RGB图像为三通道灰度图。示例见 Sample\RGB2Gray3Channel
    Convert RGB images into gray images with 3 channels. Example: Sample\RGB2Gray3Channel
    """
    def __init__(self, **kwargs) -> None:
        super().__init__(multipleFiles=True, **kwargs)

    def __call__(self, imgs_dir:str) -> str:
        self.run(imgs_dir)

    def run(self, imgs_dir:str) -> str:
        imgs_path = self.get_paths_from_dir(imgs_dir)
        imgs_path = self.filter_ext(imgs_path, ["png", "jpg", "jpeg"])
        for i, img_path in enumerate(imgs_path):
            img_rgb = self.read_img(img_path)
            img_gray = self.convert_RGB_to_gray(img_rgb, True)
            img_name = self.get_name_of_file(img_path, keepExt=True)
            img_dir = self.get_dir_of_file(img_path, root=imgs_dir)
            output_path = self.save_image(img_gray, output_file=img_name, output_middle_dir=img_dir)
            self.log(f"{i+1}: {img_name} has converted from rgb to gray img with 3 channels, saved in {output_path}.")
            img_rgb.close()
            img_gray.close()
        self.done()

if __name__ == "__main__":
    imgs_dir = r"Sample\RGB2Gray3Channel\before"
    Converter = RGB2Gray3Channel()
    Converter(imgs_dir)
    ```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 热红外图像可以转为灰度图RGB图像也可以转为灰度图。 对于热红外图像,其像素值代表的是物体的温度,因此可以将其换为灰度图像,使得不同温度的物体在灰度图像中呈现不同的灰度值。 对于RGB图像,可以通过加权平均的方式将其换为灰度图像。一般使用下面的公式进行换: gray = 0.2989 * red + 0.5870 * green + 0.1140 * blue 其中,gray表示灰度值,red、green、blue表示RGB三个通的像素值。 ### 回答2: 热红外图像是通过红外相机捕捉物体发出的红外辐射而得到的,它记录了物体表面的温度分布。由于热红外图像是基于不同的温度梯度进行着色的,它已经是一张灰度图像。因此,热红外图像不需要换为灰度图。 而RGB图像是由红、绿、蓝三种不同颜色的光线组成的彩色图像。为了将其换为灰度图像,可以使用灰度化的方法。常见的灰度化方法有:平均值法、加权法、最大值法等。这些方法通过对原始RGB图像的红、绿、蓝三个通的像素值进行加权或计算平均来获得对应的灰度值,并将这个灰度值作为新图像中对应像素的像素值。 总结起来,热红外图像不需要换为灰度图,因为它已经是灰度图;而RGB图像可以通过灰度化的方法换为灰度图像。 ### 回答3: 热红外图像可以转为灰度图,而RGB图像也可以转为灰度图。 热红外图像是利用热红外摄像头捕捉物体发出的红外辐射信息后产生的图像。由于热红外图像的每个像素值代表了被测物体的温度,因此可以根据这些温度值将热红外图像转为灰度图,其中高温部分会显示为较亮的颜色,而低温部分则显示为较暗的颜色。 而RGB图像是由红、绿、蓝三种基本色光按照一定比例组合而成的图像。通常情况下,通过将RGB图像的红、绿、蓝三个通的像素值按照一定比例进行加权平均,可以将其转为灰度图换后的灰度图像中的每个像素只有一个通,即亮度通,代表图像的明暗程度。 总之,无论是热红外图像还是RGB图像,都可以通过一定的换方式将其转为灰度图,只是换的方式略有不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值