%% Criar as amostras das imagens

%% Manuseio das pastas

%Selecionar o caractere a ser modificado
caractere = 'G';
numOUletra = 'letras';
% Pasta atual
pastaAtual = pwd;

% Adicionar as subpastas para procurar pelo caractere original
addpath(genpath(pwd));

% Pasta na qual as imagens serão salvas
pastaSalvar = sprintf('%s\\Caracteres\\%s\\%c',pastaAtual,numOUletra,caractere);

%% O que mudar
% Rotacionar
girar = 25; % em graus

% Corroer bordas
corroer = 2;
se = strel('diamond',corroer); 

%% Ler a imagem original da pasta
% Ler o caractere
a = imread(caractere,'jpg');
a1 = im2bw(a);
[m1 n1] = size(a1);
% figure
subplot(4,3,1), imshow(a1);

% Célula para armazenamento
cImagens{1} = a1;

%% Modificar original 

a2 = imrotate(~a1,girar);
[m2 n2] = size(a2);
difm = abs(ceil((m2-m1)/2))+1;
difn = abs(ceil((n2-n1)/2))+1;
a2 = ~a2(difm:end-difm,difn:end-difn);
% a2 = ~imclearborder(a2);
subplot(4,3,2), imshow(a2);

cImagens{2} = a2;

a3 = imrotate(~a1,-girar);
% a3 = ~imclearborder(a3);
[m3 n3] = size(a3);
difm = abs(ceil((m3-m1)/2))+1;
difn = abs(ceil((n3-n1)/2))+1;
a3 = ~a3(difm:end-difm,difn:end-difn);

subplot(4,3,3), imshow(a3);
cImagens{3} = a3;

%%
% Acrescentar ruído
a4 = imnoise(a,'gaussian', 0.32);
a4 = im2bw(a4);

subplot(4,3,4), imshow(a4)
cImagens{4} = a4;

% Rotacionar
a5 = imrotate(~a4,girar);
% a5 = ~imclearborder(a5);
[m5 n5] = size(a5);
difm = abs(ceil((m5-m1)/2))+1;
difn = abs(ceil((n5-n1)/2))+1;
a5 = ~a5(difm:end-difm,difn:end-difn);

subplot(4,3,5), imshow(a5);
cImagens{5} = a5;

a6 = imrotate(~a4,-girar);
% a6 = ~imclearborder(a6);
[m6 n6] = size(a6);
difm = abs(ceil((m6-m1)/2))+1;
difn = abs(ceil((n6-n1)/2))+1;
a6 = ~a6(difm:end-difm,difn:end-difn);

subplot(4,3,6), imshow(a6);
cImagens{6} = a6;

%%
% Corroer as bordas
a7 = imdilate(a1,se);

subplot(4,3,7), imshow(a7)
cImagens{7} = a7;

% Rotacionar
a8 = imrotate(~a7,girar);
% a8 = ~imclearborder(a8);
[m8 n8] = size(a8);
difm = abs(ceil((m8-m1)/2))+1;
difn = abs(ceil((n8-n1)/2))+1;
a8 = ~a8(difm:end-difm,difn:end-difn);

subplot(4,3,8), imshow(a8);
cImagens{8} = a8;

a9 = imrotate(~a7,-girar);
% a9 = ~imclearborder(a9);
[m9 n9] = size(a9);
difm = abs(ceil((m9-m1)/2))+1;
difn = abs(ceil((n9-n1)/2))+1;
a9 = ~a9(difm:end-difm,difn:end-difn);

subplot(4,3,9), imshow(a9);
cImagens{9} = a9;

%%
% Acrescentar ruído e corroer bordas
a10 = imnoise(a,'gaussian', 0.3);
a10 = im2bw(a10);
se2 = strel('diamond',corroer);
a10 = imdilate(a10,se2);
[m10 n10] = size(a10);

subplot(4,3,10), imshow(a10)
cImagens{10} = a10;

% Rotacionar
a11 = imrotate(~a10,girar);
% a11 = ~imclearborder(a11);
[m11 n11] = size(a11);
difm = abs(ceil((m11-m10)/2))+1;
difn = abs(ceil((n11-n10)/2))+1;
a11 = ~a11(difm:end-difm,difn:end-difn);

subplot(4,3,11), imshow(a11);
cImagens{11} = a11;

a12 = imrotate(~a10,-girar);
% a12 = ~imclearborder(a12);
[m12 n12] = size(a12);
difm = abs(ceil((m12-m10)/2))+1;
difn = abs(ceil((n12-n10)/2))+1;
a12 = ~a12(difm:end-difm,difn:end-difn);

subplot(4,3,12), imshow(a12);
cImagens{12} = a12;


%% Salvar na pasta adequada
% 
% for i = 1:length(cImagens)
%     ind = i+36;
%     filename = sprintf('%s\\%c_%d.jpg',pastaSalvar,caractere,ind);
%     im = cImagens{i};
%     im = imresize(im, [150 150]);
%     imwrite(im, filename); 
% end
% 















