Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

JAVA - Removing noise of processed image OPENCV

I have process an image for OCR, I encountered a problem where the processed image has too much noise. I am a beginner in this type of programming and Im just wondering if you guys can help me denoise it?

Here's the code I have so far

File newFile = new File(mFile);

orig = Imgcodecs.imread(newFile.getAbsolutePath(),Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Mat small = new Mat();
Imgproc.pyrDown(orig,small);
final Size kernelSize = new Size(3, 3);
final Point anchor = new Point(-1, -1);
final int iterations = 3;

Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, kernelSize);

Imgproc.GaussianBlur(small,small, new Size(3,3),0);
Imgproc.erode(small, small,kernel,anchor,iterations);
Imgproc.dilate(small,small,kernel);

Imgproc.adaptiveThreshold(small,small,255,Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C,Imgproc.THRESH_BINARY,45,2);

Mat kernel2 = Imgproc.getGaussianKernel(6,2);

Imgproc.dilate(small,small,kernel2);
Imgproc.erode(small,small,kernel);

Bitmap bm = Bitmap.createBitmap(small.cols(), small.rows(),Bitmap.Config.ARGB_8888);
Utils.matToBitmap(small, bm);

Sample Output

image description