如何检测文本阴影

时间:2016-11-06 23:07:21

标签: python opencv image-processing

我正在尝试在图像中检测带阴影效果的文本。背景,文字颜色,文字大小不固定。

Text sample

我尝试过这种方法:

  1. 添加阈值以从类似于矩形的文本中获取形状。 Text after threshold.
  2. 查找矩形轮廓。
  3. 但它并不是我想要的,因为我的图像有不同的背景,字体和文字大小。

    对于带阴影检测的文本,哪种方法最佳?

1 个答案:

答案 0 :(得分:2)

此区域中的所有文字都有一种颜色。您可以使用每种颜色计算像素数,并对此列表进行排序。文本的颜色将位于此列表的底部。当已知文本颜色时,您可以更准确地设置阈值。

def get_count(pixels_in_this_area):
    count = defaultdict(int)
    for pixel_color in pixels_in_this_area:
        count[pixel_color] += 1

count_with_text = get_count(area_with_text)
count_without_text = get_count(area_without_text)
for color in count_without_text.keys():
    if color in count_with_text:
        count_with_text[color] -= count_without_text[color]

count_list = list(count_with_text.items())
count_list.sort(key=lambda: x[1])  # sort by count of pixel with this color
text_color = count_list[-1][0]

enter image description here