Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 1.Obrazek: http://www.k.bartecki.po.opole.pl/nsi/lena.tif
- % 2.Przygotowanie
- close all; %zamyka wszystkie okna
- clear; %usuwa zmienne z pamieci
- clc; %czysci okno komend
- % 3.Wyswietlanie informacji o obrazku.
- imfinfo('lena.tif')
- % 4.Wczytywanie obrazka do macierzy
- obraz = imread('lena.tif')
- % 5.Wyswietlenie obrazka
- figure(1)
- colormap gray
- imagesc(obraz, [0 255]);
- % 6.Wyswietlenie wlasciwosci obrazka
- whos obraz
- workspace
- % 7.Tablica blokowa
- nx=4;
- ny=4;
- [X, Y] = size(obraz)
- Nx = X/nx
- Ny = Y/ny
- A = mat2cell(obraz, repmat(ny,1,Ny), repmat(nx,1,Nx));
- % 8.Wlasciwosci zmiennej A
- %whos A
- %disp(A)
- %disp(A{1,1}) %lewa gorna ramka
- %disp(A{128,1}) %lewa dolna ramka
- % 9.Przygotowanie macierzy wzorcow wejsciowych
- P = zeros(nx*ny,Nx*Ny); % tworzymy m acierz zer
- for i=1:Ny
- for j=1:Nx
- P(:, j * i) = reshape(A{i, j}, (nx * ny), 1);
- % tu wstawić odpowiednią instrukcję
- end
- end
- % 10.Definiowanie sieci Kohena
- N = 8; %liczba neuronow
- eta = 0.1; %predkosc uczenia sieci
- net = newc(P, N, eta)
- % 11.Wyswietlanie rozmiarow wsp. wagowych
- disp('Rozmiary macierzy wag przed trenowaniem: ')
- disp(net.IW)
- disp('Zawartość macierzy wag przed trenowaniem: ')
- disp(net.IW{1})
- % 12.Wybor wzorcow uczacych
- nf=Nx*Ny/4; %ile ramek bedzie prezentowanych sieci w trakcie uczenia
- Fi=randperm(Nx*Ny,nf); %wektor zawierajcacy nf losowych numerow ramek
- whos Fi
- Pu=P(:,Fi);
- % 13.Trenowanie sieci
- net.trainParam.epochs = 1;
- net = train(net, Pu);
- % Wsp.wagowe
- disp('Rozmiary macierzy wag po trenowaniu: ')
- disp(net.IW)
- disp('Zawartość macierzy wag po trenowaniu: ')
- disp(net.IW{1})
- % 14.
- W = net.IW{1};
- % 15. symulacja działania
- a = sim(net, P)
- % 16. konwersja
- af = full(a);
- % 17.
- ac = vec2ind(a);
- % 18.
- W = uint8(W);
- ac = uint8(ac);
- % 19.
- save ('obraz.mat', 'W', 'ac', 'Nx', 'Ny', 'nx', 'ny');
- % 20.
- p = 8;
- k = 8;
- m = 64;
- Kr = (Nx * Ny * nx * ny * p) / ((Nx * Ny * k) + (N * nx * ny * m));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement