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

Создание анаглифического изображения - C++

Восстановить пароль Регистрация
 
Renarki
Сообщений: n/a
21.06.2013, 12:55     Создание анаглифического изображения #1
Доброго времени суток, я пытаюсь написать программу, которая клепает анаглифы из 2-х бмп. От левого изображения копируется красный цвет, от правого синий и зеленые. что-то идет не так, не могу разобраться. Код ниже. Изображение создается, красное ложится идеально, а вот с бирюзовым не все в порядке.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include<iostream>
#include "Windows.h";
 
    struct PIXEL
    {
        unsigned char b;
        unsigned char g;
        unsigned char r;
    };
 
void main()
 
{
PIXEL pixel;
 // Объявляем структуры
     BITMAPFILEHEADER bfh_l;
     BITMAPINFOHEADER bih_l;
         RGBTRIPLE rgb_l;
 FILE *left, *right, *output ;   //3 файла: левый, правый, итог 
 left = fopen("left.bmp","r+b");    //левый глаз (отнять бирюзовый(синий и зеленый))
 right = fopen ("right.bmp", "r+b"); //правый граз (отнять красный)
 output = fopen ("out.bmp","w+b");
 
  fread(&bfh_l,sizeof(bfh_l),1,left);               //Запихиваем файловый заголовок в структуру BITMAPFILEHEADER
  fwrite(&bfh_l, sizeof(bfh_l), 1,output);
  fread(&bih_l,sizeof(bih_l),1,left);               //Запихиваем заголовок изображения в структуру BITMAPINFOHEADER
  fwrite(&bih_l, sizeof(bih_l), 1,output);   
 
        for(int i=0;i< bih_l.biHeight;i++)
        {
                for (int j = 0; j < bih_l.biWidth; j++)
        {    fread(&pixel.b,1,1,right);
             fwrite(&pixel.b,1,1,output);
             fread(&pixel.g,1,1,right);
             fwrite(&pixel.g,1,1,output);
             fread(&pixel.b,1,1,left);
             fread(&pixel.g,1,1,left);
             fread(&pixel.r,1,1,left);
             fwrite(&pixel.r,1,1,output);
              
             
        }
         
        }
                
        fcloseall();
    
 
}
в архиве то, что на входе и то что на выходе.
Вложения
Тип файла: zip Изображения.zip (744.2 Кб, 7 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2013, 12:55     Создание анаглифического изображения
Посмотрите здесь:

C++ сжатие изображения
Скроллинг изображения C++
C++ Создание bmp изображения.(Нужна помощь)
C++ Консоль и изображения
C++ Задача на изображения
считывание изображения C++
C++ Обработка изображения
C++ Создание векторного изображения

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
21.06.2013, 16:19     Создание анаглифического изображения #2
Цитата Сообщение от Renarki Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
{
 fread(&pixel.b,1,1,right); 
fwrite(&pixel.b,1,1,output);
fread(&pixel.g,1,1,right); 
fwrite(&pixel.g,1,1,output); 
fread(&pixel.r,1,1,right); //добавить вот это
fread(&pixel.b,1,1,left); 
fread(&pixel.g,1,1,left); 
fread(&pixel.r,1,1,left); 
fwrite(&pixel.r,1,1,output); 
}
Вы забыли вычитать красный пиксель из правого изображения
Renarki
Сообщений: n/a
21.06.2013, 20:28     Создание анаглифического изображения #3
Как умудрился, спасибо большое за помощь.
Yandex
Объявления
21.06.2013, 20:28     Создание анаглифического изображения
Ответ Создать тему
Опции темы

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