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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 11:23   #1
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию Перевести на Дельфи косинусное преобразование

Здравствуйте,
Перейду сразу к делу, есть задание, написать программку которая делает косинусное преобразование картинки.
загружаю картинку в форму этим кодом (дельфи):

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, ExtCtrls, StdCtrls,jpeg, Menus, Spin;

type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    Image1: TImage;
    SaveDialog1: TSaveDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
uses Filtrarion;

var filtr:Tfilter;

// Загрузка файла
procedure TForm1.N1Click(Sender: TObject);
begin
Image1.Picture.RegisterFileFormat('*.jpg','Jpeg format',TJPEGImage);

OpenDialog1.Execute;
If OpenDialog1.FileName<>'' then
        begin
        Image1.Picture.LoadFromFile(OpenDialog1.FileName);
        Image1.Refresh;
        Image1.Width:=Image1.Picture.Width;
        Image1.Height:=Image1.Picture.Height;

        filtr:=Tfilter.Create(Image1);
        end;
end;
  // Запуск фильтрации
procedure TForm1.N2Click(Sender: TObject);
begin
Image1.Hide;

filtr.MC_Filtration(1,2); // данный код перевести на дельфи

filtr.Mark_Struct;
Image1.Show;
end;

// Сохранение файла
procedure TForm1.N3Click(Sender: TObject);
begin
SaveDialog1.Execute;
If SaveDialog1.FileName<>'' then
        begin
        Image1.Picture.SaveToFile(SaveDialog1.FileName);

        end;
end;

end.
Есть реализация функции
filtr.MC_Filtration(1,2); написанная на Microsoft Visual Web Developer C#

эту реализацию не могу перевести на дельфи (а сдать на C# нет возможности , компы те не поддерживают фреймворка)

реализация на C#
Код:
public void Page_Load(object sender, EventArgs e)
    {
        string fname1 = Server.MapPath("oo.jpg");
        string fname2 = Server.MapPath("o2.jpg");
        
        Bitmap bmp = new Bitmap(fname1);
        
        double n = 32; int r=0;
        double Cu = 0, Cv = 0;
        
        
          for (int x = 0; x < n; x++)
          {
          
            if (x > 0) 
            Cu = 2 / (Math.Sqrt(n * n));
            else
            Cu = 1 / (Math.Sqrt(n * n));
            
            for (int y = 0; y < n; y++)
            
            { 
            
            if (y > 0) 
            Cv = 2 /(Math.Sqrt(n* n));
            else 
            Cv = 1 /(Math.Sqrt(n* n));
            
               Color Fi = bmp.GetPixel(x, y);
               Fi = Color.FromArgb(r=Fi.R, Fi.G, Fi.B);
                
                float xx = (float)x;
                double yy = (double)y;
                
                double rez =  Cu * Cv * r * Math.Cos((Math.PI * (2 * xx + 1) * yy) / 2 * n) * Math.Cos((Math.PI * (2 * yy + 1) * xx) / 2 * n);
                  
                int temp = (int)rez; 
                Color Fout = Color.FromArgb(temp, temp, temp);
                  //Response.Write(temp + "  ");
                  bmp.SetPixel(x, y, Fout);
                }
            }
        
       bmp.Save(fname2);
      Response.Write("<img src='o2.jpg'width='300'/>");
         


    }
У кого есть какие соображения, прошу отписаться.

Благодарю за потраченное время!
MrJenika вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести с СИ++ на СИ stepanov_ivan Помощь студентам 1 02.01.2011 23:08
ПЕРЕВЕСТИ НА c++ daniil2010 Помощь студентам 1 20.04.2010 19:51
перевести Betman Помощь студентам 0 26.10.2009 22:39
перевести из C++ в C AlinAA Фриланс 8 06.03.2009 20:41