将ffprobe与opencv判断视频旋转角度信息均做判断

This commit is contained in:
jiajie555
2025-04-18 16:59:48 +08:00
parent 3c9701aad3
commit 7c87e776e1
2 changed files with 17 additions and 10 deletions

View File

@ -348,14 +348,17 @@ class LoadImagesAndVideos:
if rotation == 270:
im0 = cv2.rotate(im0, cv2.ROTATE_90_COUNTERCLOCKWISE)
###======================
if success:
self.frame += 1
paths.append(path)
imgs.append(im0)
info.append(f"video {self.count + 1}/{self.nf} (frame {self.frame}/{self.frames}) {path}: ")
if self.frame == self.frames: # end of video
self.count += 1
self.cap.release()
if self.orientation == 270:
im0 = cv2.rotate(im0, cv2.ROTATE_90_COUNTERCLOCKWISE) # for use if cv2 autorotation is False
self.frame += 1
paths.append(path)
imgs.append(im0)
info.append(f"video {self.count + 1}/{self.nf} (frame {self.frame}/{self.frames}) {path}: ")
if self.frame == self.frames: # end of video
self.count += 1
self.cap.release()
else:
# Move to the next file if the current video ended or failed to open
self.count += 1
@ -382,6 +385,7 @@ class LoadImagesAndVideos:
"""Creates a new video capture object for the given path."""
self.frame = 0
self.cap = cv2.VideoCapture(path)
self.orientation = int(self.cap.get(cv2.CAP_PROP_ORIENTATION_META)) # rotation degrees
self.fps = int(self.cap.get(cv2.CAP_PROP_FPS))
if not self.cap.isOpened():
raise FileNotFoundError(f"Failed to open video {path}")
@ -404,6 +408,9 @@ class LoadImagesAndVideos:
else:
return 0
return im
def __len__(self):
"""Returns the number of batches in the object."""
return math.ceil(self.nf / self.bs) # number of files

View File

@ -310,8 +310,8 @@ class LoadImages:
im0 = cv2.rotate(im0, cv2.ROTATE_90_COUNTERCLOCKWISE)
###======================
# if self.orientation == 270:
# im0 = cv2.rotate(im0, cv2.ROTATE_90_COUNTERCLOCKWISE) # for use if cv2 autorotation is False
if self.orientation == 270:
im0 = cv2.rotate(im0, cv2.ROTATE_90_COUNTERCLOCKWISE) # for use if cv2 autorotation is False
s = f'video {self.count + 1}/{self.nf} ({self.frame}/{self.frames}) {path}: '
else: