cv读取图片时后缀的大小写

本文讲述了在处理师兄的数据集时遇到的图片文件后缀不统一问题,如何在Windows和Ubuntu环境下调整代码以解决`cv2.imread`的`assert img is not None`报错,并通过批量修改文件后缀的方法予以解决。
摘要由CSDN通过智能技术生成

使用师兄的数据集跑模型,然后一直在此处弹出assert

img = cv2.imread(img_file)
assert img is not None

debug打断点查看img_file并未发现路径有错误,后来偶然间发现可能师兄拍照片的时候使用了不同的设备,所以图片有的后缀为xxx.JPG,有的为xxx.jpg,但是我在将数据转化为coco数据格式的时候,json中的数据统一为jpg:

"images": [
        {
            "file_name": "001303.jpg",
            "height": 720,
            "width": 960,
            "id": 20190000001
        },
        {
            "file_name": "009757.jpg",
            "height": 960,
            "width": 720,
            "id": 20190000002
        },
        {
            "file_name": "007638.jpg",
            "height": 720,
            "width": 960,
            "id": 20190000003
        },
        ...
        ]

于是在本地(windows)尝试:

import cv2

img_file = './datasets/COCO/train2017/000006.JPG'
img = cv2.imread(img_file)
assert img is not None
print('yes')

img_file = './datasets/COCO/train2017/000006.jpg'
img = cv2.imread(img_file)
assert img is not None
print('yes')

但是结果输出为

yes
yes

于是推测并不是这里的问题,但是看了半天以后发现并没有其他的问题,所以在服务器上(Ubuntu)上又尝试了一下:

(base) wd337@wd337-ubuntu:~/projects/YOLOX-main$ python caogaozhi.py
yes
Traceback (most recent call last):
  File "caogaozhi.py", line 10, in <module>
    assert img is not None
AssertionError

所以在Windows下就不用区分大小写,在Ubuntu下就要区分大小写。

关于批量修改文件后缀名,可以在当前目录创建xxx.bat文件,然后写入以下命令:

ren *.jpg *.JPG

这个可以将所有的.jpg都改为.JPG
然后就没有问题了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值