OSError: cannot write mode RGBA as JPEG解决办法

这篇具有很好参考价值的文章主要介绍了OSError: cannot write mode RGBA as JPEG解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OSError: cannot write mode RGBA as JPEG

当用labelme标注图片时,打开存放图片的文件夹,出现闪退,控制台出现以下报错:
oserror: cannot write mode rgba as jpeg,计算机视觉,图像处理,人工智能
这是因为你的图像是rgba四个通道的,第四个通道是透明通道。
错误原因主要是因为png格式和jpg格式图片的通道数不同。

  • png是四通道:RGBA意思是红色,绿色,蓝色,Alpha的色彩空间,Alpha指透明度
  • jpg是三通道:RGB意思是红色,绿色,蓝色
    所以,png格式图片要保存成jpg格式就要丢弃A通道,反之不可以。

png格式的不只是文件名后缀是 .png ,也可能是后缀名是 .jpg 但是图片里面的深度是为32的,常规的后缀是 .jpg 格式的图片一般深度是为24的。

如何查看你的图片是几通道的?

 1. 直接查看图片属性,如果图片位深度是24则说明是3通道,如果图片位深度是32则是4通道的。
 2. 用代码查看:
  	from PIL import Image
	img = Image.open('E:/Apple/train/image/tr_160.jpg')
	print(img.mode)
	若是四通道则将其改为三通道
	from PIL import Image
	img = Image.open('E:/Apple/train/image/tr_16.jpg')
	print(img.mode)
	if img.mode == "RGBA":img = img.convert('RGB')
	img.save('E:/Apple/train/image/16.jpg')

拓展:labelme打标打到一半闪退出错,这是因为那张图片有问题,因为我们用了PIL模块,对于PIL模块来说,其模式包括以下几种:
1        1位像素,黑和白,存成8位的像素
L        8位像素,黑白
P        8位像素,使用调色板映射到任何其他模式
RGB       3×8位像素,真彩
RGBA       4×8位像素,真彩+透明通道
CMYK       4×8位像素,颜色隔离
YCbCr       3×8位像素,彩色视频格式
I          32位整型像素
F         32位浮点型像素

参考:
https://blog.csdn.net/qiuzitao/article/details/108325150
https://blog.csdn.net/tp_0moyi0/article/details/120993213文章来源地址https://www.toymoban.com/news/detail-802773.html

到了这里,关于OSError: cannot write mode RGBA as JPEG解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 运行StableDiffusionInpaintPipeline的Example时报错:OSError: Cannot load model runwayml/stable-diffusion-...

    项目地址: https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/inpaint https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/inpaint 在云服务器端运行下面给出的Example的时候出现报错: 原因是:国内无法服务器无法直接连接上huggingface。 解决办法是:开代理把模型下载到本地再

    2024年03月09日
    浏览(26)
  • 解决OSError: [WinError 127] 找不到指定的程序

    使用PyG和PyTorch训练网络时出现 解决OSError: [WinError 127] 找不到指定的程序 问题

    2024年02月11日
    浏览(34)
  • 【pytorch问题解决】OSError: [WinError 1455] 页面文件太小,无法完成操作。

    在windows上面跑pytorch代码,导致: OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:pythonAnancodaenvstorch38libsite-packagestorchlibcaffe2_detectron_ops_gpu.dll” or one of its dependencies. 就是说由于一下要加载一些数据,但是数据大小超过了电脑能够分配的空间,所以导致

    2024年02月12日
    浏览(39)
  • 「Bug」“OSError [WinError 1455] 页面文件太小,无法完成操作” 解决方案

    训练YOLOv5模型时出现错误 修改train.py中配置项workers的默认值,从初始值8修改为0(也可以试试1或2等较小的数)。 workers_per_gpu=2, # 每个gpu分配的线程数,给每一个GPU喂数据的进程,GPU性能越强,取值越大,这样才能充分利用GPU的算力。如果用自己的电脑训练,这个值需要取小一

    2024年02月11日
    浏览(35)
  • 出现OSError: [Errno 24] Too many open files错误解决方法。

    出现了: 这是因为 1,打开文件太多 2,其实不然,是线程限制,通常我们采用更改限制即可。 输入下面的命令看一下:  输出:1024 果然如我所预想,得到的结果是1024,就是说系统限制为同时打开1024个文件。 修改方法: 1、将自己的线程数改小,使之符合这个限制(只是方

    2024年02月16日
    浏览(34)
  • 【RLException: roscore cannot run as another roscore/master is already running. 解决办法,最全】

    运行roscore提示下面的错误 但是下面的命令没有用。 根据错误提示,你的ROS系统已经存在一个正在运行的ROS核心(roscore)进程,因此需要杀死该进程才能启动一个新的roscore进程。 在终端中输入以下命令,杀死所有的roscore和rosout进程: 比如我这里的节点有erGouZi rosout 如果你

    2024年02月12日
    浏览(38)
  • 成功解决BUG:OSError: [Errno 9] Bad file descriptor(Python BUG)

    成功解决BUG:OSError: [Errno 9] Bad file descriptor 在 Python 代码编写过程中,会出现如下错误: OSError: [Errno 9] Bad file descriptor 该错误翻译为中文是: 将一个无效的文件句柄(-1)传递给 os.close() 函数,它试图关闭该文件句柄。 由于该文件句柄无效,会引发TypeError,错误消息将显示为

    2024年02月12日
    浏览(24)
  • pytorch :OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading 【已解决】

    OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading \\\"D:ProgramDataAnaconda3envsopenmmlablibsite-packagestorchlibcudnn_cnn_infer64_8.dll\\\" or one of its dependencies. win11系统,运行出现上述错误  解决方法  1.降低Batch_Size大小: 过大的Batch_Size(人工智能术语:指一次迭代过程送入的数

    2024年02月02日
    浏览(33)
  • 解决【ERROR: Could not install packages due to an OSError: HTTPSConnectionPool...】

    PIP安装软件总是报错,报错提示如下: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘NewConnectionError(’pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001EBE06BB4F0: Failed to establish a new connection: [Errno 11002] getaddrinfo failed’)\\\': /packages/59/e

    2024年02月07日
    浏览(53)
  • Python ERROR: Could not install packages due to an OSError:XXX解决方法

    在使用 pip 安装 python 包时,出现ERROR: Could not install packages due to an OSError: XXX 的错误,这时候主要有两种错误类型,要根据类型来解决问题 错误类型1: 特点:[WinError 5] 拒绝访问 + … + Consider using the --user option or check the permissions 错误类型2: 特点:[Errno 22] Invalid argument: + … 我原

    2024年01月25日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包