scipy.misc.imread()函数解析(最清晰的解释)

2024-03-23 07:48

本文主要是介绍scipy.misc.imread()函数解析(最清晰的解释),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注WX公众号:【程序员管小亮】

scipy.misc.imread()函数用于从文件中读取图像作为数组。

更多的读取图片的方法可以看这个博客——【超分辨率】各种python图像库的图片读取方法总结
scipy.misc.imread(name, flatten=False, mode=None
)

参数:

  • name:str或file对象。要读取的文件名或文件对象。

  • flatten:bool,可选。如果为True,则将颜色层展平为单个灰度图层。

  • mode:str,可选。将图像转换为例如的模式’RGB’。

返回:

  • imread:ndarray。通过读取图像获得的阵列。

注意:

   """Notes-----`imread` uses the Python Imaging Library (PIL) to read an image.The following notes are from the PIL documentation.`mode` can be one of the following strings:* 'L' (8-bit pixels, black and white)* 'P' (8-bit pixels, mapped to any other mode using a color palette)* 'RGB' (3x8-bit pixels, true color)* 'RGBA' (4x8-bit pixels, true color with transparency mask)* 'CMYK' (4x8-bit pixels, color separation)* 'YCbCr' (3x8-bit pixels, color video format)* 'I' (32-bit signed integer pixels)* 'F' (32-bit floating point pixels)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).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 = R * 299/1000 + G * 587/1000 + B * 114/1000When `flatten` is True, the image is converted using mode 'F'.When `mode` is not None and `flatten` is True, the image is firstconverted according to `mode`, and the result is then flattened usingmode 'F'."""

以下是翻译:

imread使用Python Imaging Library(PIL)读取图像。以下注释来自PIL文档。

mode可以是以下字符串之一:

  • ‘L’(8位像素,黑白)
  • ‘P’(8位像素,使用调色板映射到任何其他模式)
  • ‘RGB’(3x8位像素,真彩色)
  • ‘RGBA’(4x8位像素,带透明蒙版的真彩色)
  • ‘CMYK’(4x8位像素,分色)
  • ‘YCbCr’(3x8位像素,彩色视频格式)
  • ‘I’(32位有符号整数像素)
  • ‘F’(32位浮点像素)

PIL还为一些特殊模式提供有限的支持,包括’LA’(带有alpha的’L’),‘RGBX’(带填充的真彩色)和’RGBa’(带有预乘alpha的真彩色)。

将彩色图像转换为黑白(模式“L”,“I”或“F”)时,库使用ITU-R 601-2亮度转换:

L = R ∗ 299 / 1000 + G ∗ 587 / 1000 + B ∗ 114 / 1000 L=R*299/1000+G*587/1000+B*114/1000 L=R299/1000+G587/1000+B114/1000

flatten为True时,使用mode“F”转换图像。当mode不是None并且flatten为True时,首先根据mode转换图像,然后使用mode’F’flatten结果。

例子:

from PIL import Image
import scipy.misca = Image.open('1.jpg')
d = Image.open('1.jpg').convert('RGB')
print(type(a))
print(type(d))
print(a)
print(d)b = scipy.misc.imread('1.jpg')
e = scipy.misc.imread('1.jpg',mode='RGB')
print(type(b))
print(type(e))
print(b)
print(e)
<class 'PIL.JpegImagePlugin.JpegImageFile'>
<class 'PIL.Image.Image'>
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x336 at 0x1F3D1C406A0>
<PIL.Image.Image image mode=RGB size=500x336 at 0x1F3C9879E48><class 'numpy.ndarray'>
<class 'numpy.ndarray'>
[[[221 227 225][222 226 225][220 224 223]......[ 27  21   0][ 12   7   0][ 11   8   0]]][[[221 227 225][222 226 225][220 224 223]......[ 27  21   0][ 12   7   0][ 11   8   0]]]

可以看出scipy.misc.imread()函数返回的是numpy.ndarray

python课程推荐。
在这里插入图片描述

这篇关于scipy.misc.imread()函数解析(最清晰的解释)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837639

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

kotlin的函数forEach示例详解

《kotlin的函数forEach示例详解》在Kotlin中,forEach是一个高阶函数,用于遍历集合中的每个元素并对其执行指定的操作,它的核心特点是简洁、函数式,适用于需要遍历集合且无需返回值的场... 目录一、基本用法1️⃣ 遍历集合2️⃣ 遍历数组3️⃣ 遍历 Map二、与 for 循环的区别三、高

利用Python和C++解析gltf文件的示例详解

《利用Python和C++解析gltf文件的示例详解》gltf,全称是GLTransmissionFormat,是一种开放的3D文件格式,Python和C++是两个非常强大的工具,下面我们就来看看如何... 目录什么是gltf文件选择语言的原因安装必要的库解析gltf文件的步骤1. 读取gltf文件2. 提

Java中的runnable 和 callable 区别解析

《Java中的runnable和callable区别解析》Runnable接口用于定义不需要返回结果的任务,而Callable接口可以返回结果并抛出异常,通常与Future结合使用,Runnab... 目录1. Runnable接口1.1 Runnable的定义1.2 Runnable的特点1.3 使用Ru