OpenCV代码也可以使用背景色去除文本颜色

我正在尝试使用OpenCV清除图像中的文字。 我正在使用下面的代码

cv::Mat original = [MAOpenCV cvMatGrayFromAdjustedUIImage:image]; cv::GaussianBlur(original, original, cvSize(11,11), 0); cv::adaptiveThreshold(original, original, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 5, 2); image = [MAOpenCV UIImageFromCVMat:original]; original.release(); 

这工作正常,但也删除文本颜色。 只是显示大文本的边框。 在这个例子中,我如何保存文本的颜色。

这是原始图像

在这里输入图像说明

这是使用此代码转换的图像

在这里输入图像说明

尝试使用cv :: THRESH_BINARY_INV,然后反转结果!

对于较大字母的照片,例如您的图片,请尝试增加传递到adaptiveThreshold函数的“Block Size”参数。

从你的5

 cv::adaptiveThreshold(original, original, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 5, 2); 

尝试增加它(例如15),直到字母不被挖空。

 cv::adaptiveThreshold(original, original, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 15, 2); 

请记住块大小参数必须是奇数。