我们知道rolabelimg可以标注旋转的图片,但是当我打开image文件时有一个问题很是让我无语,我们知道标注的时候都是按照数值大小来排的,但是rolabelimg的排序很傻,而是按字典的首数字大小来排的,如图。

以下只是我个人的修改方法,大家可以参考,如果这对你来说不影响的话不用改就行。

1.首先找到rolabelimg项目文档中的roLabelImg.py

2.修改roLabelImg.py中的代码,找到scanAllImages这个函数,大概在1018行附近,将def scanAllImages下面的代码到下一个def函数之前(我这里下一个def函数是changeSavedir)全部修改为我下面的代码。

    def scanAllImages(self, folderPath):
        extensions = ['.jpeg', '.jpg', '.png', '.bmp']
        images = []

        for root, dirs, files in os.walk(folderPath):
            for file in files:
                if file.lower().endswith(tuple(extensions)):
                    relatviePath = os.path.join(root, file)
                    path = ustr(os.path.abspath(relatviePath))
                    images.append(path)

        def extract_number(filename):
            basename = os.path.basename(filename)
            name_without_ext = os.path.splitext(basename)[0]
            try:
                return int(name_without_ext)
            except ValueError:
                return float('inf')
        # 使用数字大小作为排序依据
        return sorted(images, key=extract_number)

3.修改好之后,命令行进入roLabelImg-master这个文件夹,非常重要!输入python roLabelImg.py打开rolabelimg进入,可以看到修改成功!

总结:本人是一名即将毕业的实习生,还在学习阶段,第一次写文章,可能有些细节不够好,多多见谅,虽然这个问题很不起眼,但是希望也可以帮到有需要它的人,谢谢大家。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐