Belferek Napisano Grudzień 30, 2018 Udostępnij Napisano Grudzień 30, 2018 Witam, Jako posiadacz kamery IP chciałbym wykorzystać jej możliwości z poziomu własnego programu. Piszę własnego, gdyż to co oferuje producent (sprzedawca, dystrybutor) to woła o pomstę do nieba - kamera XBlitz ISee. Do tej pory korzystam z Pythona i jeśli chodzi o samo sterowanie pan - tilt kamerą, czy też zapis video to skrypty Pythona dają radę, lecz jeśli chodzi o analizę w czasie rzeczywistym strumienia wideo kamery już jest dużo gorzej. Jestem przekonany, że aplikacja napisana w C/C++ byłaby znacznie wydajniejszym rozwiązaniem i tu pojawia się mój brak doświadczenia w programowaniu PC w środowisku Windows. Zainstalowałem Visual Studio 2017 i OpenCV. Czy ktoś by mógł poprowadzić krok po kroku jak w tym środowisku zrealizować ten działający skrypt Pythona? # -*- coding: utf-8 -*- #from collections import deque import cv2 import numpy as np #import urllib face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml') #klasifikator do rozpoznawania obiektow z wczytana baza twarzy cap = cv2.VideoCapture('http://10.0.0.100:8081/videostream.cgi?loginuse=XXXXXXX&loginpas=XXXXXXXX') #DZIAŁA #cap = cv2.VideoCapture(0) #DZIAŁA #cap = cv2.VideoCapture('rtsp://10.0.0.100:10554/udp/av0_0') #NIE DZIAŁA szer=cap.get(cv2.CAP_PROP_FRAME_WIDTH) wys=cap.get(cv2.CAP_PROP_FRAME_HEIGHT) fps=cap.get(cv2.CAP_PROP_FPS) zmniejszenie=1 skala=float(1)/float(zmniejszenie) print szer,"x",wys," fps:",fps while(cap.isOpened()): ret, ramka = cap.read() gray = cv2.cvtColor(ramka, cv2.COLOR_BGR2GRAY) #zmiana zdjęcia (klatki) na skalę szarości gray = cv2.resize(gray, None, fx=skala, fy=skala, interpolation = cv2.INTER_CUBIC) #zmniejszenie if 1: #detekcja==1: #wykrywanie twarzy faces = face_cascade.detectMultiScale(gray, 1.2,3,0,(20,20)) #wyszukiwanie obiektów określonych przez bazę wczytaną w face_cascade for (x,y,w,h) in faces: #rysowanie prostokątów wokół wykrytych twarzy cv2.rectangle(ramka,(x*zmniejszenie,y*zmniejszenie),((x+w)*zmniejszenie,(y+h)*zmniejszenie),(255,0,0),2) cv2.imshow('NetCam',ramka) cv2.imshow('Gray',gray) k = cv2.waitKey(1) if k==27: break cap.release() cv2.destroyAllWindows() exit(0) Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »