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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
#1

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

11.12.2009, 19:05. Просмотров 1942. Ответов 14
Метки нет (Все метки)

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

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

Добавлено через 20 минут
Читал похожую тему
Обработка изображений
читал MSDN в нем искал по словам "struct", "image", "InputFile"... к сожалению ничего не нашел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2009, 19:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод/вывод и обработка изображения (C++):

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Поменять консольный ввод-вывод на файловый ввод-вывод - C++
вот у меня калькулятор как мне сделать что б числа вводились из файла и результат записывался в новый файл ? // ОБРАТНАЯ...

Запись выражений, ввод–вывод информацииЗапись выражений, ввод–вывод информации - C++
Задача 2.1. Пользуясь только операцией умножения, вычислить (A в 7-ой степени) за четыре операции. Задача 2.2. Очистить экран,...

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод) - C++
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Поиск в массиве структур по заданному полю и вывод в алфавитном порядке (файловый ввод/вывод) - C++
Помогите с функцией void runFile() что бы с файла брал и выводил в алфавитном порядке список товаров, хранящихся больше месяца, стоимость...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor.lopatin
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 7
12.12.2009, 12:33  [ТС] #2
Подскажите, пожалуйста, хотя бы пример использования команды LoadImage
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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
2359 / 1054 / 44
Регистрация: 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, а что это вам даст в итоге?
talis
791 / 543 / 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. Возможно, есть более быстрый способ вычитания. Правда, я не представляю, как с такими знаниями вы будете сохранять картинку в файл.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2011, 15:04
Привет! Вот еще темы с ответами:

Обработка изображения - C++
for(unsigned long int i = 0; i&lt;c; ++i) { fread(&amp;tempcolor, 1, sizeof(unsigned char), in); ...

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...

Ввод чисел и обработка. - C++
доброго времени суток всем! не успел ещё разобраться с с++, а домашки уже накопил несданной... вобщем такая вот задача имеется 1 с...

Ввод и обработка матрицы - C++
В общем, завалили меня на экзамене за то, что от моей флешки вирусами заразился комп моего препода. Но суть не в этом. У меня имеются...


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

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

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