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

Нужна помощь в обработке изображений! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверка на несоответствие типов переменной http://www.cyberforum.ru/cpp/thread3333.html
Есть программа, в которой нужно вводить числа (результат после ввода конкретно здесь не особо важен) Если я заместо числа ввожу какую-либо букву, или символ, несоответствующий числу надо чтобы программа выводила типа - "нет, так нельзя, повторите пожалуйста ввод" Ладно уж с выводом проблем не будет :) Проблема с проверкой. Как проверять на несоответствие? Приравнивать в цикле ко всем...
C++ Определитель матрицы методом Гаусса Киньте плиз код на С++, которая ищет определитель матрицы методом Гауса! Очень нужно. Буду благодарен) http://www.cyberforum.ru/cpp/thread3119.html
C++ Паттерн MVC
Большинсту программистов хорошо ивестен данный паттерн, так что вдаваться в подробности не буду, НО что делать когда моделей несколько, элементы модели связанны соотношением один к одному и разные View могут использовать разное колличество моделей, существует ли расширение данного паттерна до такой ситуации. Для наглядности возьмем пример, есть одна модель - это структура графа, элементы модели -...
Кто работал с OGRE C++
Кто подключал физику AREA physx к OGRE. Нет ли исходника или примеров.
C++ bin-файлы: открытие, чтение, обработка http://www.cyberforum.ru/cpp/thread2241.html
Здравствуйте, подскажите, пожалуйста, команды, с помощью которых файлы с расширением bin можно не только открыть, но и увидеть, что в них находится, чтобы затем обработать их. Во всех книжках я нашла примерно следующее: #include <fstream> #include <iostram> int main() { char dt; std::fstream iofile("filename.bin", std::ios::in | std::ios::out | std::ios::binary); if...
C++ Удалить из матрицы нулевые строки Господа уважаемые программеры! Пожалуйста помогите доделать детскую прогу. Имеется матрица NxM элементов. Нужно удалить методом сдвига все строки, состоящие из нулей. Вот то что писал сам, может пригодится: #include <stdio.h> #include <conio.h> void main(void) подробнее

Показать сообщение отдельно
Kaktus
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 4
25.03.2009, 00:05     Нужна помощь в обработке изображений!
Читать и писать картинки можно либо в ручную, либо с использованием уже готовых механизмов. Многие любят, например, OpenCV. В ATL есть класс CImage, который умеет работать с картинками. Вот пример программы, которая читает картинку из файла и пишет в другой красный канал из первой картинки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <atlstr.h>
#include <atlimage.h>
 
void main ()
{
    CImage in, out;
    in.Load ( "in.jpg" ); //открываем картинку из файла
    int w = in.GetWidth(); //ширина
    int h = in.GetHeight(); //высота
    out.Create ( w, h, in. GetBPP() ); //делаем новую картинку
    for ( int y = 0; y < h; y++ )
        for ( int x = 0; x < w; x++ )
        {
            COLORREF pixel_color = in.GetPixel( x, y ); //цвет пикселя с координатами x, y
            char r = GetRValue ( pixel_color ); //извлечение красного канала
            //GetRValue(...) - это макрос, потому на производительности не сказывается
            //Аналогично можно тащить зеленый и синий каналы
            out.SetPixel( x, y, RGB( r, 0, 0 ) ); //RGB() - макрос, делающий COLORREF
        }
    out.Save ( "out.jpg" );
}
Не совсем понятно, что Вы хотите делать с картинкой. Если бинаризовать, то устанавливаете (или адаптивно подбираете) порог и вперед, если выделить границу горизонта или гор, то поможет обычная производная (более эффективна фильтрация с использованием стандартных масок типа Собеля, Лапласса, Превитт и т.п.)
 
Текущее время: 21:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru