Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.70
Nikke
Сообщений: n/a
#1

Обработка изображений - C++

24.10.2009, 16:29. Просмотров 10020. Ответов 6
Метки нет (Все метки)

Здравствуйте. В С не программировал никогда. Необходимо реализовать алгоритм обработки изображения на С++ с использованием только стандартных библиотек (курсовая).
1. С помощью каких функций инициализовать изображение, считать параметры пикселя-коды цветов, яркость, координаты?
2. Буду рад ссылкам на литературу на эту тематику (именно обработку изображений), примерам исходников, и вообще каким-либо полезным советам.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2009, 16:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка изображений (C++):

OpenCV/C++ обработка изображений - C++
В общем задача следующая, есть изображение(бинарное), подсчитать кол-во объектов т.е изначально нужно его промаркировать. Использовал...

Обработка изображений - стандартные эффекты фотошопа - C++
Подскажите пожалуйста какую нибудь библиотеку на C\C++ или даже C# с помощью которой можно было бы применять некоторые эффекты для фото...

Обработка изображений: получить координаты центра самой большой красной банки на фотографии - C++
Есть фотография. На фотографии банки красного цвета. Надо получить координаты центра самой большой банки. Кто может посоветовать, как это...

Dev C++ Просмотр изображений - C++
Доброго времени суток. Проблема такая - нужно написать прогу для просмотра изображений средствами DevCpp. Гуглю уже вторые сутки - кто...

C++ и метаданные для изображений - C++
Как можно с помощью языка c++ можно такое реализовать можете посмотреть пожалуйста подсказать, у меня даже идеи нет.

Создать массив изображений - C++
Всем привет. Мне нужно, используя библиотеку opencv, создать массив изображений. Суть такова: есть фотография с людьми. Программа...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
24.10.2009, 18:46 #2
Проще всего работать с файлами BMP, поскольку данные там хранятся в несжатом формате. При работе с другими форматами они просто разжимаются в такой же. Вкратце обрисую основы по самому простому варианту.
В полноцветном формате на каждый пиксель отводится 3 или 4 байта (по одному байту на каналы Red, Green, Blue, 4-й байт на альфа-канал, но его можно пока игнорировать). Эти группы расположены в последовательно: пиксель за пикселем, строка за строкой. Соответственно, при загрузке надо:
- прочитать заголовок BMP (это несложное действие подробно документировано в MSDN) и узнать параметры изображения (ширина, высота, количество информации, отводимой на пиксель); рекомендую работать только с 32-битными изображениями
- выделить требуемое количество памяти, загрузить туда из файла сырые данные; формат BMP вообще-то предписывает хранить строки в обратном порядке, но зачастую в заголовке просто указывают высоту со знаком минус и кладут строки в прямом порядке: в этих нюансах неплохо подразобраться
Для чтения-записи пикселей надо преобразовывать позицию пикселя в линейное смещение в созданном массиве. Это несложно: при оси X слева направо и оси Y сверху вниз (точка [0, 0] расположена в верхнем левом углу изображения и координаты точек всегда неотрицательны) линейным номером пикселя будет x + y*width. Информация о пикселе может быть представлена либо как
C++
1
struct Pixel3 {unsigned char R, G, B;};
, либо как
C++
1
struct Pixel4 {unsigned char R, G, B, A;};
Компоненты красного, зелёного и синего каналов обрабатываются обычно независимо друг от друга. В соответствии с указанным типом данных, их значения могут лежать в пределе от 0 (минимальная яркость) до 255. Таким образом, обработка изображения сводится к работе с одномерным массивом и несложной целочисленной арифметике.
Сохранение полученного изображения тоже достаточно простая задача. В соответствии с тем же MSDN формируешь структуру заголовка файла BMP и заголовка изображения BMP с заполнением нужных полей, и скидываешь их в файл в этом порядке, после чего пишешь сами данные.
1
Nikke
Сообщений: n/a
24.10.2009, 19:05 #3
Полезная информация, вот только что значит MSDN
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
25.10.2009, 12:34 #4
MSDN
0
СЕРГЕЙ2010
0 / 0 / 0
Регистрация: 14.08.2011
Сообщений: 17
15.08.2011, 09:16 #5
прочел вашу проблему-не подскажите-вами описанный метод способен повысить качество изображения-картинки?
0
voral
452 / 433 / 66
Регистрация: 16.03.2008
Сообщений: 2,104
15.08.2011, 18:10 #6
Так тут нет ни слово про обработку. Исключительно считали, отобразили, сохранили.....
0
-=ЮрА=-
Заблокирован
Автор FAQ
02.09.2011, 12:47 #7
Цитата Сообщение от Nikke Посмотреть сообщение
Здравствуйте. В С не программировал никогда. Необходимо реализовать алгоритм обработки изображения на С++ с использованием только стандартных библиотек (курсовая).
1. С помощью каких функций инициализовать изображение, считать параметры пикселя-коды цветов, яркость, координаты?
2. Буду рад ссылкам на литературу на эту тематику (именно обработку изображений), примерам исходников, и вообще каким-либо полезным советам.
- здесь мой уже готовый проект по работе с BMP Не вывести картинку из BMP файла на экран
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2011, 12:47
Привет! Вот еще темы с ответами:

Преобразование графических изображений - C++
преобразование графических изображений. пусть в файле заданы пронумерованные координаты вершин плоской фигуры в двумерной декартовой...

Редактор формул, генерация изображений - C++
Доброго времени суток Сразу приношу извинения, если разместил тему не в том месте. Просто не знаю, в каком разделе писать Нужно...

Урок геометрии, масштабирование изображений - C++
Задача: Есть картинка 100x100 px на которой нарисован смайлик необходимо наложить этот смайлик на другие фотографии, размер которых...

Нужна помощь в обработке изображений! - C++
Всем доброго времени суток! На С++ программирую совсем недавно, нужен хелп по такой теме: нужно прогу написать, которая получает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.09.2011, 12:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru