Я пытаюсь просмотреть вывод камеры Omnivision OV7251 в OpenCV 4.2.0 Python 3.5.6. Вывод с камеры - это 10-битные необработанные данные в градациях серого, которые, как я считаю, выровнены по правому краю в 16-битных словах.
Когда я использую этот код OpenCV:
import cv2
cam2 = cv2.VideoCapture(0)
cam2.set(3, 640) # horizontal pixels
cam2.set(4, 480) # vertical pixels
while True:
b, frame = cam2.read()
if b:
cv2.imshow("Video", frame)
k = cv2.waitKey(5)
if k & 0xFF == 27:
cam2.release()
cv2.destroyAllWindows()
break
Это изображение, которое я получаю :
Предположительно, происходит то, что OpenCV использует неправильный процесс для преобразования из 10-битного raw в RGB, полагая, что это своего рода YUV или что-то в этом роде.
Есть ли способ, которым я могу либо:
- Сказать OpenCV правильный формат данных камеры, чтобы она правильно выполняла преобразование?
- Получить необработанных данных камеры, чтобы я мог выполнить преобразование вручную?