Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //Liczymy jak narysowac obrazek biorac pod uwage wagi i wejscie
- float *wynik(float wagi[][25], float wejscie[25]){
- float *wyjscie = new float[25];
- for(int i = 0; i < 25; i++){
- wyjscie[i] = 0.0;
- for(int j = 0; j < 25; j++){
- wyjscie[i] += wagi[i][j] * wejscie[j];
- }
- }
- //Przepuszczamy przez funkcje "signum" by otrzymac +1 lub -1
- for(int i = 0; i < 25; i++){
- if(wyjscie[i] >= 0){
- wyjscie[i] = 1.0;
- } else {
- wyjscie[i] = -1.0;
- }
- }
- return wyjscie;
- }
- //Narysuj obrazek
- void rysuj(float obrazek[25]){
- int licznik = 0;
- for(int i = 0; i < 5; i++){
- for(int j = 0; j < 5; j++){
- if(obrazek[licznik] == 1.0){
- cout << "* ";
- } else {
- cout << " ";
- }
- licznik++;
- }
- cout << endl;
- }
- cout << endl;
- }
- int main()
- {
- float u1[25]; //Piewszy obrazek
- float u2[25]; //Drugi obrazek
- float u3[25]; //Pierwszy z szumem
- float u4[25]; //Drugi z szumem
- fill(u1, u1+25, -1);
- fill(u2, u2+25, -1);
- fill(u3, u3+25, -1);
- fill(u4, u4+25, -1);
- //Pierwszy
- u1[6] = 1; u1[7] = 1; u1[8] = 1; u1[11] = 1; u1[13] = 1; u1[16] = 1; u1[17] = 1; u1[18] = 1;
- //Drugi
- u2[6] = 1; u2[7] = 1; u2[12] = 1; u2[17] = 1;
- //Pierwszy z szumem
- u3[1] = 1; u3[2] = 1; u3[3] = 1; u3[6] = 1; u3[8] = 1; u3[11] = 1; u3[13] = 1; u3[16] = 1; u3[17] = 1; u3[18] = 1;
- //Drugi z szumem
- u4[2] = 1; u4[7] = 1; u4[12] = 1; u4[17] = 1; u4[22] = 1;
- //Liczymy wagi
- float w[25][25];
- for(int i = 0; i < 25; i++)
- {
- for(int j = 0; j < 25; j++){
- w[i][j] = (1.0/25.0) * (u1[i] * u1[j] + u2[i] * u2[j]);
- }
- }
- cout << "Pierwszy obrazek" << endl;
- rysuj(wynik(w, u1));
- cout << "Drugi obrazek" << endl;
- rysuj(wynik(w, u2));
- cout << "Odszumiony pierwszy obrazek" << endl;
- rysuj(wynik(w, u3));
- cout << "Odszumiony drugi obrazek" << endl;
- rysuj(wynik(w, u4));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment