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

Ввод/вывод и обработка изображения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
11.12.2009, 19:05     Ввод/вывод и обработка изображения #1
Доброго времени суток.
Помогите, пожалуйста.
Поставили задачу взять 2 кадра (2 изображения формата BMP или JPG) и вычесть одно из друго.
Работаю Visual Studio 2008 на С/С++. Весьма никчемный из меня программист.
Подскажите,
- какие библиотеки дописывать под #include <iostream>
- какие функции использовать для вызова изображения (+ формат указания пути к файлу в теле функции)
- какие функции использоваться для преобразования изображения в матрицу отсчетов
- если возможно, живой пример того как преобразовать изображение в матрицу и обратно

Заранее человеческое спасибо

Добавлено через 20 минут
Читал похожую тему
Обработка изображений
читал MSDN в нем искал по словам "struct", "image", "InputFile"... к сожалению ничего не нашел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 12:33  [ТС]     Ввод/вывод и обработка изображения #2
Подскажите, пожалуйста, хотя бы пример использования команды LoadImage
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
12.12.2009, 13:20     Ввод/вывод и обработка изображения #3
C++
1
2
3
4
5
6
7
HANDLE LoadImage(          HINSTANCE hinst,
    LPCTSTR lpszName,
    UINT uType,
    int cxDesired,
    int cyDesired,
    UINT fuLoad
);
оно?
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 13:58  [ТС]     Ввод/вывод и обработка изображения #4
C++
1
2
3
4
5
6
7
8
# include <iostream>
# include <windows.h> // в MSDN написано, "Header   &nbsp;Declared in Winuser.h, include Windows.h" решил дописать
 
using namespace std;
void main ()
{
 HADLE LoadImage (NULL, "C:\\lena.bmp", IMAGE_BITMAP, LR_DEFAULTSIZE | LR_LOADFROMFILE);
}

Получил ошибки
errorC2078: too many initializers
errorC2440: 'initialiing' cannot convert from 'int' to "HADLE"
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
12.12.2009, 14:00     Ввод/вывод и обработка изображения #5
Цитата Сообщение от egor.lopatin Посмотреть сообщение
HADLE LoadImage (NULL, "C:\\lena.bmp", IMAGE_BITMAP, LR_DEFAULTSIZE | LR_LOADFROMFILE);
ты остальные параметры менять на пробовал?
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 14:08  [ТС]     Ввод/вывод и обработка изображения #6
дописал параметр LR_DEFAULTCOLOR
Исчезло errorC2440: 'initialiing' cannot convert from 'int' to "HADLE"
первая ошибка осталась.
мозг начинающего иссох
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
12.12.2009, 14:10     Ввод/вывод и обработка изображения #7
egor.lopatin, выложи весь

Добавлено через 10 секунд
код
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 14:15  [ТС]     Ввод/вывод и обработка изображения #8
C++
1
2
3
4
5
6
7
8
# include <iostream>
# include <windows.h> // в MSDN написано, "Header   &nbsp;Declared in Winuser.h, include Windows.h" решил дописать
 
using namespace std;
void main ()
{
 HADLE LoadImage (NULL, "C:\\lena.bmp", IMAGE_BITMAP, LR_DEFAULTSIZE, LR_LOADFROMFILE, LR_DEFAULTCOLOR);
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
12.12.2009, 14:25     Ввод/вывод и обработка изображения #9
egor.lopatin, ты попробуй один из параметров удалить
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 14:53  [ТС]     Ввод/вывод и обработка изображения #10
Удалял поочередно три последний параметра по одному и парами, оставляя только один.
Ошибка не ушла
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
12.12.2009, 15:00     Ввод/вывод и обработка изображения #11
egor.lopatin,
ты три раза повторил слово HADLE

мозг начинающего иссох
у тебя проблема не с мозгом, а с глазами. посмотри уже в msdn, как правильно называется тип возвращаемого результата.
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 15:15  [ТС]     Ввод/вывод и обработка изображения #12
C++
1
2
3
4
5
6
7
8
# include <iostream>
# include <windows.h> // в MSDN написано, "Header   &nbsp;Declared in Winuser.h, include Windows.h" решил дописать
 
using namespace std;
void main ()
{
 HADLE LoadImage ("C:\\lena.bmp");
}
а вот если так- то компилится без ошибок))))
вот бы еще узнать подгрузил ли он на самом деле....
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
12.12.2009, 17:43     Ввод/вывод и обработка изображения #13
egor.lopatin, может всё таки напишешь разок HANDLE
СЕРГЕЙ2010
0 / 0 / 0
Регистрация: 14.08.2011
Сообщений: 17
15.08.2011, 11:37     Ввод/вывод и обработка изображения #14
egor.lopatin, а что это вам даст в итоге?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2011, 15:04     Ввод/вывод и обработка изображения
Еще ссылки по теме:

C++ Обработка изображения
C++ Вывод изображения на экран
C++ Ввод и обработка матрицы
Как происходит ввод и обработка символов из консоли? C++
Обработка матрицы, каждый элемент которой задает яркость пикселя изображения C++

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

Или воспользуйтесь поиском по форуму:
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
15.08.2011, 15:04     Ввод/вывод и обработка изображения #15
egor.lopatin, это делается так

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <windows.h>
 
int main()
{
    HBITMAP btmp1 = LoadImage ( NULL, "img1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
 
    if( !btmp1 )
    {
       printf( "error loading first bitmap\n" );
       return -1;
    }
 
    HBITMAP btmp2 = LoadImage ( NULL, "img2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
 
    if( !btmp2 )
    {
       printf( "error loading second bitmap\n" );
       return -1;
    }
 
    //Оба изображения загружены
 
    return 0;
}
Далее для чтения пикселя используется GetPixel, а для записи - SetPixel. Возможно, есть более быстрый способ вычитания. Правда, я не представляю, как с такими знаниями вы будете сохранять картинку в файл.
Yandex
Объявления
15.08.2011, 15:04     Ввод/вывод и обработка изображения
Ответ Создать тему
Опции темы

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