3Create
@3Create

Opencv и api камеры?

Уважаемые знатоки Opencv. Помогите с проблемой.

Камера Ximea. У нее есть API для Python.
Хочу начать что-нибудь делать с потоковым видео с камеры...но все никак...
Стандартный пример для Opencv (не получается запустить):
Пробовал перебирать cv2.VideoCapture(0) - 0,1,2,3...
Вылетает ошибка:
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame', gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

А вот код примера API работает, просто открывает окно с камеры и выводит потоковое изображение.
Как приспособить к этому апи изменение цвета, поиск контуров? Хотя бы намекните.
from ximea import xiapi
import cv2

#create instance for first connected camera 
cam = xiapi.Camera()

#start communication
print('Opening first camera...')
cam.open_device()

#settings
cam.set_exposure(60000)

#create instance of Image to store image data and metadata
img = xiapi.Image()

#start data acquisition
print('Starting data acquisition...')
cam.start_acquisition()

try:

    while True:
        #get data and pass them from camera to img
        cam.get_image(img)

        #create numpy array with data from camera. Dimensions of the array are 
        #determined by imgdataformat
        data = img.get_image_data_numpy()

        print('data: ' + str(data))
        cv2.imshow('111', data)

        cv2.waitKey(1)
        
except KeyboardInterrupt:
    cv2.destroyAllWindows()

#stop data acquisition
print('Stopping acquisition...')
cam.stop_acquisition()

#stop communication
cam.close_device()

print('Done.')


Спасибо.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
3Create
@3Create Автор вопроса
и никто не подскажет?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы