Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2012, 18:44   #1
Ria Alva
 
Регистрация: 05.06.2012
Сообщений: 4
Восклицание Фурье преобразование

Ребят, посмотрите пожалуйста, что не так с кодом. Идет прямое преобразование Фурье вроде нормально, а обратное не получается. Что не так написано?
И такая еще проблема, обрабатывает тока маленькие картинки(((

Код:
#include <vcl.h>
#include <iostream>
#include <vector>
#include <map>
#include <math.h>
#pragma hdrstop
#include "func.h"
#include <stdio>
#include "Unit1.h"
#include "Unit2.cpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
double Ref,Imf,Amf;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
 BYTE*LinePtrIm;
 BYTE*LinePtrFur;
 double col;
 int u,v,x,y,S;
 int W=Image1->Picture->Bitmap->Width;
 int H=Image1->Picture->Bitmap->Height;
 S=W*H;
  Image2->Picture->Bitmap->Assign(Image1->Picture->Bitmap);
 double arg;
 
 Ref=0;
 Imf=0;  
 
 
    for (v=0;v<H;v++)
     {
      LinePtrFur=(BYTE*)Image2->Picture->Bitmap->ScanLine[v];
 
       {
 
        for(u=0;u<3*W;u=u+3)
         {
         Ref=0;
         Imf=0;
          for(y=0;y<H;y++)
            {
             LinePtrIm=(BYTE*)Image1->Picture->Bitmap->ScanLine[y];
             for(x=0;x<3*W;x=x+3)
              {
               col=LinePtrIm[x];
 
               arg=M_PI*2*(u*x*H+v*y*W)/S;
               Ref=Ref+col*cos(arg);
               Imf=Imf+col*sin(arg);
              }
            }
 
 
         Amf=pow((Ref*Ref+Imf*Imf),0.5);
 
         Amf=log(1+Amf);
 
         LinePtrFur[u]=Amf;
         LinePtrFur[u+1]=Amf;
         LinePtrFur[u+2]=Amf;
         }
       }
     }
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if (OpenPictureDialog1->Execute())
 Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
Ria Alva вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование Фурье на C# MypkAnn C# (си шарп) 4 04.02.2015 22:46
Быстрое преобразование Фурье HarleyDav Помощь студентам 0 09.01.2012 08:37
Дискретное преобразование фурье Petrow Помощь студентам 5 17.11.2011 23:27
Двумерное преобразование Фурье marina_sergina Помощь студентам 0 08.05.2011 20:23
Преобразование Фурье fina Помощь студентам 0 17.06.2010 14:00