How to do cursive character segmentation?

I am doing a project on Cursive character recognition, I wanted to know of steps to perform cursive character segmentation.
I will be obliged if someone can help in elucidating the steps of writing the code
I have tried vertical profiling but the threshold has to change according to every image, Is there any other method, or if Vertical profiling is to be pursued, how can I proceed?
Thank you

5 Comments

I have same question as above. Please answer
Mehak Naz Mangoli, there are hundreds of postings on this topic. See http://www.mathworks.com/matlabcentral/answers/?term=tag%3A%22cursive%22
Sir please help me with complete code for character recognition in cursive handwritten text.
is there any code for cursive handwritten character recognition,
Yes. There is the NIST digit deep learning example. Look for it under the Deep Learning documentation.

Sign in to comment.

Answers (2)

I don't know what you're starting with. Do you have a nice binary image already? Or are you not even to that step? I have some code to segment out characters on a varying background if you have that and can't get a good binary image yet.

3 Comments

My apologies sir for not being specific, hereby i am attaching the code used so far, it has been based on your previous thread on character segmentation
x=imread('thirteen.bmp')
x=im2bw(x)
x=~x;
verticalproj=sum(x,1)
hozproj=sum(x,2);
figure;
subplot(2,2,1);
imshow(x);
subplot(2,2,2);
plot(verticalproj,'b-');
grid on;
hold on;
subplot(2,1,2);
plot(horzproj,'b-');
grid on;
darkpixels=verticalproj<4; % thsi value has been arrived at by trial
[lableledregions noofregions]= bwlabel(darkpixels);
fprintf('number of regions =%d\n',noofregions);
% 0 where there is background, 1 where there are letters
letterLocations = verticalproj > 0;
% Find Rising and falling edges
d = diff(letterLocations);
startingColumns = find(d>0);
endingColumns = find(d<0);
% Extract each region
for k = 1 : length(startingColumns)
% Get sub image of just one character...
subImage = x(:, startingColumns(k):endingColumns(k));
imshow(subImage);
I am getting different subimages based on this but it is not separate characters as expected,
l would like to know how to proceed after this for proper chaarcetr segmentation
It should would be a heck of a lot easier if I had thirteen.bmp.
There are 3 connected components in your image. If you want to get 8, one for each letter, then you'll need to look at the algorithms published and listed here: http://iris.usc.edu/Vision-Notes/bibliography/contentschar.html#OCR,%20Document%20Analysis%20and%20Character%20Recognition%20Systems
23.4.6.3 Handwriting, Cursive Script Recognition Systems
23.4.6.3.1 Cursive Script, Word Level Recognition, Word Spotting, Language Model
23.4.6.3.2 Cursive Script, Text Line Segmentation, Script Line, Segmentation, Text Line Extraction 23.4.6.3.3 On-Line Cursive Script Recognition Systems
23.4.6.4 On-Line Signatures, Online Signatures
23.4.6.4.1 Off Line Signature Analysis
I do not do handwriting OCR nor have any code for you. I have not read any of the papers on it either. My research has never required that I learn how to do cursive OCR, unlike you. Good luck.

Sign in to comment.

2 Comments

Hey....even i am working on the similar project..please help me with the code..
Hi! Spondon i am working the similar project, did u find the solution? i mean are you now able to segment the connected characters if yes then please share the code or algorithm with me, thanks in advance

Sign in to comment.

Categories

Asked:

on 3 Apr 2014

Commented:

on 12 Apr 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!