Тайлер:
Я не уверен, что вы пытаетесь сделать ... У меня есть несколько догадок.
если вы пытаетесь просто прочитать изображение с веб-камеры, подключенной к вашему компьютеру, тогда этот код должен работать:
import cv
cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)
while True:
img = cv.QueryFrame(capture)
cv.ShowImage("camera", img)
if cv.WaitKey(10) == 27:
break
вы пытаетесь транслировать видео с интернет-камеры?если это так, вы должны проверить этот другой пост: opencv-with-network-camera
Если по какой-то причине вы не можете сделать это каким-либо из этих способов, то, возможно, вы можете просто как-то сохранитьизображение на жестком диске, а затем загрузите его в вашу программу opencv, выполнив простой cvLoadImage (конечно, этот способ намного медленнее).
другой подход - установить пиксели нового изображения вручную, прочитав каждое из значений из byteString, выполнив что-то вроде этого:
for(int x=0;x<640;x++){
for(int y=0;y<480;y++){
uchar * pixelxy=&((uchar*) (img->imageData+img->widthStep*y))[x];
*pixelxy=buf[y*img->widthStep + x];
}
}
это также медленнее, но быстрее, чем использованиежесткий дискВ любом случае, надеюсь, что это поможет, вам следует также указать, какую версию opencv вы используете.