首页 > 编程语言 >Python_python读写图片以及对应的库比较

Python_python读写图片以及对应的库比较

时间:2024-01-18 17:12:12浏览次数:31  
标签:img Python 读写 cv2 JPEG python 图像 imread image

图片读写

通过numpy 来做数据计算的沟通
    JPEG 是一种有损格式,
	图像 PNG,是一种无损格式
cv2.imdecode()  作用是将图像数据从存储格式中解析出来并转化为OpenCV中的图像格式	imdecode得到的影像波段顺序是RGB
np.fromfile  将文本或二进制文件中数据构造成数组	
	
cv2.imencode 将图像编码到内存缓冲区中   将图片编码为二进制数组 _, img_buf = cv2.imencode(".png", img)
np.tofile函数是一个简便的方法,可以将numpy数组存储到二进制格式的文件中。 numpy.ndarray.tofile()

opencv2

 01. 图像的读取(cv2.imread) 是BGR
 02. 图像的保存(cv2.imwrite)
 03. 图像的显示(cv2.imshow)
 04. 用 matplotlib 显示图像(plt.imshow)

 Read and write images in color (BGR)Read an image file with cv2.imread()
 Write ndarray as an image file with cv2.imwrite()
C++: CV_IMWRITE_JPEG_QUALITY : imgcodecs_c.h 
    cv2.CV_IMWRITE_JPEG_QUALITY  设置图片格式为.jpeg或者.jpg的图片质量,其值为0---100(数值越大质量越高),默认95 
Python
    cv2.IMWRITE_JPEG_QUALITY 类型为Long,必须转换成int	 
 例如: cv2.imwrite("123.jpg", img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
 
本地:读取本地图像文件时,往往会使用cv2.imread函数
在网络传输中,需要对图像数据进行编码,然后再进行传输,最后在解码显示。
   cv2.imdecode函数就是用来对编码后的图像二进制数据进行解码 
   cv2.imdecode(imgbuf, flags=-1)

pillow

pip install pillow
from PIL import Image

转换

 img = cv2.imread("test.jpg")
 img= Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
 img.save(filename, 'jpeg', icc_profile=im.info.get('icc_profile'))

使用Image模块的open()函数打开后,返回的图像对象的模式都是“RGB”
Saving
  The save() method supports the following options:
    quality
     The image quality, on a scale from 0 (worst) to 95 (best),  or the string keep. The default is 75. 
      Values above 95 should be avoided; 
      100 disables portions of the JPEG compression algorithm, and results in large files with hardly any gain in image quality. 
      The value keep is only valid for JPEG files and will retain the original image quality level, subsampling, and qtables.
     
    progressive
       If present and true, indicates that this image should be stored as a progressive JPEG file.
        图片是由模糊到清晰慢慢呈现的。这个就是ProgressiveJpeg所展示的渐进式加载
     exif
        If present, the image will be stored with the provided raw EXIF data.

参考

https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html 
https://docs.opencv.org/4.x/d8/d6a/group__imgcodecs__flags.html

标签:img,Python,读写,cv2,JPEG,python,图像,imread,image
From: https://www.cnblogs.com/ytwang/p/17972929

相关文章

  • WhisperService 多GPU python
    如何实现“WhisperService多GPUPython”作为一名经验丰富的开发者,你将教会一位刚入行的小白如何实现“WhisperService多GPUPython”。下面是整个实现过程的步骤:步骤说明步骤一导入必要的库并设置GPU步骤二加载数据步骤三构建模型步骤四配置训练参数......
  • python数据结构中实现队列的几种方法
    1.list实现enqueueappend()dequeuepop(0)或enqueueinsert(0,item)dequeuepop()MAX_SIZE=100classMyQueue1(object):"""模拟队列"""def__init__(self):self.items=[]self.size=0defis_empty(s......
  • Python使用__dict__查看对象内部属性的名称和值
    1、定义一个类classMyObj:def__init__(self,name,age):self.name=nameself.age=agedefmyFunc(self):passmo=MyObj('Boby',24)print(mo)print(mo.__dict__)#结果<__main__.MyObjobjectat0x000000815C36451......
  • python编程中break pass continue这三个有什么区别?
    在Python编程中,break、pass和continue是三种不同的控制流语句,它们各自有不同的用途和行为:(以下内容由百度文心一言生成)   break:       break语句用于终止循环的执行。当程序执行到break语句时,会立即跳出当前循环,不再执行循环内的剩余代码,而是继续执行循环之后的代......
  • python llama_index
    PythonLlamaIndexIntroductionPythonisapopularprogramminglanguageknownforitssimplicityandreadability.Ithasavastecosystemoflibrariesandframeworksthatmakeitsuitableforawiderangeofapplications,fromwebdevelopmenttodataana......
  • python 安装 llama_index
    Python安装llama_index简介在进行数据分析和机器学习的过程中,我们经常需要对数据进行索引和检索。其中,llama_index是一个强大的Python库,用于快速构建和管理索引。它提供了各种功能,包括全文搜索、近似搜索、范围搜索等。本文将向您介绍如何安装和使用llama_index。安装要安装l......
  • python迭代器和生成器
    迭代器:定义:迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。字符串,列表或元组对象都可用于创建迭代器:ex:#!/usr/bin/python3list=[1,2,3,4]it=iter(list)#创建迭代器对......
  • python的whisper工具包
    实现Python的Whisper工具包作为一名经验丰富的开发者,你需要教一位刚入行的小白如何实现Python的Whisper工具包。下面是整个实现的步骤概述:确定需求:首先需要明确Whisper工具包的功能和用途,以便为其设计合适的代码结构。安装必要的库:使用pip命令安装Python的相关库,如numpy、panda......
  • Python whisper识别
    Pythonwhisper识别Pythonwhisper识别是一个用于语音识别的开源Python库。它基于Google的语音识别API,通过将语音转换为文本,实现对语音数据的处理和分析。Pythonwhisper识别可以应用于各种场景,例如语音助手、语音命令控制和语音转写等。安装Pythonwhisper识别要使用Pythonwh......
  • python whisper没有分段
    PythonWhisper没有分段实现方法1.概述在本文中,我将向你介绍如何在Python中实现"Whisper没有分段"的功能。作为一名经验丰富的开发者,我将引导你完成这个任务,并提供每一步需要执行的代码示例和注释。2.任务流程下表显示了实现"Whisper没有分段"功能的步骤。我们将按照这些步骤......