Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Image processing 图像中文本检测的边缘检测问题_Image Processing_Ocr_Image Segmentation - Fatal编程技术网

Image processing 图像中文本检测的边缘检测问题

Image processing 图像中文本检测的边缘检测问题,image-processing,ocr,image-segmentation,Image Processing,Ocr,Image Segmentation,我正试图在自然图像中的文本检测上引入(使用笔划宽度变换检测自然场景中的文本(2010))。 第一步是边缘检测 我在文本中获得了一些额外的边缘。我应该如何删除这些 原始图像: 我的边缘检测: 在本例中,您可以在“为什么匆忙”中看到额外的边 我在Matlab中尝试了以下步骤: % contrast enhancement I_adjust = imadjust(I); % dilation & erosion se = strel(ones(3,3)); I_dilate = imdi

我正试图在自然图像中的文本检测上引入(使用笔划宽度变换检测自然场景中的文本(2010))。 第一步是边缘检测

我在文本中获得了一些额外的边缘。我应该如何删除这些

原始图像:

我的边缘检测:

在本例中,您可以在“为什么匆忙”中看到额外的边

我在Matlab中尝试了以下步骤:

% contrast enhancement
I_adjust = imadjust(I);

% dilation & erosion
se = strel(ones(3,3));
I_dilate = imdilate(I_adjust, se);
I_final = imerode(I_dilate, se);

% gaussian smoothing
h_mask = fspecial('gaussian');
I_final = imfilter(I_final,h_mask);
figure; imshow(I_final);

BW_canny = edge(I_final,'canny');
figure; imshow(BW_canny);

问题#2: 根据belisarius的建议,我发现meanshift过滤器在文本区域分割方面非常有效。现在我在实现笔划宽度变换时面临另一个问题(请看Epshtein的论文)

笔划宽度适用于像“H”“Y”这样的字符,即使是“S”,因为如果我们沿着渐变方向前进,相应的边通常处于恒定的距离

问题以字母“W”的形式出现。对于第一次上冲程左边缘的一部分,我们得到第二次上冲程的右边缘作为其对应的边缘。而对于另一部分,我们得到了第一次加大冲程的右边缘。这导致了“W”区域笔划宽度的显著变化,导致根据文章将其定义为非文本区域

有人能提出解决方案吗?

在边缘检测之前使用a。Mathematica中的示例:

i = Import["http://img839.imageshack.us/img839/28/whyhurry.jpg"];
iM = MeanShiftFilter[i, 2, .15, MaxIterations -> 10]
EdgeDetect[iM]
产出:

查看for
边缘

您可以调用
edge(I'canny',thresh,sigma)
以获得更多控制。使用低边缘阈值和高边缘阈值进行游戏。我首先尝试降低高阈值:因为内部边缘没有连接到字母边缘,所以渐变大小必须超过字母内部的高阈值


您还可以在边缘检测之前增加
sigma
,使图像更加模糊。(你的高斯模糊是多余的,因为
edge
会为你模糊图像。)

Hi,如果你已经完成了SWT的代码,你能在matlab中共享它吗?你可以打电话给我abidrahman2@gmail.comSinceMathematica中的
EdgeDetection
与OPs不同,您也可以在没有
MeanShiftFilter的情况下发布
EdgeDetection
,以进行比较。