吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1372|回复: 1
收起左侧

[Python 转载] 关于标注图片但是用起来出现问题的解决方法

[复制链接]
lideshan 发表于 2021-2-24 15:50
# 关于标注图片但是用起来出现问题的解决方法
## 原因
有一批图片在windows里边看起来是正的,但是用python加载读取可视化的时候会旋转,实际上是图片的exif信息导致的
## 解决办法
这里有两个解决方法
1.
[Python] 纯文本查看 复制代码
import os
from PIL import Image, ExifTags

def rutn_around(infile, outfile):
    img = Image.open(infile)
    try:
        for orientation in ExifTags.TAGS.keys():
            if ExifTags.TAGS[orientation] == 'Orientation': break
        exif = dict(img._getexif().items())
        if exif[orientation] == 3:
            img = img.rotate(180, expand=True)
            with open("file_to_scale.txt","a",encoding="utf-8")as f:
                f.write(infile+"\n")
        elif exif[orientation] == 6:
            img = img.rotate(270, expand=True)
            with open("file_to_scale.txt","a",encoding="utf-8")as f:
                f.write(infile+"\n")
        elif exif[orientation] == 8:
            img = img.rotate(90, expand=True)
            with open("file_to_scale.txt","a",encoding="utf-8")as f:
                f.write(infile+"\n")
    except:
        pass
    img.save(outfile, quality=100)

根据图片的exif信息通过使用pillow库进行旋转
2.强制干掉图片的exif信息,然后人工检查修改
[Python] 纯文本查看 复制代码
import osimport shutil

from PIL import Image

_dir = r""
_save = r""
# _save=_dir.replace(os.path.basename(_dir),"")
for i in os.listdir(_dir):
    tmp = os.path.join(_dir, i)
    img = Image.open(tmp)
    x,y=img.size
    img = img.rotate(0, expand=True)
    img.save(os.path.join(_save, i))

两种方法的比较
第一种虽然快,但是可能会有个别的有问题,很难被发现出来,第二种方法虽然慢,但是准确
[Python] 纯文本查看 复制代码
img = img.rotate(0, expand=True)

这个0,表示的是度数,倒立的改成180,向左的90,向右的-90

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fangjia9999 发表于 2021-2-24 16:15
这个一定要支持
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表