|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Città: In volo su una mongolfiera
Messaggi: 530
|
[python] [opencv] chiusura corretta CaptureFromCAM
Ciao forum,
sto trafficando un po' col python e le opencv e credo di avere un problema di rilascio del capture della webcam. Il problema è che, al primo run del programma tutto fila liscio, se rieseguo mi restituisce sempre questo errore: Codice:
Traceback (most recent call last):
File "C:\Users\aaa\workspace\provaEclipse\ricercaHaarCascadeFacceVideo.py", line 63, in <module>
image = DetectFace(img, faceCascade)
File "C:\Users\aaa\workspace\provaEclipse\ricercaHaarCascadeFacceVideo.py", line 16, in DetectFace
grayscale = cv.CreateImage((image.width, image.height), 8, 1)
AttributeError: 'NoneType' object has no attribute 'width'
Il codice è questo, se qualcuno ha qualche info lo ringrazio di già! Codice:
import numpy as np
import cv2.cv as cv
print "opencv versione " + cv2.__version__
import time
def DetectFace(image, faceCascade):
min_size = (20,20)
image_scale = 2
haar_scale = 1.1
min_neighbors = 3
haar_flags = 0
# Allocate the temporary images
grayscale = cv.CreateImage((image.width, image.height), 8, 1)
smallImage = cv.CreateImage(
(
cv.Round(image.width / image_scale),
cv.Round(image.height / image_scale)
), 8 ,1)
# Convert color input image to grayscale
cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)
# Scale input image for faster processing
cv.Resize(grayscale, smallImage, cv.CV_INTER_LINEAR)
# Equalize the histogram
cv.EqualizeHist(smallImage, smallImage)
# Detect the faces
faces = cv.HaarDetectObjects(
smallImage, faceCascade, cv.CreateMemStorage(0),
haar_scale, min_neighbors, haar_flags, min_size
)
# If faces are found
if faces:
for ((x, y, w, h), n) in faces:
# the input to cv.HaarDetectObjects was resized, so scale the
# bounding box of each face and convert it to two CvPoints
pt1 = (int(x * image_scale), int(y * image_scale))
pt2 = (int((x + w) * image_scale), int((y + h) * image_scale))
cv.Rectangle(image, pt1, pt2, cv.RGB(255, 0, 0), 5, 8, 0)
return image
capture = cv.CaptureFromCAM(0)
faceCascade = cv.Load("classificatori/haarcascade_frontalface_alt.xml")
while (cv.WaitKey(15)==-1):
img = cv.QueryFrame(capture)
image = DetectFace(img, faceCascade)
cv.ShowImage("face detection test", image)
# cv.ReleaseCapture(capture)
cv.VideoCapture.release()
# capture.release()
__________________
?p=39814819"]microserver da mezzo watt!, [/url][/b] [/url] - Oggetti in vendita sul mercatino - Trattato positivamente con: 3Dfx4ever, ChriD, markmn89, madmax26, 2 Red 2 Devil, Cubeciro, ecc |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:14.



















