Свойства медиаформата V4L2_PIX_FMT_SRGGB10 («RG10») следующие:
Каждый компонент цвета хранится в 16-битном слове, где 6 неиспользуемых старших битов заполнены нулями. так что глубина
глубина: 10 (10 бит расширяются до 16 бит с нулями в 6 старших битах) что-то вроде 000000хх ххххххххх
Каждый пиксель состоит из двух цветов R и G, поэтому шаг — это расстояние между пикселями. Если мы хотим перейти от одного пикселя к другому, то длина есть, Rlow + Rhigh + Glow + Ghigh = 8 + 8 + 8 + 8 = (в битах) 32 или 4 байта
смещение для R составляет 0 байт, а G — 2 байта.
У меня есть изображение со следующими свойствами (я предполагаю): я думаю, это изображение похоже на RAW10, мне просто нужно знать, как читать и отображать это изображение с правильными параметрами в Python?
Я прикрепил изображение ниже: https://drive.google.com/file/d/1tmxDUUG4iiuXGHhezZkszmCMx1_uUlY_/view?usp=drive_link
Размеры изображения следующие: ширина=4056, высота=3040
Извините, добавил более подробную информацию о вышеизложенном.
Поделитесь своим изображением — используйте Google Drive или Dropbox и обязательно укажите его ширину и высоту.
Привет, я прикрепил изображение к вопросу
Пожалуйста, укажите также ширину и высоту. Спасибо.
Извините, забыл упомянуть, размеры указал, спасибо!
У меня была попытка прочитать это, и я хотел поделиться тем, что у меня есть на данный момент — возможно, вы или какой-нибудь другой бесстрашный StackOverflower сможете это улучшить:
#!/usr/bin/env python3
import numpy as np
import cv2 as cv
# Define width and height, open file and reshape
w, h = 4056, 3040
d = np.fromfile('SRGGB10test_fin.raw.raw', dtype=np.uint16).reshape((h,w))
# Red is every second row, every second column, starting from 0
R = d[0::2,0::2]
# Green is every second row, every second column, starting from 1
G = d[1::2,1::2]
# Synthesize Blue channel as being equal to Green
B = G
# Stack channels to make BGR image amd save
BGR = np.dstack((B,G,R))
cv.imwrite('result.png', BGR)
Это дает следующее:
А если повернуть и усилить контраст, то получится вот это:
Могу ли я также узнать, как вы увеличили контраст?
Вы можете использовать пример Фреда здесь stackoverflow.com/a/59515897/2836621
Спасибо @Mark Setchell, сдвиг красного и зеленого цвета влево на 6 бит дает больше деталей с точки зрения цвета.
Да, вы можете изменить последнюю строку на cv.imwrite('result.png', BGR<<6)
Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Поскольку сейчас написано, трудно точно сказать, о чем вы спрашиваете.