как сгенерировать цветовую гистограмму путем объединения двух битов высшего порядка каждого цветового компонента

#matlab #colors #histogram

#matlab #Цвет #гистограмма

Вопрос:

Я хочу использовать matlab для создания цветовой гистограммы. Стандартный способ сделать это — объединить два бита высшего порядка для каждого из значений Red (R), Green (G) и Blue (B) в пространстве RGB, что формирует гистограмму из 64 битов. Я не совсем понимаю процесс объединения. Как этого добиться??

У меня только что появилась идея, но я не уверен, правильно это или нет. Предположим, что цветное изображение A из uint8, мои коды следующие:

 Ir = A(:,:,1);
Ig = A(:,:,2);
Ib = A(:,:,3);
  

Затем я квантовал каждый канал, используя 2 бита. После этого окончательное псевдоцветное изображение B получается простым объединением трех квантованных каналов ( 2^6 = (2^2)(2^2)(2^2) ). Окончательное цветное изображение с 64 ячейками получается следующим образом:

 h = hist(B, 0:63)
  

Комментарии:

1. У вас нет никаких идей? Вы пробовали какой-либо код? Исследовали ли вы какие-либо способы объединения битов вместе?

2. Я проверил несколько учебников. Но я нахожу, что они не очень понятны в этом вопросе. Я не очень хорошо знаком с генерацией цветовой гистограммы

3. Часть гистограммы тривиальна; вы просто вызываете histogram() свои данные (возможно, с количеством ячеек). Но в вашем вопросе говорится, что вам неясна часть конкатенации. Что вы сделали для этой части вашей проблемы?

4. Для изображения в масштабе серого мы можем просто использовать histogram() , imhist() или hist() для генерации гистограммы с любыми ячейками, которые необходимо указать. Когда дело доходит до цветного изображения, оно немного отличается. Он имеет три канала, которые дают три отдельные гистограммы. Вопрос в том, чтобы сформировать 1D гистограмму. В некоторых учебниках говорится, что стандартным способом является процесс конкатенации для формирования гистограммы с 64 ячейками. Я не понимаю, как это делается.

5. Можете ли вы взять 2 бита uint8 переменной и поместить их в определенное местоположение другой uint8 переменной?