Guardar el resultado de la segmentación automáticamente - Matlab Arabic OCR

Código de segmentación completo:

% Preprocessing + Segmentation
 % // Original Code of Segmentation by Soumyadeep Sinha with several modification by Ana//
 % Saving each  single segmented character as one file 
    function [s] = seg (a)

myFolder = 'D:\1. Thesis FINISH!!!\Simulasi I\Segmented Images';
% a = imread ('adv1.png');

% Binarization %
level = graythresh (a);
b = im2bw (a, level);

% Complement %
c = imcomplement (b);

% Morphological Operation - Dilation %
se = strel ('square', 1);
% se = strel('rectangle', [1 2]);
r = imerode(c, se); 

i=padarray(r,[0 10]);
% i=padarray(c,[0 10]);

% Morphological Operation - Dilation %
% se = strel('rectangle', [1 2]);
% se = strel ('square', 1);
% i = imerode(r, se); 

%VP
verticalProjection = sum(i, 1);
set(gcf, 'Name', 'Segmentation Trial', 'NumberTitle', 'Off') 
subplot(2, 2, 1);imshow(i); 
subplot(2,2,3);
plot(verticalProjection, 'b-');
grid on;
t = verticalProjection;
t(t==0) = inf;
mayukh=min(t)
% 0 where there is background, 1 where there are letters
letterLocations = verticalProjection > mayukh; 
% Find Rising and falling edges
d = diff(letterLocations);
startingColumns = find(d>0);
endingColumns = find(d<0);

% Extract each region
y=1;
for k = 1 : length(startingColumns)
  % Get sub image of just one character...
  subImage = i(:, startingColumns(k):endingColumns(k)); 
   % im = subImage;
   s = subImage;
   % figure, imshow (s);

   % Normalization %
   [p] =  normalization (s); 

%  se = strel ('square', 1);
%  se = strel('rectangle', [2 1]);
%  im = imdilate(p, se); 

   % Morphological Operation - Thinning %
   im = bwmorph(p,'thin',Inf);

% Save %
[L,num] = bwlabel(im);
for z= 1 : num
    bw= ismember( L, z);
    % Construct filename for this particular image.
    baseFileName = sprintf('data.%d.png', y);
    y=y+1;
    % Prepend the folder to make the full file name.
    fullFileName = fullfile(myFolder, baseFileName);
    % Do the write to disk.
    imwrite(bw, fullFileName);
    subplot(2,2,4);
    pause(1);
    imshow(bw);
end
% y=y+1;
end;
s = (im);
He cargado imágenes en el espacio de trabajo de matlab para hacer un proceso de segmentación de caracteres para imágenes de palabras. Ej: data (1) .png, data (2) .png, y así sucesivamente.El proceso de segmentación dará imágenes múltiples como salida para cada personaje segmentado. Las imágenes de Word contienen varios caracteres, por lo que la salida también variará. Por ejemplo, la salida del resultado segmentado para image = data (1) .png se convierte en data (1) _1.png, data (1) _2.png, data (1) _3.png y data (2) .png se convierten en data (2) _1.png, datos (2) _2.png y así sucesivamente.

Imágenes de palabras

Últimamente, lo hice manualmente, pero el conjunto de datos será más grande y perderá el tiempo de ejecutar la segmentación de las imágenes una por una. ¿Hay alguna sugerencia, cómo debo hacer para que sea simple y más eficaz? Obtenga el resultado para cada personaje segmentado (en secuencia).

    % Save %
    [L,num] = bwlabel(im);
    for z= 1 : num
    bw= ismember( L, z);
    % Construct filename for this particular image.
    % Change basefilename for each word images %
    baseFileName = sprintf('data (1).%d.png', y);
    y=y+1;
    % Prepend the folder to make the full file name.
    fullFileName = fullfile(myFolder, baseFileName);
    % Do the write to disk.
    imwrite(bw, fullFileName);
    subplot(2,2,4);
    pause(1);
    imshow(bw);end

después de usar este código, crea un buen resultado, pero solo para un dato, los siguientes datos reemplazarán los datos recientes. Entonces, últimamente, para cada imagen de palabra, ejecuto el proceso de segmentación uno por uno y cambio esta parte para obtener un resultado apropiado. Cambie sprintf ('data (1).% D.png', y) para que sea sprintf ('data (2).% D.png', y); y así.

% Change basefilename for each word images %
    baseFileName = sprintf('data (1).%d.png', y);
    y=y+1;

El resultado que espero. Espero poder obtenerlo automáticamente.

Cualquier ayuda será muy apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta