Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用opencv(Java)的阈值图像_Java_Android_Opencv_Image Processing_Tesseract - Fatal编程技术网

使用opencv(Java)的阈值图像

使用opencv(Java)的阈值图像,java,android,opencv,image-processing,tesseract,Java,Android,Opencv,Image Processing,Tesseract,我正在为我的项目使用Opencv。我需要将下面的图像转换为阈值图像 我尝试了这个功能: Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU); 但结果并不好,正如你在下面看到的 因此我尝试了自适应阈值函数: Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRE

我正在为我的项目使用Opencv。我需要将下面的图像转换为阈值图像

我尝试了这个功能:

Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU); 
但结果并不好,正如你在下面看到的

因此我尝试了
自适应阈值函数

Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2); 
结果是:

我只希望一个只有白色背景和黑色文本的二值图像,没有黑色区域或噪声(我不喜欢使用
Photo.fastnl意味着去噪,因为这需要很多时间)。请帮我解决这个问题


另外,我正在使用
Tesseract
进行日语识别,但准确率不高。您对提高日语的OCR或提高Tesseract质量的方法有何建议

adaptiveThreshold
是这里的正确选择只需稍作调整。 使用这些参数(它是C++,但是你可以很容易地翻译成java)

生成的图像是:


我很久没有使用openCV了,所以我可能在胡说八道。你不能搜索轮廓,轮廓外的东西都是白色,轮廓内的东西都是黑色吗?根据输入的类型,结果图像应该非常清晰和准确。非常感谢。这对我来说非常合适。我只是不明白最后一个参数(40)的意思。你能解释一下吗?@BeeBee这是一个从平均值中减去的常数。阅读更多信息,可以在这里向我展示java代码,即使在kotlin中也可以,需要从image@Miki我无法在AndroidStudio中解析Mat1b,也没有任何建议。我正在使用OpenCV4.2。你能建议如何/在哪里解决这个问题吗?
Mat1b gray= imread("path_to_image", IMREAD_GRAYSCALE);
Mat1b result;
adaptiveThreshold(gray, result, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 40);