计算机视觉系列之1-图片读取

文章目录

1.用Skimage读取tif

channel默认顺序是RGB/RGBA,读取得到的img是数组ndarray,type=unit32, 像素值默认范围:0-65536
io.imread()可以读取的tif波段数:
gray --MN
RGB --MN3
RGBA --MN*4 (RGBA: red-green-blud-alpha, 除了tif,png也可以保存此格式)
python 复制代码
from skimage import io
imgpath='image/file/name.tif'
img=io.imread(imgpath)
r=img[:,:,0]
g=img[:,:,1]
b=img[:,:,2]
nir=img[:,:,3]

2.PIL读取

 channel默认顺序是RGB,数据类型 PIL.JpegImagePlugin.JpegImageFile,通过 numpy.asarray(image_pil) 可转成 numpy.ndarray
 像素值默认范围为0-255
python 复制代码
from PIL import Image
imgpath='image/file/name.tif'
img=Image.open(imgpath)
print('%s, %s, %s' % (img.mode, img.size, img.format))
img.show()

3.OpenCV读取

channel默认顺序H×W×C,BGR,数据类型numpy.ndarray,支持 bmp、jpg、png、tiff 等常用格式
通过 cv2.cvtColor(image_cv2, cv2.COLOR_BGR2RGB) 可转成 RGB
python 复制代码
import cv2 as cv
img = cv.imread("sancun.tif", 1)

4.Scipy读取

Notes:
imread uses the Python Imaging Library (PIL) to read an image. The following notes are from the PIL documentation.使用Python图像库(PIL)读取图像

mode can be one of the following strings:
'L' (8-bit pixels, black and white)(8位像素,黑白)
'P' (8-bit pixels, mapped to any other mode using a color palette)(8位像素,使用调色板映射到任何其他模式)
'RGB' (3x8-bit pixels, true color)(3x8位像素,真彩色)
'RGBA' (4x8-bit pixels, true color with transparency mask)(4x8位像素,带透明蒙版的真彩色)
'CMYK' (4x8-bit pixels, color separation)(4x8位像素,分色)
'YCbCr' (3x8-bit pixels, color video format)(3x8位像素,彩色视频格式)
'I' (32-bit signed integer pixels)(32位有符号整数像素)
'F' (32-bit floating point pixels)(32位浮点像素)

PIL also provides limited support for a few special modes, including 'LA' ('L' with alpha), 'RGBX' (true color with padding) and 'RGBa' (true color with premultiplied alpha).
PIL还提供了对某些特殊模式的有限支持,包括" LA"(带L的" L")," RGBX"(带填充的真彩色)和" RGBa"(带预乘alpha的真彩色)。

When translating a color image to black and white (mode 'L', 'I' or 'F'), the library uses the ITU-R 601-2 luma transform:
将彩色图像转换为黑白图像(模式" L"," I"或" F")时,该库使用ITU-R 601-2亮度转换:
L = R * 299/1000 + G * 587/1000 + B * 114/1000

When flatten is True, the image is converted using mode 'F'. When mode is not None and flatten is True, the image is first converted according to mode, and the result is then flattened using mode 'F'.
展平为True时,将使用" F"模式转换图像。当mode不为None且flatten为True时,将首先根据mode转换图像,然后使用" F"模式将结果展平。
python 复制代码
import scipy
from scipy import misc
imgpath='image/file/name.tif'
img=misc.imread(imgpath)
#or
from scipy import ndimage
img = ndimage.imread(imgpath, mode='RGB')
相关推荐
AI大模型知识分享5 分钟前
零基础入门AI:一键本地运行各种开源大语言模型 - Ollama
人工智能·gpt·语言模型·自然语言处理·chatgpt·开源·prompt
Adolf_199325 分钟前
Flask-SQLAlchemy一对多 一对一 多对多关联
后端·python·flask
深度学习实战训练营28 分钟前
VGG16模型实现新冠肺炎图片多分类
人工智能·分类·数据挖掘
Su4iky29 分钟前
(Python) Structured Streaming读取Kafka源实时处理图像
开发语言·python·kafka
vah10132 分钟前
python队列操作
开发语言·前端·python
A 八方2 小时前
Python MongoDB
开发语言·python·mongodb
sz66cm3 小时前
Python基础 -- 使用Python实现ssh终端并实现数据处理与统计功能
开发语言·python·ssh
网络研究院3 小时前
人工智能有助于解决 IT/OT 集成安全挑战
网络·人工智能·安全·报告·工业·状况
七哥的AI日常4 小时前
个人随想-gpt-o1大模型中推理链的一个落地实现
人工智能
ac-er88885 小时前
如何在Flask中实现国际化和本地化
后端·python·flask