Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.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
Ios OpenCV代码也使用背景色删除文本颜色_Ios_Opencv - Fatal编程技术网

Ios OpenCV代码也使用背景色删除文本颜色

Ios OpenCV代码也使用背景色删除文本颜色,ios,opencv,Ios,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

我正在尝试使用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\u BINARY\u INV,然后反转结果

对于像您这样的较大字母的图片,请尝试增加传递到adaptiveThreshold函数的“块大小”参数

从你的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);

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

Thanx用于回复,但这将在
cv::THRESH_BINARY_INV
中给出相同的结果bcoz文本中的颜色不可见。我现在无法测试它,但如果你反转图像,你将得到白色的txt,其他所有内容都是黑色的,请运行阈值二进制,你将在255中获得文本,在0中获得其他内容重新创建整个内容,我希望它能有所帮助!顺便说一下,我不明白为什么要使用adaptivethreshold而不是简单的threshold?这有什么区别吗?这里不需要任何反转。使用简单阈值和cv::THRESH_二进制作为阈值类型。