如何提高otsu阈值输出

时间:2017-01-16 11:21:08

标签: c++ opencv

我在图片上使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td> <input class="checkboxColumn" name="An" value="9FFF8546C9E9A200F7780550E6A4B6F9610B29D3A" type="checkbox"> <input id="AList" name="AList" value="9FFF8546C9E9A200F710550E6694B6F9610B29D3A|Disabled" type="hidden"> </td> </tr> </table>
这是输入图像:


enter image description here

这是输出:

enter image description here

以下是我正在使用的代码:

otsu threshold

问题是输出底部和左侧有黑色区域。我该怎么做才能最小化/删除它?

编辑:

我试过了#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <stdlib.h> #include <stdio.h> #include <iostream> #include <string> #include <math.h> using namespace std; using namespace cv; int main(int argc, char const *argv[]) { title("Text Extractor"); string win_name = "textextractor"; Mat img_a; img_a = imread("../input/test_c.jpg"); Mat img_a_gray; cvtColor(img_a, img_a_gray, CV_BGR2GRAY); Mat img_a_blur; GaussianBlur(img_a_gray, img_a_blur, Size(3, 3), 0, 0); Mat img_a_thres; // adaptiveThreshold(img_a_blur, img_a_thres, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 5, 4); threshold(img_a_blur, img_a_thres, 0, 255, THRESH_OTSU); namedWindow(win_name + "_a", CV_WINDOW_AUTOSIZE); imshow(win_name + "_a", img_a_thres); imwrite("../output/output_a.jpg", img_a_thres); waitKey(0); return 0; } ,我得到了这个:

enter image description here

将尝试将图像分成碎片并单独处理。

对不起,我的不好。前一个是使用自适应过滤。使用equalizeHist()我得到了这个:

enter image description here

otsu的输出没有变化:/

编辑2:完成了Feng Tan算法,它提供了更好的结果,但是文字没有清晰度。

代码:

Otsu

输出:

enter image description here

2 个答案:

答案 0 :(得分:1)

这是我在一些试验和运行后能够获得的。最初我 中位数模糊 原始图像。然后我将 adpative threshold 应用于模糊图像。

这就是我得到的:

<强> 1。使用高斯滤波器的自适应阈值:

enter image description here

<强> 2。使用均值滤波器的自适应阈值:

enter image description here

从这里开始,您可以执行一系列最适合您最终图像的形态学操作。 :)

答案 1 :(得分:0)

您应该尝试使用CLAHE

我在 MATLAB 上尝试使用:

Ia = imread('FHXTJ.jpg');
I = rgb2gray(Ia);
A = adapthisteq(I, 'clipLimit', 0.02, 'Distribution', 'rayleigh');

结果:CLAHE Result

注意:您可以对此图像应用阈值处理。大津现在应该工作正常。

Threshold [65, 152]