Αντιμετώπιση προβλημάτων

Γνώση Υπολογιστών >> Αντιμετώπιση προβλημάτων >  >> Videos

Εξαγωγή πλαισίου και επεξεργασία εικόνας στο αρχείο βίντεο;

Η εξαγωγή πλαισίου και η επεξεργασία εικόνας σε αρχεία βίντεο περιλαμβάνουν διάφορα βήματα και μπορούν να εφαρμοστούν χρησιμοποιώντας διάφορα εργαλεία και βιβλιοθήκες. Ακολουθεί μια ανάλυση της διαδικασίας, μαζί με παραδείγματα χρησιμοποιώντας Python και OpenCV:

1. Εξαγωγή πλαισίου:

Αυτό το βήμα περιλαμβάνει την ανάγνωση ενός αρχείου βίντεο και την εξαγωγή μεμονωμένων πλαισίων (εικόνες) σε συγκεκριμένα διαστήματα ή σε όλα τα πλαίσια.

* χρησιμοποιώντας το OpenCV (Python):

`` `Python

Εισαγωγή CV2

def extract_frames (video_path, output_path, διάστημα =1):#InterVal είναι ο παράγοντας παράκαμψης πλαισίου

"" "

Εξάγει πλαίσια από ένα αρχείο βίντεο.

Args:

video_path:Διαδρομή προς το αρχείο βίντεο εισόδου.

output_path:Διαδρομή προς τον κατάλογο όπου θα αποθηκευτούν πλαίσια.

διάστημα:Εξαγάγετε κάθε πλαίσιο n (προεπιλογή είναι 1, για κάθε πλαίσιο).

"" "

vidCap =cv2.videocapture (video_path)

Επιτυχία, εικόνα =vidCap.read ()

Count =0

Ενώ η επιτυχία:

Εάν Count % διάστημα ==0:

cv2.imwrite (f "{output_path}/frame_ {count} .jpg", image) # Αποθήκευση πλαισίου ως αρχείο jpeg

Επιτυχία, εικόνα =vidCap.read ()

count +=1

vidCap.release ()

εκτύπωση (F "καρέ που εξάγονται σε {output_path}")

Παράδειγμα χρήσης:

video_path ="your_video.mp4" # Αντικαταστήστε με τη διαδρομή αρχείου βίντεο

output_path ="πλαίσια" # Αντικαταστήστε με τον επιθυμητό κατάλογο εξόδου σας

extract_frames (video_path, output_path, διάστημα =10) #Extract κάθε 10ο πλαίσιο.

`` `

Πριν εκτελέσετε αυτό, βεβαιωθείτε ότι έχετε εγκαταστήσει το OpenCV (`PIP εγκατάστασης OpenCV-Python '). Δημιουργήστε εκ των προτέρων τον κατάλογο «πλαισίων».

2. Επεξεργασία εικόνας:

Μόλις εξαχθούν τα πλαίσια, μπορείτε να εφαρμόσετε διάφορες τεχνικές επεξεργασίας εικόνας. Ακολουθούν μερικά παραδείγματα χρησιμοποιώντας το OpenCV:

* μέγεθος:

`` `Python

Εισαγωγή CV2

def resize_image (image_path, output_path, πλάτος, ύψος):

img =cv2.imread (image_path)

resized_img =cv2.resize (img, (πλάτος, ύψος))

cv2.imwrite (output_path, resized_img)

#Παράδειγμα

REASIZE_IMAGE ("FRAMES/FRAME_0.JPG", "RESIZED_FRAME.JPG", 320, 240)

`` `

* Grayscaling:

`` `Python

Εισαγωγή CV2

def grayscale_image (image_path, output_path):

img =cv2.imread (image_path)

gray_img =cv2.cvtcolor (img, cv2.color_bgr2gray)

cv2.imwrite (output_path, gray_img)

#Παράδειγμα

grayscale_image ("Frames/Frame_0.jpg", "Gray_frame.jpg")

`` `

* Ανίχνευση άκρων (canny):

`` `Python

Εισαγωγή CV2

def canny_edge_detection (image_path, output_path, κατώφλι1, κατώφλι2):

img =cv2.imread (image_path, cv2.imread_grayscale) #canny εργάζεται στο grayscale

άκρες =cv2.canny (img, κατώφλι1, κατώφλι2)

cv2.imwrite (output_path, άκρες)

#Παράδειγμα

canny_edge_detection ("Frames/Frame_0.jpg", "Edges.jpg", 100, 200)

`` `

* Blurring (Gaussian):

`` `Python

Εισαγωγή CV2

def gaussian_blur (image_path, output_path, ksize):

img =cv2.imread (image_path)

Blurred =cv2.gaussianblur (img, ksize, 0)

cv2.imwrite (output_path, θολή)

#Example - 5x5 πυρήνας

Gaussian_blur ("Frames/Frame_0.jpg", "Blurred.jpg", (5,5))

`` `

Αυτά είναι μόνο μερικά βασικά παραδείγματα. Το OpenCV παρέχει μια τεράστια σειρά λειτουργιών για την επεξεργασία εικόνας, όπως:

* κατώφλι: Μετατρέποντας μια εικόνα σε ασπρόμαυρο με βάση την ένταση των εικονοστοιχείων.

* Φιλτράρισμα: Αφαίρεση θορύβου ή ενίσχυσης χαρακτηριστικών.

* Ανίχνευση αντικειμένων: Προσδιορισμός και εντοπισμός αντικειμένων μέσα στην εικόνα.

* κατάτμηση: Χωρίζοντας την εικόνα σε σημαντικές περιοχές.

* Μετατροπή χώρου χρώματος: Αλλαγή της αναπαράστασης χρώματος της εικόνας (π.χ. RGB σε HSV).

3. Συνδυάζοντας την εξαγωγή πλαισίου και την επεξεργασία εικόνας:

Μπορείτε να συνδυάσετε αυτά τα βήματα για να επεξεργαστείτε κάθε εξαγόμενο πλαίσιο:

`` `Python

Εισαγωγή CV2

εισαγωγή λειτουργικού συστήματος

... (λειτουργία extract_frames από πάνω) ...

def process_frames (video_path, output_path, διάστημα =1):

extract_frames (video_path, output_path, διάστημα)

για όνομα αρχείου στο OS.ListDir (output_path):

Εάν το όνομα FileName.endswith ("JPG"):

image_path =os.path.join (output_path, όνομα αρχείου)

grayscale_image (image_path, os.path.join (output_path, fileName.replace ("jpg", "_gray.jpg")))) #Example:Grayscale Processing

#Παράδειγμα χρήσης:

video_path ="your_video.mp4"

output_path ="processed_frames"

process_frames (video_path, output_path, διάστημα =5)

`` `

Θυμηθείτε να εγκαταστήσετε τις απαραίτητες βιβλιοθήκες (`PIP εγκατάσταση του OpenCV-Python '). Ρυθμίστε τις διαδρομές και τις παραμέτρους του αρχείου όπως απαιτείται για τις συγκεκριμένες απαιτήσεις βίντεο και επεξεργασίας. Για πιο προηγμένες εργασίες, σκεφτείτε να χρησιμοποιήσετε βιβλιοθήκες όπως η εικόνα SCIKIT για πιο εξελιγμένη ανάλυση εικόνων.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα