code for horizontal projection profile of an image

hello friends, to perform skew detection and correction, iam using horizontal projection profile. so i need the code for horizontal projection profile to segment lines and i need the code for horizontal projection profile of each word, for image containing handwritten characters.

Answers (4)

First pick an algorithm from section 23 of the Vision Bibliography: http://iris.usc.edu/Vision-Notes/bibliography/contents.html. Then come back here with your MATLAB coding questions.
luong v
luong v on 2 Dec 2015
Edited: luong v on 2 Dec 2015
Hi every one, I have a license plate, now I want to use horizontal projection to segment the license plate into two lines. Please help me, Thanks you

1 Comment

verticalProjection = mean(grayImage, 2);
horizontalProjection = mean(grayImage, 1);

Sign in to comment.

how to plot horizontal projection horizontally ? I didn't get idea.

5 Comments

h_proj = any(any(YourImage,1),3);
stairs(h_proj);
Did you see my comment above where I go the mean of each row by averaging all the columns together:
verticalProjection = mean(grayImage, 2);
This is projecting horizontally. If you prefer the sum rather than the average, use sum() rather than mean():
verticalProjection = sum(double(grayImage), 2);
For the purpose of determining occupancy for segmentation of text, you only care if there is or is not data in the row or column, in which case the any() and stairs becomes appropriate. mean() would not be appropriate in such a case: if there only happened to be a single ascender or descender present then the mean would be effectively the background value, but you do not want to cut at such locations for text segmenting.
But what if, in handwriting, descenders in one row dip below some risers in the row below? Those two rows would not be detected as two rows with any(). And with sum() and mean(), the descenders would get clipped. So to be really robust, you'd need something more sophisticated than these simple functions. But I can't spend the time to develop a robust OCR program for anyone.
You need the ascenders and descenders for proper classification of the characters. Horizontal projection is simply not sufficient for the case where you do not have clean separation between the lines.

Sign in to comment.

Categories

Asked:

on 6 Aug 2012

Commented:

on 23 Jan 2016

Community Treasure Hunt

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

Start Hunting!