This must be done in MATLAB. I tried median filter by [5 5], Tried imerode, imdilate but texts are getting worse. I even tried strel with line, square, disk, degreed line, anything you name it. Can't do much. Isn't there a way to do it without damaging the text?
By using Morphological closing you will get a somehow acceptable results:
% Image
img = imread('Noisy_Text.jpg');
% Structuring Element
SE=zeros(3,3);
SE(1,1)=1;
SE(1,3)=1;
SE(2,2)=1;
SE(3,1)=1;
SE(3,3)=1;
Imdilte=imclose(img,SE);
figure();
subplot(1,2,1);
imshow(Imdilte)
subplot(1,2,2);
imshow(img);