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;
}
}
}
}
}
//---------------------------------------------------------------------------

