Je suis en train de convertir des images prises à partir d'une capture (webcam) et faire un peu de traitement sur eux avec OpenCV, mais je suis un moment difficile ..Python/OpenCV: Conversion d'images prises de la capture
Lorsque en essayant de convertir l'image en niveaux de gris, le programme se bloque. (Python.exe a cessé de travailler)
Voici l'extrait principal de mon code:
newFrameImageGS = cv.CreateImage ((320, 240), cv.IPL_DEPTH_8U, 1)
for i in range(0,5):
newFrameImage = cv.QueryFrame(ps3eye)
cv.CvtColor(newFrameImage,newFrameImageGS,cv.CV_BGR2GRAY)
golfSwing.append(newFrameImageGS)
Quand j'essayer d'utiliser cvConvertScale je reçois l'erreur d'assertion:
src.size() == dst.size() && src.channels() == dst.channels()
ce qui est logique, mais je suis assez confus sur la façon de convertir les images d'entrée de ma webcam dans des images qui peuvent être utilisées par des fonctions comme cvUpdateMotionHistory() et cvCalcOpticalFlowLK()
Des idées? Merci.
MISE À JOUR:
I converti l'image en niveaux de gris manuellement avec ceci:
for row in range(0,newFrameImage.height):
for col in range(0,newFrameImage.width):
newFrameImageGS[row,col] = (newFrameImage8U[row,col][0] * 0.114 + # B
newFrameImage8U[row,col][1] * 0.587 + # G
newFrameImage8U[row,col][2] * 0.299) # R
Mais cela prend un certain temps .. et je ne peux toujours pas comprendre pourquoi cvCvtColor est à l'origine de la programmer pour planter.
Merci Domenic (lol même nom). Je suis tombé sur ce sujet après avoir rencontré cette erreur et passer des heures à essayer de le réparer. –
plantait parce que vous écriviez une matrice de 4 types plus gros (1 flottant = 4 octets, soit 32F = 4 * 8U) – fabrizioM