gpt4 book ai didi

python - 为什么我的旋转图像没有正确保存?

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:12 24 4
gpt4 key购买 nike

我需要以不同的角度旋转大约 150 个图像,以便我可以使用边界框正确注释我的数据。问题是,由于某种原因,在运行我的代码并输入一些值后,图像文件没有被旋转保存。如何以旋转方式保存这些图像,以便当我重新打开图像文件时它已经旋转?

考虑到我实际上已经完全删除了该文件并以相同的名称保存了一个新文件,因此该文件应该被正确覆盖。

import os
from skimage import io, transform
import cv2
from scipy import ndimage
import scipy.misc

folder_name = r'C:\Users\admin\Desktop\Pedro_Database\Setup_Data\test'
with os.scandir(folder_name) as folder:
for file in folder:
if (file.name.endswith('.bmp')):
path = folder_name + '/' + file.name
img = cv2.imread(path)
rotate = 360
rotated_img = img
while(rotate != 0):
cv2.imshow('image',rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
rotate = int(input("Rotate By: "))
rotated_img = ndimage.rotate(img, rotate, reshape=False)
#os.remove(path)
cv2.imwrite(path, rotated_img)
print(file.name + " saved")

在两张照片上运行此代码并正常终止后,我重新打开图像文件,它们 100% 未更改。

最佳答案

我不习惯opencv,但我认为问题出在这一行

cv2.imwrite(path, rotated_img)

它必须放在 while 循环中,以便当图像通过 rotated_img = ndimage.rotate(img,rotate, reshape=False) 旋转时,它是写(保存)。如果不是,您的 rotated_img 将保持不变,如退出 while 循环时的 rotate = 0

此外,如果您想保存所有旋转图像,您应该考虑更改路径,例如:path = path + str(i),其中 i 加 1。

i = 0
while(rotate != 0):
cv2.imshow('image',rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
rotate = int(input("Rotate By: "))
rotated_img = ndimage.rotate(img, rotate, reshape=False)
i += 1
path_of_rotated_image = path + str(i)
cv2.imwrite(path_of_rotated_image, rotated_img)
print(file.name + " saved") # if you want to print

关于python - 为什么我的旋转图像没有正确保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56653977/

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