Получение значений интенсивности черного и белого из гистограммы - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь получить данные черно-белой гистограммы из цветного изображения. Однако текущая настройка с моей гистограммой показывает только цветовые данные. Я уверен, что это то, что я должен изменить в моей текущей математической настройке.

// Current setup on how to render histogram data to the screen with hist being the calculated histogram
histimg = Mat::zeros(200, 320, CV_8UC3)
int binW = histimg.cols / 16;
Mat buf(1, 16, CV_8UC3);
for( int i = 0; i < 16; i++ )
{
    buf.at<Vec3b>(i) = Vec3b(saturate_cast<uchar>(i*180./16), 255, 255);
}
cvtColor(buf, buf, CV_HSV2BGR);

for( int i = 0; i < 16; i++ )
{
    int val = saturate_cast<int>(hist.at<float>(i)*histimg.rows/255);
    rectangle( histimg, Point(i*binW,histimg.rows),
        Point((i+1)*binW,histimg.rows - val),
        Scalar(buf.at<Vec3b>(i)), -1, 8 );
}

Заранее спасибо за любые советы.

1 Ответ

1 голос
/ 12 августа 2011

Вот два метода:

  1. Создание whiteCount и blackCount переменных. Итерация по всем пикселям и увеличение whiteCount, если пиксель равен (255, 255, 255), и увеличение blackCount, если пиксель равен (0, 0, 0).

  2. Преобразование изображения в оттенки серого, создание гистограммы и просмотр первого и последнего столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...