【python计算机视觉】2、颜色空间转换

一、RGB彩色图像转灰度图像

转换公式
G r a y = R ∗ 0.3 + G ∗ 0.59 + B ∗ 0.11 Gray = R*0.3+G*0.59+B*0.11 Gray=R0.3+G0.59+B0.11
Python代码

#输入彩色图像的四维张量,输出灰度图像的四维张量
def RGB2Gray(img):
    r,g,b = torch.split(img,1,dim=1)
    gray = torch.zeros_like(r)
    gray = 0.3*r+0.59*g+0.11*b
    return gray

二、RGB颜色空间转YCbCr颜色空间

转换公式
Y = 0.257 ∗ R + 0.504 ∗ G + 0.098 ∗ B + 16 Y=0.257*R+0.504*G+0.098*B+16 Y=0.257R+0.504G+0.098B+16
C b = − 0.148 ∗ R − 0.291 ∗ G + 0.439 ∗ B + 128 Cb=-0.148*R-0.291*G+0.439*B+128 Cb=0.148R0.291G+0.439B+128
C r = 0.439 ∗ R − 0.368 ∗ G − 0.071 ∗ B + 128 Cr=0.439*R-0.368*G-0.071*B+128 Cr=0.439R0.368G0.071B+128
python代码

#输入RGB彩色空间的四维张量,输出YCbCr颜色空间的四维张量
def RGB2YCbCr(img):
    img = img*255.0
    r,g,b = torch.split(img,1,dim=1)
    y = torch.zeros_like(r)
    cb = torch.zeros_like(r)
    cr = torch.zeros_like(r)
    
    y = 0.257*r+0.504*g+0.098*b+16
    y = y/255.0
    
    cb = -0.148*r-0.291*g+0.439*b+128
    cb = cb/255.0
    
    cr = 0.439*r-0.368*g-0.071*b+128
    cr = cr/255.0
    
    img = torch.cat([y,cb,cr],dim=1)
    return img

三、YCbCr颜色空间转RGB颜色空间

转换公式
R = 1.164 ∗ ( Y − 16 ) + 1.596 ∗ ( C r − 128 ) R=1.164*(Y-16)+1.596*(Cr-128) R=1.164(Y16)+1.596(Cr128)
G = 1.164 ∗ ( Y − 16 ) − 0.392 ∗ ( C b − 128 ) − 0.813 ∗ ( C r − 128 ) G=1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128) G=1.164(Y16)0.392(Cb128)0.813(Cr128)
B = 1.164 ∗ ( Y − 16 ) + 2.017 ∗ ( C b − 128 ) B=1.164*(Y-16)+2.017*(Cb-128) B=1.164(Y16)+2.017(Cb128)
python代码

#输入YCbCr颜色空间的四维张量,输出RGB颜色空间的四维张量
def YCbCr2RGB(img):
    img = img*255.0
    y,cb,cr = torch.split(img,1,dim=1)
    r = torch.zeros_like(y)
    g = torch.zeros_like(y)
    b = torch.zeros_like(y)
    
    r = 1.164*(y-16)+1.596*(cr-128)
    r = r/255.0
    g = 1.164*(y-16)-0.392*(cb-128)-0.813*(cr-128)
    g = g/255.0
    b = 1.164*(y-16)+2.017*(cb-128)
    b = b/255.0
    
    img = torch.cat([r,g,b],dim=1)
    return img  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python机器视觉项目通常涉及到计算机视觉和图像处理技术,目的是让计算机理解和解析图像数据。这些项目广泛应用于自动驾驶、安防监控、图像识别、物体检测、图像增强、医学影像分析等领域。在Python中,一些流行的库如OpenCV(Open Source Computer Vision Library)、Pillow、scikit-image、TensorFlow、PyTorch等是核心工具。 1. OpenCV:提供了丰富的图像处理和计算机视觉算法,支持实时视频分析和图像文件操作。 2. Pillow:是Python的一个简单图像处理库,用于读写常见的图像文件格式。 3. scikit-image:一个基于NumPy的图像处理库,包含各种图像处理函数和算法。 4. TensorFlow和PyTorch深度学习框架,常用于训练复杂的卷积神经网络(CNN),用于图像分类、目标检测等任务。 5. Object Detection Libraries:如YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector)等,用于在图像中定位多个对象。 一个典型的Python机器视觉项目可能包括以下步骤: - 数据预处理:加载和清洗图像数据,进行缩放、裁剪、颜色空间转换等。 - 特征提取:利用卷积神经网络提取图像特征。 - 模型训练:使用深度学习模型进行监督学习,训练识别或分割模型。 - 模型部署:将模型集成到应用程序或实时系统中,处理新的图像数据。 - 性能评估:使用指标如精度、召回率、F1分数等评估模型性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值