我需要在自然图像上查找文本区域。检测文本上的最强点
I = rgb2gray(imread('image-name.jpg'));
points = detectHarrisFeatures(I);
imshow(I); hold on;
plot(points);
以上版本的代码检索所有检测到的最强点。
当我改变以“plot
”开头的行这样的:
[m,n] = size(points.Location);
plot(points.selectStrongest(int64((m*2)/3)));
我用更少的噪声,获得百分点以上,但在不同的情况下,我需要减少噪声的点和输出数字为:
正如你所看到的,矩形(红线)区域仍有噪点。 (矩形行被添加byme上的Photoshop,输出是相同的,而不红线)
的主要问题是我需要一个透视降噪文本区域矩形这样的(红色矩形图像上):
带有矩形的所需输出
通过找到这个矩形,我可以对图像进行仿射处理以纠正透视问题并使其可用于OCR处理。
是你自己创建一个矩形,还是MATLAB做到这一点?因为在后一种情况下,您可以简单地删除矩形外的所有点。 – Adriaan
@Adriaan我创建了这个矩形来显示你不相关的点,我希望它通过matlab完成 – vslzl
包含噪点的区域看起来不那么密集,所以你可以使用中值过滤器来过滤这些点。当然,在这个过程中,其他地区的一些边界点也会被删除,但是对于您的应用程序而言,这是可以接受的。这里,通过过滤我的意思是不过滤输入图像,但过滤检测到的兴趣点。 – dhanushka