Чтение и отображение медиаформата RAW10/V4L2_PIX_FMT_SRGGB10 («RG10») в Python

Свойства медиаформата 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

Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Поскольку сейчас написано, трудно точно сказать, о чем вы спрашиваете.

Community 07.10.2023 01:57

Извините, добавил более подробную информацию о вышеизложенном.

Sundar Giridharan 10.10.2023 23:51

Поделитесь своим изображением — используйте Google Drive или Dropbox и обязательно укажите его ширину и высоту.

Mark Setchell 10.10.2023 23:57

Привет, я прикрепил изображение к вопросу

Sundar Giridharan 11.10.2023 00:11

Пожалуйста, укажите также ширину и высоту. Спасибо.

Mark Setchell 11.10.2023 00:16

Извините, забыл упомянуть, размеры указал, спасибо!

Sundar Giridharan 11.10.2023 00:48
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
6
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У меня была попытка прочитать это, и я хотел поделиться тем, что у меня есть на данный момент — возможно, вы или какой-нибудь другой бесстрашный 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)

Это дает следующее:

А если повернуть и усилить контраст, то получится вот это:

Могу ли я также узнать, как вы увеличили контраст?

Sundar Giridharan 11.10.2023 17:00

Вы можете использовать пример Фреда здесь stackoverflow.com/a/59515897/2836621

Mark Setchell 11.10.2023 19:37

Спасибо @Mark Setchell, сдвиг красного и зеленого цвета влево на 6 бит дает больше деталей с точки зрения цвета.

Sundar Giridharan 11.10.2023 22:15

Да, вы можете изменить последнюю строку на cv.imwrite('result.png', BGR<<6)

Mark Setchell 11.10.2023 22:22

Другие вопросы по теме