计算机视觉系列之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')
相关推荐
测试秃头怪18 分钟前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
战族狼魂19 分钟前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
姚青&34 分钟前
测试左移体系
python·自动化
技术民工之路1 小时前
Python Socket编程零基础实战教程(TCP/UDP通信完整版)
python·tcp/ip·udp
m沐沐1 小时前
【深度学习】dlib 人脸关键点检测
人工智能·深度学习·opencv·计算机视觉·pycharm·人脸识别·关键点检测
EW Frontier1 小时前
三级跳突破864维动作空间——QMIX-Hierarchical多无人机协同通信方法全解析【附python代码】
开发语言·python·无人机·强化学习·通信资源分配
happyprince1 小时前
2026年07月09日全球AI前沿动态
人工智能
ACP广源盛139246256731 小时前
IX8024 PCIe4.0 交换芯片@ACP# RK3588:嵌入式 AI PC 标准化扩展方案
大数据·人工智能·分布式·单片机·嵌入式硬件
研究员子楚1 小时前
GEO行业发展标准体系白皮书V2.0-第09卷 · 适配篇:硅基主权伦理宪章与行业适配宣言
数据库·人工智能·geo