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

0 Comments

Spondon

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.

3 Comments

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: 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.

Image Analyst
Answer by Spondon on 4 Apr 2014

0 Comments

Spondon

Contact us