algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Aproksymacja półtonowa, sygnał szumu - Implementacja w C/C++
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
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;
                        }
                }
        }
}

}
//---------------------------------------------------------------------------
 
Dodaj komentarz