2017-03-02 93 views
2

我需要在自然图像上查找文本区域。检测文本上的最强点

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))); 

我用更少的噪声,获得百分点以上,但在不同的情况下,我需要减少噪声的点和输出数字为:

input image on left side and on the right side there is output 输入图像是在左侧,输出图像右侧

正如你所看到的,矩形(红线)区域仍有噪点。 (矩形行被添加byme上的Photoshop,输出是相同的,而不红线)

的主要问题是我需要一个透视降噪文本区域矩形这样的(红色矩形图像上):

desired output with rectangle 带有矩形的所需输出

通过找到这个矩形,我可以对图像进行仿射处理以纠正透视问题并使其可用于OCR处理。

+0

是你自己创建一个矩形,还是MATLAB做到这一点?因为在后一种情况下,您可以简单地删除矩形外的所有点。 – Adriaan

+0

@Adriaan我创建了这个矩形来显示你不相关的点,我希望它通过matlab完成 – vslzl

+0

包含噪点的区域看起来不那么密集,所以你可以使用中值过滤器来过滤这些点。当然,在这个过程中,其他地区的一些边界点也会被删除,但是对于您的应用程序而言,这是可以接受的。这里,通过过滤我的意思是不过滤输入图像,但过滤检测到的兴趣点。 – dhanushka

回答

0

我们无法从打印的文本行中检测到边界矩形,因为行可能无法覆盖整个页面区域,或者行检测本身可能不正确,因为我们尚未完成透视校正。

所以我建议放宽了对方法问题:

  1. 检测所有四个页面边缘线这将给页的旋转很好的估计在表的平面(或相机胶卷)。首先正确旋转图像。

  2. 我猜想可能不需要很大的校正来对相机的偏航和倾斜进行成像,因为人们不会从高角度拍摄45度的角度,并且5至10度的偏航/倾斜角色仍然可以识别。此外上下边缘的宽度差从左到右的边缘可用于估计校正因子针对倾斜和偏航以缓解检测算法threashold。

1

与其他地区的点密度相比,嘈杂地区的兴趣点密度看起来很低。密度是指每单位面积的兴趣点数量。假设这个观察结果一般,可以过滤出噪音区域。

我没有matlab,所以代码在opencv

正如我在评论中提到的,我最初认为中值过滤器可以工作,但是当我尝试它时,它没有。所以我尝试了自适应阈值处理,因为它是在我的实现中进行密度计算并拒绝较不密集的区域。请参阅代码中的评论以获得进一步的说明。

imfilt

/* load image as gray scale */ 
Mat im = imread("yEEy9.jpg", 0); 
/* find interest points: using FAST here */ 
vector<KeyPoint> keypoints; 
FAST(im, keypoints, 15); 
/* mark interest points pixels with value 255 in a blank image */ 
Mat goodfeatures = Mat::zeros(im.rows, im.cols, CV_8U); 
for (KeyPoint p: keypoints) 
{ 
    goodfeatures.at<unsigned char>(p.pt) = 255; 
} 
/* density filtering using adaptive thresholding: 
    compute a threshold for each pixel as the mean value of blocksize*blocksize neighborhood 
    of (x,y) minus c */ 
int blocksize = 15, c = 7; 
Mat bw; 
adaptiveThreshold(goodfeatures, bw, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, blocksize, c); 
+0

感谢您的回复,我会尽快尝试,但我现在还有一些问题。你可以在这里看到http://stackoverflow.com/q/42568379/6533467。 – vslzl