Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/88: Рейтинг темы: голосов - 88, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 1
1

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

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

Здравствуйте. В С не программировал никогда. Необходимо реализовать алгоритм обработки изображения на С++ с использованием только стандартных библиотек (курсовая).
1. С помощью каких функций инициализовать изображение, считать параметры пикселя-коды цветов, яркость, координаты?
2. Буду рад ссылкам на литературу на эту тематику (именно обработку изображений), примерам исходников, и вообще каким-либо полезным советам.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2009, 16:29
Ответы с готовыми решениями:

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

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

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

Обработка изображений
Здравствуйте! Помогите пожалуйста. Нужно в какой-либо массив загрузить до 100 изображений, каждое...

6
Эксперт С++
1659 / 1031 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
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
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 1
24.10.2009, 19:05 3
Полезная информация, вот только что значит MSDN
0
Эксперт С++
1659 / 1031 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
25.10.2009, 12:34 4
MSDN
0
0 / 0 / 0
Регистрация: 14.08.2011
Сообщений: 17
15.08.2011, 09:16 5
прочел вашу проблему-не подскажите-вами описанный метод способен повысить качество изображения-картинки?
0
1195 / 822 / 180
Регистрация: 16.03.2008
Сообщений: 3,950
Записей в блоге: 1
15.08.2011, 18:10 6
Так тут нет ни слово про обработку. Исключительно считали, отобразили, сохранили.....
0
Заблокирован
Автор FAQ
02.09.2011, 12:47 7
Цитата Сообщение от Nikke Посмотреть сообщение
Здравствуйте. В С не программировал никогда. Необходимо реализовать алгоритм обработки изображения на С++ с использованием только стандартных библиотек (курсовая).
1. С помощью каких функций инициализовать изображение, считать параметры пикселя-коды цветов, яркость, координаты?
2. Буду рад ссылкам на литературу на эту тематику (именно обработку изображений), примерам исходников, и вообще каким-либо полезным советам.
- здесь мой уже готовый проект по работе с BMP Не вывести картинку из BMP файла на экран
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2011, 12:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обработка .bmp изображений
Помогите пожалуйста с програмкой до этого делал в маткаде) а сейчас надо в билдере по тихоньку...

Загрузка и обработка нескольких изображений
Добрый день. Имеется необходимость загрузить серию изображений(одного размера) для статистической...

Обработка изображений С++
Как получить информацию о RGB-коде цвета каждого пикселя чтобы изменить ее? Какую библиотеку...

Попиксельная обработка изображений
Здравствуйте! Передо мной возникла неподъёмная задача... Самой мне не справиться:( Мне нужно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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