首页 > 编程语言 >python常见图片格式-读取方法-相互转换

python常见图片格式-读取方法-相互转换

时间:2024-05-17 19:59:48浏览次数:22  
标签:PIL 读取 img python 图片格式 cv2 transforms cv tensor

PIL

读取 image = Image.open({path})

格式 h,w

Tensor

读取

image = Image.open(image_name).convert('RGB')
image = transforms.ToTensor()(image)

格式 : 3, height , width

数据类型 : float32 ---- tensor

颜色通道顺序 : RGB

Opencv

读取 cv2.imread({path})

格式 : height width 3

数据类型 : uint8 --- numpy.ndarry

转换

tensor -- cv

max_val=tensor_img.max()
tesor_img=tensor_img*255/max_val

cv_img = tensor_img.permute(1,2,0).numpy() # 类型转换 并修改通道
cv_img = np.uint8(cv_img)

cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR) # 转换颜色通道

tensor -- PIL

from torchvision import transforms

img_PIL = transforms.ToPILImage([mode])(img_tensor)
img_tensor = transforms.PILToTenso()(img_PIL)  # 不进行 scale

img_tensor = transforms.ToTensor()(img_PIL) # 默认进行 scale

mode 的解释

PIL -- opencv

img_PIL = Image.open("../datasets/MVTec/bottle/train/good/000.png")
img_cv2 = cv2.imread("../datasets/MVTec/bottle/train/good/000.png")


img_PIL = transforms.PILToTensor()(img_PIL).numpy() #转为 numpy
img_cv2 = img_cv2.transpose(2,0,1)

标签:PIL,读取,img,python,图片格式,cv2,transforms,cv,tensor
From: https://www.cnblogs.com/bigsharker/p/18198532

相关文章

  • python基础环境
    刚开始接触并学习一门开发语言,带着不求甚解的想法,其实也挺有好处的:我并不是所有的东西都知道,但是代码跑起来了。但是时间久了,还是带着这种想法,可能就会遇到一些棘手的问题。比如电脑上不知不觉已经安装了多个python版本,python3.8/3.10/3.11,甚至一些软件中也集成有python解释器;那......
  • Python列表解析式(又称列表推导式)
    概况嵌套列表解析式又称嵌套列表推导式,功能非常强大,但是初学者难以摸清其书写规则。以下实例展示了嵌套列表解析的写法。嵌套列表解析表达是的书写规则是层层嵌套。嵌套层的一般形式为:foroutterininner。根据需要解析的嵌套层次深度,此一般形式可以从左到右接续写若干个......
  • Python知识 | Python的数据结构有哪些?
    Python的数据结构有哪些?Python数据结构概览在Python中,数据结构是编程语言的基础,它们决定了数据如何组织和存储。Python的标准库提供了多种内置数据结构,包括:列表(List)列表是一种可变的序列,可以随时添加、删除或修改其元素。列表以方括号[]表示,元素可以是任何类型的数据。元组(T......
  • python 对于实现rsa加密算法
    importbase64importrsaclassGenerateKey(object):d="ascii"defgenerate_keys(self,bits=1024):(pubkey,privkey)=rsa.newkeys(bits)pem_pubkey=rsa.PublicKey.save_pkcs1(pubkey).decode(self.d)b64_pubkey......
  • Python模拟数据生成库Faker
    Python模拟数据生成库FakerPYPI官网https://pypi.org/project/Faker/Github官网https://github.com/joke2k/faker文档https://faker.readthedocs.io/en/master/中文参考:Python-faker的简单使用https://www.cnblogs.com/TSmagic/p/16072399.htmlpython中第三方库Fake......
  • 【吐槽】今天才发现PyCharm不支持对Python脚本进行块注释
    在PyCharm中对Python脚本Ctrl+Shift+/进行块注释不起作用,然后使用OpenArk64查看是否热键占用冲突,没有发现其他占用。然后发现PyCharm中Code菜单项下的选项CommentwithBlockComment是灰色的。又查了下,最后发现jetbrains官方帮助文档中已说明PyCharm不支持对Python脚本进行......
  • Python通过Geoip解析IP地址信息
    最近在研究ELK日志分析系统,在分析haproxy日志时,考虑需要将haproxy内获取到的IP地址进行解析,网站访问情况。于是有了这么一个需求,奈何maxmind数据库有些不准确,于是衍生出了一个想法,要测试maxmind数据库的准确性。于是乎想到了一个简单的方法,利用python脚本来配置geoip数据库来解......
  • C++读取配置文件
    1、读取=号的配置文件(或者:)的配置。#include<iostream>#include<fstream>#include<sstream>#include<map>#include<string>std::map<std::string,std::string>read_config(conststd::string&filename){std::map<std::st......
  • python测试postgres远程登录
    #首先安装psycopg2模块importpsycopg2 #配置数据库连接参数conn_params={"dbname":"your_db","user":"your_user","password":"your_password","host":"your_host","port":&......
  • python爬虫基础
    前言Python非常适合用来开发网页爬虫,理由如下:1、抓取网页本身的接口相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模......