Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

How to do cursive character segmentation?

Asked by Spondon on 3 Apr 2014
Latest activity Commented on by Image Analyst on 4 Apr 2014

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



2 Answers

Answer by Image Analyst on 3 Apr 2014

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.


Spondon on 4 Apr 2014

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
Image Analyst on 4 Apr 2014

It should would be a heck of a lot easier if I had thirteen.bmp.

Image Analyst on 4 Apr 2014

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:,%20Document%20Analysis%20and%20Character%20Recognition%20Systems Handwriting, Cursive Script Recognition Systems Cursive Script, Word Level Recognition, Word Spotting, Language Model Cursive Script, Text Line Segmentation, Script Line, Segmentation, Text Line Extraction On-Line Cursive Script Recognition Systems On-Line Signatures, Online Signatures 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.

Image Analyst
Answer by Spondon on 4 Apr 2014



Contact us