La vidéo ne peut pas être chargée avec Spyder dans l'environnement de développement Python

-- coding: utf-8 --

import cv2.cv as cv import cv2 import numpy as np

MAX_FEATURES = 500 # RADIUS2 = 25 DETECT_TURM = 20 #Déterminer le nombre d'images à utiliser WINDOW_NAME = u'object tracking'.encode ('cp932')

Condition de terminaison de l'algorithme itératif

criteria = (cv2.TERM_CRITERIA_MAX_ITER | cv2.TERM_CRITERIA_EPS , 20 , 0.03)

class App:

def __init__(self):
    
   
    
    cv2.namedWindow(WINDOW_NAME)
    
    cv2.setMouseCallback(WINDOW_NAME , self.on_mouse)
    
    
    self.src = cv2.VideoCapture('crossing_accident.avi')
    if not self.src.isOpened():

vous ne pouvez pas imprimer import sys sys.exit()

    self.points_now = None

self.detect_count = DETECT_TURM Compter autant que #DETECT_TURM

def auto_detect(self):
    
    
    self.points_now = cv2.goodFeaturesToTrack(self.img_now , MAX_FEATURES , 0.01 , 10)
    
    
    cv2.cornerSubPix(self.img_now , self.points_now , (10 , 10) , (-1 , -1) , criteria)
    
    
def remove_points(self):
    index = 0
    
    while index < len(self.points_now):
        
        if self.status[index] == 0:
            self.points_now = np.delete(self.points_now , index , 0)
            self.status = np.delete(self.status , index , 0)
            index -= 1
            
        index += 1
        
        
def on_mouse(self , event , x , y , flags , param):
        
    if event != cv2.EVENT_LBUTTONDOWN:
        return
            
            
            
    index = -1
    mini = RADIUS2
    count = 0
    if self.points_now != None:
        for point in self.points_now:
            dx = x - point[0][0]
            dy = y - point[0][1]
            r2 = dx * dx + dy * dy
            if r2 <= mini:
                index = count
                mini = r2
                break
            count += 1
                
    if index >= 0:
        self.points_now = np.delete(self.points_now , index , 0)
        self.status = np.delete(self.status , index , 0)
                
    else:
        if self.points_now != None and len(self.points_now) >= MAX_FEATURES:

print u 'Plus aucun point caractéristique ne peut être extrait return

        if self.points_now == None:
            self.points_now = np.array([[[x , y]]] , np.float32)
        else:
            self.points_now = np.append(self.points_now , [[[x , y]]] , axis = 0).astype(np.float32)
                    
                    
        cv2.cornerSubPix(self.img_now , self.points_now , (10 , 10) , (-1 , -1) , criteria)
                
                
def chk_detect(self): 

self.detect_count- = 1 Soustrayez 1 du nombre de DETECT_TURM affecté à # self.detect_count if self.detect_count == 0: #Si self.detect_count devient 0 self.detect_count = DETECT_TURM Renvoie # self.detect_count à la valeur du premier DETECT_TURM self.auto_detect () # Extraire automatiquement les points caractéristiques

def run(self):
    while True:

self.chk_detect () # Pendant la lecture de la vidéo, les points caractéristiques sont automatiquement extraits à chaque nombre d'images spécifié par DETECT_TURM. retval , frame = self.src.read()

        if frame is None:
            break
        
        
        self.img_now = cv2.cvtColor(frame , cv2.COLOR_BGR2GRAY)
        
        
        if self.points_now != None and len(self.points_now) > 0:
            
            
            points_pre = self.points_now
        
        
            self.points_now , self.status , err = \
                cv2.calcOpticalFlowPyrLK(self.img_pre , self.img_now , points_pre , winSize = (10 , 10) , maxLevel = 3 , criteria = criteria , flags = 0 , minEigThreshold = 0.01)
            
            print 'aaaa'
            print len(points_pre)
            print len(self.points_now)
            
            #self.remove_points()
            
            
            #for point in self.points_now:

for i in range (len (points_pre)): Remplacez "0 ~ nombre d'éléments du tableau" dans #points_pre par i, et répétez le processus pendant "0 ~ nombre d'éléments du tableau" diff_x = points_pre [i] [0] [0] --self.points_now [i] [0] [0] # Prend la différence entre les coordonnées x des points dans l'image précédente et les points dans l'image courante. diff_y = points_pre [i] [0] [1] --self.points_now [i] [0] [1] # Prendre la différence entre les coordonnées y des points dans l'image précédente et les points dans l'image courante. point = self.points_now[i] # diff = diff_x * diff_x + diff_y * diff_y # Prenez la distance entre les points de l'image précédente et les points de l'image courante de la même manière que le théorème des trois carrés. if diff> 1 et diff <2: #Si la distance entre le point de l'image précédente et le point de l'image courante est supérieure à 1 et inférieure à 2. cv2.circle (cadre, (point [0] [0], point [0] [1]), 4, (0, 0, 255 --255 * - (1 --diff)), -1, 8, 0) # Dessinez un point. La couleur des points doit changer en fonction de la vitesse de déplacement de l'objet. S'il est tôt, ce sera un point rouge, et s'il est tard, ce sera un point noir. #cv2.circle(frame , (point[0][0] , point[0][1]) , 4 , (0 , 0 , 255*random.random()) , -1 , 8 , 0)

            self.remove_points()
                
                
                
                
        cv2.imshow(WINDOW_NAME , frame)
        self.img_pre = self.img_now.copy()
        
        
        key = cv2.waitKey(33)
        if key == 27:
            break
        elif key == 67 or key == 99:
            self.points_now = None
        elif key == 32:
            self.auto_detect()
            
            
    cv2.destroyAllWindows()
    self.src.release()

if name == 'main': App().run()

Lorsque j'exécute le programme ci-dessus sur Spyder, j'obtiens l'erreur suivante.

runfile('C:/Users/tatomi/Desktop/chase/chasing.py', wdir='C:/Users/tatomi/Desktop/chase') Sortie impossible An exception has occurred, use %tb to see the full traceback.

SystemExit

J'ai l'impression de ne pas avoir pris de pass ou quelque chose comme ça, que dois-je faire?

Recommended Posts

La vidéo ne peut pas être chargée avec Spyder dans l'environnement de développement Python
Environnement de développement en Python
Pour pouvoir utiliser le japonais avec Python dans l'environnement Docker
Outil De-VBA Excel! Éliminez l'outil VBA dans un environnement où Python ne peut pas être installé avec Python
Configurer un environnement de développement Python avec Atom
django ne peut pas être installé dans l'environnement de développement de pipenv + pyenv
Jupyter Notebook 6.0.2 ne peut pas être installé dans l'environnement Python 2.7 créé dans Anaconda
[Environnement de développement] Python avec Xcode [Avec transition d'écran]
Le module Python avec "- (trait d'union)" ne peut pas être supprimé
Introduction de sip-4.14 dans l'environnement python3.2.2 avec MacOS 10.7.4
Commencez avec Python en 30 minutes! Créer un environnement de développement et apprendre la grammaire de base
Changer le module à charger pour chaque environnement d'exécution en Python
Je ne peux pas créer de projet avec Python3.5 (Windows) + django1.7.1.
Créer un environnement de développement Python avec Visual Studio Code
Créer un environnement virtuel avec conda avec Python
[Python] Créer un environnement de développement Django avec Docker
paramètres d'environnement python (virtualenv + pip ne peut pas être effectué)
Enquête lorsque l'importation ne peut pas être effectuée avec python
Travaillez dans un environnement virtuel avec Python virtualenv.
Utiliser Python dans un environnement Anaconda avec VS Code
Impossible d'importer matplotlib etc. dans l'environnement VirtualEnv
Obtenez un environnement de développement Python rapide avec Poetry
À propos de l'environnement de développement Python
environnement virtuel en Python
environnement python avec docker-compose
Construction de l'environnement de développement python2.7
Développement de framework avec Python
Environnement virtuel avec Python 3.6
Développement Slackbot en Python
Virtualiser (isoler) l'environnement de développement IBM i python avec chroot
Exécuter périodiquement un script python avec cron dans un environnement venv
Créez un environnement de développement python avec vagrant + ansible + fabric
[Mémorandum] Les clés japonaises ne peuvent pas être utilisées dans la chaîne de python.
compréhension de liste car operator.methodcaller ne peut pas être utilisé avec python 2.5
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Operators ++, - ne peut pas être utilisé en python (différence de php)
Lorsque l'importation matplotlib.pyplot ne peut pas être effectuée dans l'environnement pyenv-virtualenv
Environnement de développement Python avec Windows + Anaconda3 + Visual Studio Code
Construction de l'environnement de développement de plug-in QGIS3 Python avec VSCode (macOS)
Gérez les packages d'exécution Python et les packages d'environnement de développement avec Poetry
Environnement de développement Python avec Windows + Python + PipEnv + Visual Studio Code
[Redash] La bibliothèque standard ne peut pas être utilisée dans la fonction python
Configurer un environnement de développement Python avec Sublime Text 2
Essayez d'exécuter python dans l'environnement Django créé avec pipenv
Grattage au sélénium en Python
Unifier l'environnement de l'équipe de développement Python en commençant par Poetry
Exploitez LibreOffice avec Python
Installer l'environnement Python avec Anaconda
Grattage avec chromedriver en python
Gérez l'environnement python avec virtualenv
Débogage avec pdb en Python
Solution lorsque l'image ne peut pas être affichée avec tkinter [python]
Gestion de vidéos YouTube avec Python 3
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Gérer les variables d'environnement en Python
Grattage avec du sélénium en Python
Création d'un environnement de développement pour les applications Android - Création d'applications Android avec Python
Créer un environnement python3 avec ubuntu 16.04
Préparer l'environnement de développement Python avec Mac + Windows + VisualStudio Code (version Windows)
Préparer l'environnement python3 avec Docker