У меня есть изображение с очень низкой контрастностью, из которого я хотел бы извлечь текстовый объект. Поскольку у него низкий контраст, я попробовал несколько методов, но ни один из них не дал удовлетворительного результата. Я использовал watershed
для извлечения текстового объекта, но из-за плохой контрастности извлечение не удалось.
Моя программа для watershed
:
I_cropped=imread(strcat('C:\Id\',currentfilename));
I_cropped = rgb2gray(I_cropped);
I_eq = histeq(I_cropped);
figure,imshow(I_eq);
bw = im2bw(I_eq, graythresh(I_eq));
bw2 = imfill(bw,'holes');
bw3 = imopen(bw2, ones(5,5));
bw4 = bwareaopen(bw3, 40);
bw = im2bw(I_eq, graythresh(I_eq));
figure,imshow(bw);
mask_em = imextendedmax(I_eq, 30);
mask_em = imclose(mask_em, ones(5,5));
mask_em = imfill(mask_em, 'holes');
mask_em = bwareaopen(mask_em, 40);
figure,imshow(mask_em);
I_eq_c = imcomplement(I_eq);
figure,imshow(I_eq_c);
I_mod = imimposemin(I_eq_c, ~bw4 | mask_em);
figure,imshow(I_mod);
L = watershed(I_mod);
figure,imshow(label2rgb(L));
Я применил фильтр laplacian
и усилил края, но это не помогло.
Моя цель - извлечь текстовый объект. Какой метод я должен попробовать для такого низкоконтрастного изображения?
Изображение прилагается: