最近有需要,自己按照opencv实现的方式,自测!

个别tensor,numpy互转参考:https://oldpan.me/archives/pytorch-tensor-image-transform

颜色空间转换代码:

from __future__ import print_function
import torch
import numpy as np
from PIL import Image
import os
import cv2
from color_convertion import *
import osdef tensor_to_np(tensor):img = tensor.mul(255).byte()img = img.cpu().numpy().squeeze(0).transpose((1, 2, 0))return imgdef toTensor(img):assert type(img) == np.ndarray,'the img type is {}, but ndarry expected'.format(type(img))# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img = torch.from_numpy(img.transpose((2, 0, 1)))return img.float().div(255).unsqueeze(0)  # N x H x W X C numpy to tensor
def N_imgtoTensor(img):img = torch.from_numpy(img.transpose((0, 3, 1, 2)))return img.float().div(255)def N_tensor_to_np(tensor): #tensor value range is [0,1]img = tensor.mul(255).byte()         #tensor size [N,C,H,w]img = img.cpu().numpy().transpose((0,2,3,1))return img     #np_img size [N,H,w,C]def read_file(sn,tn):s = cv2.imread('some_data/'+sn+'.jpg')s = cv2.cvtColor(s,cv2.COLOR_BGR2LAB)t = cv2.imread('some_data/'+tn+'.jpg')t = cv2.cvtColor(t,cv2.COLOR_BGR2LAB)return s, tdef tensor_rgbtolab(sn,tn):s = cv2.imread('some_data/'+sn+'.jpg')s = cv2.cvtColor(s,cv2.COLOR_BGR2LAB)t = cv2.imread('some_data/'+tn+'.jpg')t = cv2.cvtColor(t,cv2.COLOR_BGR2LAB)s= toTensor(s)t=toTensor(t)return tensor2im(s),tensor2im(t)def tensor_original_img(sn,tn):s = cv2.imread('some_data/'+sn+'.jpg')t = cv2.imread('some_data/'+tn+'.jpg')s= toTensor(s)t=toTensor(t)return tensor_to_np(s),tensor_to_np(t)#1、 single img process!!!
s1,t1=read_file('p1','p2')s2,t2=tensor_rgbtolab('p1','p2')s3,t3=tensor_original_img('p1','p2')cv2.namedWindow("1",0)
cv2.namedWindow("2",0)
cv2.namedWindow("3",0)
cv2.resizeWindow("1",312,600)
cv2.resizeWindow("2",312,600)
cv2.resizeWindow("3",312,600)
cv2.imshow("1",np.vstack([s1,t1]))
cv2.imshow("2",np.vstack([s2,t2]))
cv2.imshow("3",np.vstack([s3,t3]))#2、multi batch to process!!!
def tensor_rgbtolab(sn,tn):s = cv2.imread('some_data/'+sn+'.jpg')t = cv2.imread('some_data/'+tn+'.jpg')temp=[]for i,img in enumerate([s,t]):img = cv2.cvtColor(img,cv2.COLOR_BGR2LAB)s=np.expand_dims(img,axis=0)temp.append(s)cat_result=np.concatenate(temp,axis=0)N_tensor=N_imgtoTensor(cat_result)print(N_tensor.shape)result=N_tensor_to_np(N_tensor)return resultoo=tensor_rgbtolab('p1','p2')
for i,img in enumerate(oo):cv2.imshow(str(i),img)cv2.waitKey(0)
cv2.destroyAllWindows()

【Pytorch】rgb转lab颜色空间转换相关推荐

  1. RGB与Lab颜色空间互相转换

    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客<光与色的故事--颜色空间浅析>),Lab是一种不常用的色彩空间.它是在1931年国际照明委员会(CIE)制 ...

  2. RGB与Lab颜色空间互相转换 持续更新中

    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客<光与色的故事–颜色空间浅析>),Lab是一种不常用的色彩空间.它是在1931年国际照明委员会(CIE)制定 ...

  3. Python实现RGB和Lab颜色空间互转

    Python实现RGB和Lab颜色空间互转 https://github.com/rubund/debian-home-assistant/blob/1a3e8f7e4b9ddec60a4380e14 ...

  4. RGB和CIELAB颜色空间转换及偏色检测

    RGB转为CIELAB 首先RGB是不可以直接转为CIELAB颜色空间的,RGB需要先转为CIEXYZ颜色空间,然后再由CIEXYZ颜色空间转为CIELAB颜色空间.关于这2个颜色空间的互转,主要参考 ...

  5. Python实现RGB转Lab颜色空间,PS:和PhotoShop转换结果一样

    由于工作要求,需要把rgb颜色转成Lab颜色空间.网上一搜一大把的代码,但是和PS一对比,基本上都不对. 下面这张图是OpenCV官方文档的计算方法. 用Python实现代码如下: from math ...

  6. Opencv的RGB到HSV颜色空间转换

    从 RGB 到 HSL 或 HSV 的转换 设 (r, g, b) 分别是一个颜色的红.绿和蓝坐标,它们的值是在 0 到 1 之间的实数.设 max 等价于 r, g 和 b 中的最大者.设 min ...

  7. RGB与HSV颜色空间转换

    RGB转化到HSV的算法: max=max(R,G,B): min=min(R,G,B): V=max(R,G,B): S=(max-min)/max: HSV颜色空间模型(圆锥模型) [2] if  ...

  8. RGB颜色空间与Lab颜色空间区别与联系(附转换代码)

    RGB颜色空间 RGB颜色是红色(Red).绿色(Green)和蓝色(Blue)三基色的字母缩写.RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色.这个标准能够涵盖人类视力所能 ...

  9. MATLAB 将RGB颜色空间转为HSI颜色空间、LAB颜色空间 原理及程序

    一张彩色图像是由R.G.B三个通道组成,所以首先需要将彩色图像分为三个通道的图像. 以下是对猫图进行单通道提取得到的图像. HSI颜色空间 HSI[Hue-Saturation-Intensity(L ...

最新文章

  1. 定义物料管理的容差范围
  2. Windows下多线程编程技术及其实现
  3. sql 中CURSOR 的使用
  4. c++ 用eclipse建立一个类,并实例化并运行
  5. 数字图像处理图像反转的实现_反转8位数字| 8085微处理器
  6. ECMAScript中基本类型和引用类型的值在复制变量值时的区别
  7. Uva 140 Bandwidth
  8. Web Worker——js的多线程,实现统计博客园总阅读量
  9. linux TCP协议(1)---连接管理与状态机
  10. 使用File I/O类实现文件的读写操作
  11. 088、Docker 如何支持多种日志方案 (2019-05-10 周五)
  12. centos6.5编译安装mysql_Centos6.5编译安装mysql 5.7.14详细教程
  13. matlab:randn函数产生图像高斯噪声
  14. scala怎么取绝对值
  15. OpenGL ES EAGLContext 和 EGLContext
  16. JAVA中简单图形界面的创建
  17. 测绘资质专业类别及乙级作业限制范围是什么?
  18. Word文档封面填写打字时字体下方出现空格如何解决
  19. 热门表情包+头像+壁纸自动采集多分类微信小程序源码下载支持多种流量主模式
  20. cgb2110-day02

热门文章

  1. HDU 6441(费马大定理+奇偶数列法)
  2. SmartNIC — Overview
  3. GUI 图片显示(SDL 多媒体开发库)——基于 rt-smart 微内核操作系统
  4. Layui数据表格监听单元格编辑恢复原值
  5. Spring Boot项目介绍(值得学习,超详细)
  6. 分布式专题——接口幂等性实战
  7. 利用Django框架简单设计一个登陆页面
  8. 计算机组装所需硬件,电脑配件,详细教您电脑组装需要哪些配件
  9. 章节十六:编码和文件读写
  10. 【附源码】计算机毕业设计SSM小微企业ERP软件物料需求模块设计