Java 阈值化后变形的矩形块

Java 阈值化后变形的矩形块,java,opencv,image-processing,Java,Opencv,Image Processing,这是我现在拥有的 //Thresholding Mat mat2 = mat.clone(); //mat is origin picture Imgproc.cvtColor(mat2, mat2, Imgproc.COLOR_BGR2GRAY); Imgproc.threshold(mat2, mat2, -1, 255, Imgproc.THRESH_BINARY+ Imgproc.THRESH_OTSU); //Erosion and Dilation Mat element = I

这是我现在拥有的

//Thresholding
Mat mat2 = mat.clone(); //mat is origin picture
Imgproc.cvtColor(mat2, mat2, Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(mat2, mat2, -1, 255, Imgproc.THRESH_BINARY+ Imgproc.THRESH_OTSU); 

//Erosion and Dilation
Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new  Size(2*dilation_size + 1, 2*dilation_size+1));
Imgproc.dilate(mat2, mat2, element);
element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new  Size(2*erosion_size + 1, 2*erosion_size+1));
Imgproc.erode(mat2, mat2, element);
我做了一个程序来检测矩形块。阈值化后,矩形块变得怪异

是否有任何方法可以使阈值产生良好的效果或修复它


更新 从原始图像剪切,dpi较低

固丝后


我会首先尝试应用一些模糊来消除噪声,如果仍然不起作用,则再次测试阈值。有一个OpenCV,其中有如何去噪的示例。

您应该尝试锐化图像。这方面有很多方法,但我不知道在OpenCV中实现了哪些方法

例如,使用GIMP的工具(参数300、5、0),我得到了一个更容易设置阈值的结果: