gpt4 book ai didi

java - Panel.image 显示一些方向错误的图像

转载 作者:行者123 更新时间:2023-12-02 05:31:53 24 4
gpt4 key购买 nike

我们正在使用 Tensorflow 来训练图像数据集。为了获取图像,我们使用手机录制视频,并使用 Python 中的 OpenCV 提取每一帧并将其保存为 JPG 图像。我使用 Windows 10 上的照片应用程序将其中一些旋转为纵向模式。

然后,我们有自己的用 Java 编写的注释工具来标记我们在图像上看到的每个项目。它返回每个对象的 CSV 文件及其坐标(以百分比表示)。

但是,当我昨天进行训练时,我通过张量板界面注意到有些注释不正确(我用照片旋转的那些)

这是在 Tensorboard 上打开的图像,您可以看到 jar 头的注释非常糟糕。

Image on tensorboard

事实证明,如果我使用 Java 软件打开此图像,它会得到很好的注释,但正如您在下面看到的,该图像是水平的(它没有考虑照片应用的旋转):

Image via the Java tool

如果我用 Paint 或资源管理器打开它,它会以纵向模式显示,就像在张量板中一样。

另一个事实是,如果我通过 Facebook 发送图片并再次下载,它将以纵向模式显示在 Java 工具上,就像从一开始就一样。

这次我尝试用 Paint 旋转图像,它在 Java 工具中正确显示。

Java中显示图像的代码:

panel.image = New File(srcFile);

Python中保存视频帧的代码:

cap = cv.VideoCapture(video_path)
while cap.isOpened():
ret, frame = cap.read()
if ret:
try:
cv.imwrite(output_img_path, frame)
except Exception:
pass
else:
break
cap.release()

你知道为什么 Java 会忽略通过 Win10 Photos 软件应用的旋转吗?为什么它可以通过 Paint 工作?

有没有办法让Java考虑到这一点,因为从头开始会很不愉快。

提前谢谢您,

最佳答案

注意到使用“画图”而不是“照片”旋转图像可以满足我们的需求后,我发现了问题所在。

“如果您使用的是 Windows 10,文件资源管理器和默认图像查看器将正确遵循 Exif 方向标签,因此来自智能手机或数码相机的照片将正确显示。Google 的 Android 和 Apple 的 iOS 都可以原生创建带有 Exif 方向标签的照片并支持它。” (source)

我使用 JPG 自动旋转来解决这个问题。

关于java - Panel.image 显示一些方向错误的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56198755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com