C ++ RGB-значения из пикселя, выбранного пользователем с помощью seekg - PullRequest
2 голосов
/ 12 октября 2011

Мне нужно создать программу, которая загружает изображение .raw (общее изображение 100x100), просит пользователя выбрать координату (x, y) в пределах диапазона и отобразить значения красного, зеленого и синего для указанного пикселя. используя функцию seekg. Я в растерянности относительно того, как получить значения RGB из пикселя. Я просмотрел каждую главу учебника, которую мы рассмотрели до сих пор, и нет ничего о восстановлении значений rgb.

Код, запрашивающий координаты и выдающий сообщение об ошибке, если за пределами диапазона работает нормально. Только когда я пытаюсь придумать код для использования поиска / получения значений rgb, я сталкиваюсь с проблемой. Я рассмотрел различные вопросы на сайте, и здесь есть хорошая информация, но я не вижу ответов, использующих seekg для получения значений rgb.

Я не ищу никого, кто бы написал для меня код, я просто ищу руководство и толчок в правильном направлении.

loc = (y * 100 + x) * 3;  // code given by professor with 100 being the width of the image
imageRaw.seekg(loc, ios::beg);

И тогда я в растерянности.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 12 октября 2011

Оттуда вам, вероятно, нужно прочитать три байта, которые будут представлять значения красного, зеленого и синего цветов.Вы не сказали нам достаточно, чтобы быть уверенным в заказе;зеленый почти всегда посередине, но RGB и BGR довольно распространены.

С практической точки зрения, для изображения такого размера вы обычно не хотите использовать seekg вообще.Вы прочитали бы все изображение в память и искали значения в векторе (или массиве, если вы настаиваете), в котором хранятся данные.

...