加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用opencv(Java)的阈值映像

发布时间:2020-12-14 05:52:00 所属栏目:Java 来源:网络整理
导读:我正在与Opencv合作开展项目.我需要将下面的图像转换为阈值图像 我试过这个功能: Imgproc.threshold(imgGray,imgThreshold,255,Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU); 但结果不是很好,如下所示 所以我尝试了adaptiveThreshold函数: Imgproc.adapt
我正在与Opencv合作开展项目.我需要将下面的图像转换为阈值图像

我试过这个功能:

Imgproc.threshold(imgGray,imgThreshold,255,Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU);

但结果不是很好,如下所示

所以我尝试了adaptiveThreshold函数:

Imgproc.adaptiveThreshold(imgGray,Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C,Imgproc.THRESH_BINARY,11,2);

结果是:

我只是期待一个二进制图像与白色背景和黑色文本,没有黑色区域或噪音(我不喜欢使用Photo.fastNlMeansDenoising因为需要很多时间).请帮我解决这个问题.

此外,我正在使用Tesseract进行日语识别,但准确率不佳.你有什么建议可以提供更好的日本OCR,还是提高Tesseract质量的任何方法?

解决方法

adaptiveThreshold是这里的正确选择.只需要一点点调整.
使用这些参数(它是C,但可以很容易地转换为Java)
Mat1b gray= imread("path_to_image",IMREAD_GRAYSCALE);
Mat1b result;
adaptiveThreshold(gray,result,ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY,15,40);

得到的图像是:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读