Nadesłany przez Tomasz Lubiński, 07 września 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.Pobierz pełne rozwiązanie.
Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
sin - C++/Unit1.cpp:
//Tomasz Lubiński (C)2005 //www.algorytm.org //Modulowanie progu sygnalem szumu //--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #pragma hdrstop #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j,p, zakres; float A, alfa, beta; TColor color; Randomize(); p = StrToInt(Form1->Edit1->Text); alfa = StrToFloat(Form1->Edit2->Text); beta = StrToFloat(Form1->Edit3->Text); A = StrToFloat(Form1->Edit4->Text); zakres = StrToInt(Form1->Edit5->Text); //zwykle progowe for (i=0; i<248; i++){ for (j=0; j<230; j++){ color = Form1->Image1->Canvas->Pixels[i][j]; if (p>GetRValue(color)) Form1->Image2->Canvas->Pixels[i][j] = clBlack; else Form1->Image2->Canvas->Pixels[i][j] = clWhite; } } //modulowanie progu sygnalem szumu if (RadioButton1->Checked){ for (i=0; i<248; i++){ for (j=0; j<230; j++){ color = Form1->Image1->Canvas->Pixels[i][j]; if ((p+A*sin(3.14*alfa*i/180)*sin(3.14*beta*j/180))>GetRValue(color)) { Form1->Image3->Canvas->Pixels[i][j] = clBlack; } else { Form1->Image3->Canvas->Pixels[i][j] = clWhite; } } } } else { for (i=0; i<248; i++){ for (j=0; j<230; j++){ color = Form1->Image1->Canvas->Pixels[i][j]; if ((p+random(2*zakres) - zakres)>GetRValue(color)) { Form1->Image3->Canvas->Pixels[i][j] = clBlack; } else { Form1->Image3->Canvas->Pixels[i][j] = clWhite; } } } } } //---------------------------------------------------------------------------