Info

This question is closed. Reopen it to edit or answer.

I WANT TO BE ONLY EXTRACT TEXT IN GIVE IMAGE... I ATTACHED MY CODE .......... HELP TO SOLVE THE PROBLEM

1 view (last 30 days)
clc
clear all
close all
fontSize = 20;
[I,map]=imread('C:\Users\shankar\Documents\MATLAB\measurement\specklenoise\speck.jpg');
subplot(2,2,1),imshow(I),title('original image', 'FontSize', fontSize),
I=double(I)/255;
v=var(I(:));
J=rgb2gray(I);
%J=imnoise(I,'gaussian',0,v/10);
%subplot(2,2,2),imshow(J),title('NOISE', 'FontSize', fontSize),
%%[m n]= size(J);
subplot(2,2,2),imshow(J),title('gray image', 'FontSize', fontSize),
H=fspecial('gaussian',13,9);
s=imfilter(J,H,'conv');
subplot(2,2,3),imshow(s),title('filter', 'FontSize', fontSize),
%%un sharpening
h=fspecial('unsharp');
shim=imfilter(s,h);
[m n]=size(shim);
%b = imsharpen(s,'Radius',2,'Amount',1);
%subplot(2,2,4),imshow(b),title('sharpe filter', 'FontSize', fontSize),
% global
format long g;
format compact;
fontSize = 20;
% Threshold level parameter alfa:
alfa=0.1;% less than 1/3
%a=imread('C:\Users\shankar\Documents\MATLAB\filtering\image.jpg');
%a=rgb2gray(a);
%[m n]=size(s);
max=max(max(shim));
min=min(min(shim));
t=((max+min)/2);
for i=1:m
for j=1:n
if shim(i,j)<t
b(i,j)=0;
else
b(i,j)=255;
end
end
end
%figure(1);
colormap(gray);
%subplot(2,2,1);imagesc(a);title('box','FontSize', fontSize);
%%subplot(2,2,4);imagesc(b);title('threshold one box','FontSize', fontSize);
%%un sharpening
hi=fspecial('unsharp');
shim1=imfilter(b,hi);
subplot(2,2,4);imagesc(shim1);title('threshold','FontSize', fontSize);
%%psnrr
squaredErrorImage = (double(shim) - double(b)) .^ 2;
mse = sum(sum(squaredErrorImage)) / (m * n);
RMSE = sqrt(mse);
PSNR = 10 * log10( 256^2 / mse);
mad = mean2(abs(double(shim)-double(b)));
message = sprintf('The mean square error is %.2f.\nThe PSNR = %.2f.\n THE RMSE=%.2f .\n THE mad=%.2f',mse, PSNR,RMSE,mad);
msgbox(message);
[Updated from duplicate question]
The current code is:
%%Image segmentation and extraction
%%Read Image
imagen=imread('C:\Users\shankar\Documents\MATLAB\filtering\text.jpg'); %%imagen 365x550 200750 logical
%%Show image
figure(1)
imshow(imagen);
title('INPUT IMAGE WITH NOISE')
%%Convert to gray scale
if size(imagen,3)==3 % RGB image
imagen=rgb2gray(imagen);
end
%%Convert to binary image
threshold = graythresh(imagen);
imagen =~im2bw(imagen,threshold);
%%Remove all object containing fewer than 30 pixels
imagen = bwareaopen(imagen,30);
pause(1)
%%Show image binary image
figure(2)
imshow(~imagen);
title('INPUT IMAGE WITHOUT NOISE')
%%Label connected components
[L Ne]=bwlabel(imagen); %%Ne 1x1 8 double
%%Measure properties of image regions
propied=regionprops(L,'BoundingBox'); %%%%Measure properties of image regions
hold on
%%Plot Bounding Box
for n=1:size(propied,1) %%n is single matrix 1X1
rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2) %%g =green color
end
hold off
pause (1)
%%Objects extraction
figure
for n=1:Ne
[r,c] = find(L==n); %%n is single matrix 1X1 , L = 365x550 , r= 31X1 matrix
n1=imagen(min(r):max(r),min(c):max(c));
imshow(~n1); %% n1 12x7 84 logical
pause(0.5)
imsave();
end
%%CROP
%[area, bbox] = step(hblob, imagen);
  1 Comment
Jan
Jan on 10 Apr 2016
Please format your code using the "{} Code" button. Then explain, what the problem is and the connection to the code.

Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!