removing unwanted pixels

I have an image
in which i need only the text ,i want to remove extra whitr regions around the text.please help

6 Comments

*Everything* is text in *some* writing system.
Jan
Jan on 25 Apr 2012
Manually or automatically? Is the picture printed on paper, in a graphics file or imported to Matlab already? Does the problem concern this picture only or do you have a set of pictures? How much noise is allowed in the pictures? Please, kash, post all relevant details.
kash
kash on 25 Apr 2012
jAN this image is output from another process,i have around 6 pictures in that i need only the text and not others i.e
"Pedestrains Only" which is in english and hindi..
other white regions must be removed
kash
kash on 25 Apr 2012
Walter consider only english and hindi wordings
How can you tell whether it's German/French/Spanish/English by looking at the text alone?
For example: whiskey
Jan
Jan on 22 May 2012
@Sean: A partial solution of your problem: "whiskey" is not German.

Sign in to comment.

 Accepted Answer

Im = imread('Q8.png');
BW = im2bw(Im,graythresh(Im));
bw1 = imdilate(BW,[0 0 0 0 1 1 1 1]);
s = regionprops(bw1,'Area');
k = sort([s.Area],'descend');
bw2 = bwareaopen(bw1, k(2)-1);
bw3 = imfill(bw2,'holes');
bwOut = bw3 & BW;
imshow(bwOut)

More Answers (2)

Maybe IMFILL might work?
A = [1 1 1 1; 1 0 1 0; 1 1 1 0]
imfill(A)
imfill(A) - A

2 Comments

kash
kash on 25 Apr 2012
Teja i need automatic removing
@kash, what 's not automagical about that?

Sign in to comment.

Stephen
Stephen on 22 May 2012
load the image and make it so black==0 and white==1, then...
Words = imclearborder(~IMG)
if you want to crop it, you can try
Words(sum(Words,2)==0,:)=[];
Words(:,sum(Words)==0)=[];

Categories

Community Treasure Hunt

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

Start Hunting!