function [bw_rot,raw_rot] = rotace_hrany (bw_dil,lin_raw)
%funkce detekuje boční hrany destičky pomocí Houghovy transformace
%na základě úhlu theta provede rotace snímku

%% MORFO OPERACE - vytvoří z kruhů solidní blok
SD = strel('disk',10);
SS = strel('square',40);

bwSD = imdilate(bw_dil,SD); %imshow(bwm);
bwSS = imdilate(bwSD,SS); %imshow(bwm);

%% DETEKCE BOČNÍCH HRAN do úhlu 45°, předokládá se snaha fotit "normálně"
hrany1 = edge(bwSS,'Canny'); %hranový detektor

%Houghova transformace
[H,theta,rho] = hough(hrany1,'Theta',-45:45);           %jen boční hrany v rozsahu theta -45 a 45
P = houghpeaks(H,2,'threshold',ceil(0.5*max(H(:))));    %bereme 2 nejsilnější peaky (více bych ji v obraze po předchozí selekci nemělo být)
lines = houghlines(hrany1,theta,rho,P,'MinLength',400,'FillGap',300);%selekce a vyplnění přímek

%přeskládá strukturu dle úhlu theta - kontrolní účel
%[tmp ind]=sort([lines.theta]); 
%lines=lines(ind);

%% ZOBRAZENÍ HRAN (source: Matlab Help) - defaultně vypnuté, jen pro kontrolu
% figure, imshow(hrany1), hold on
% max_len = 0;
% for k = 1:length(lines)
%    xy = [lines(k).point1; lines(k).point2];
%    plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
%    plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow'); %zvýraznění prvního bodu
%    plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red'); %zvýraznění druhého bodu
%    len = norm(lines(k).point1 - lines(k).point2);
%    if ( len > max_len) %nejdelší přímka
%       max_len = len;
%       xy_long = xy;
%    end
%    line_string = sprintf('%i',k);  
%    text(xy(1,1),xy(1,2),line_string,'color','w','HorizontalAlignment', 'center','VerticalAlignment', 'top'); %pořadí v detekci
% end
% plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','red');


%% ROTACE SNÍMKU - pokud hrany destičky nejsou rovnoběžné s okraji snímku
%stačí rotovat snímek tak, aby nebyla ovlivněna detekce jamek, není nutná
%naprostá rovnoběžnost destičky s okraji snímku

uhel = lines(1).theta; %úhel theta jedné z bočních hran destičky (obě hrany mají přibližně stejný úhel theta)

if abs(uhel) >= 2 %prahování úhlu, případně možno zvolit i vyšší úhel (dokud nerovnoběžnost destičky a hran snímku neovlivní detekci jamek)
    bw_rot = imrotate(bw_dil,uhel,'crop');  %rotace bw snímku
    raw_rot = imrotate(lin_raw,uhel,'crop');%rotace original snímku
else
    bw_rot = bw_dil;
    raw_rot = lin_raw;
end

end