Mat dst;
Mat gray;
Mat image = imread( "you.jpg" );
cvtColor(image, gray, COLOR_BGR2GRAY);
threshold(gray,dst, 170, 255, THRESH_BINARY);
imshow("dst Image", dst);
我正在尝试使“您”更具可读性(使用tesseract进行阅读),如下所示:
如何在不更改阈值(170,255)的情况下获取单词,因为我还有其他图像要处理,阈值如(75,150)不适用于它们。
答案 0 :(得分:0)
也试试这个。它更具“适应性”,即具有较少的“魔术”阈值数,并考虑到背景具有(可能具有)某些颜色渐变。因此,它应该适用于具有不同阈值需求的更广泛的图像集。
输入图像太小,因此进一步的改进(例如,较平滑的字母轮廓)非常有限。希望对您有用。
Mat dst;
Mat gray;
Mat image = imread("you.jpg");
cvtColor(image, gray, COLOR_BGR2GRAY);
cv::GaussianBlur(gray, gray, cv::Size(3, 3), 0);
cv::adaptiveThreshold(gray, dst, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, cv::THRESH_BINARY, 31, -25);
cv::Mat kernel = getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
cv::morphologyEx(dst, dst, cv::MORPH_DILATE, kernel, cv::Point(-1, -1), 1);
imshow("dst Image", dst);
waitKey(0);
这是生成的图像。