резкость изображения для обнаружения краев / линий в штампованном объекте «X» на бумаге

Я использую Python и OpenCV. Моя цель - обнаружить кусочки в форме буквы «Х» на изображении, полученном с помощью малиновой пи-камеры. Проект состоит в том, что у нас есть предварительно напечатанные платы крестики-нолики, и мы должны изображать доску каждый раз, когда на нее кладется новая деталь (с чернильными штампами). Затем в выводе указывается, какой тип фигуры, если таковой имеется, находится в каком разделе платы крестики-нолики.

Здесь у меня есть линии, которые я обнаружил на изображении зеленым цветом:

Как вы можете видеть, фигуры в форме буквы X, похоже, не так легко обнаружить. Только одна строка на некоторых марках "видна".

Вот как выглядит определение края после фильтров:

Мой метод определения фигуры в форме буквы «X» заключается в проверке в каждой секции любых линий с не горизонтальным / вертикальным наклоном. Моя проблема в том, что штампы в форме буквы X не являются идеальными линиями; таким образом, мой код едва улавливается.

Я попытался применить фильтр нерезкости, используя выравнивание гистограммы и просто используя оттенки серого для обнаружения краев. Ни один из них не обнаружил более 1 строки в любой форме "X".

Примерно то, что я делаю:

#sharpen image using blur and unsharp method
gaussian_1 = cv2.GaussianBlur(image, (9,9), 10.0)
unsharp_image = cv2.addWeighted(image, 1.5, gaussian_1, -0.5, 0, image)
#apply filter to find stamp pieces, histogram equalization on greyscale
hist_eq = cv2.equalizeHist(unsharp_image)
#edge detection (input,threshold1,threshold2,size_for_sobel_operator)
edges = cv2.Canny(hist_eq,50,150,apertureSize = 3)
#find lines (edges,min_pixels,min_degrees,min_intersections,lineLength,LineGap)
lines = cv2.HoughLinesP(edges,1,np.pi/180,50,minLineLength,maxLineGap)

Только я применяю это к каждому из 9 разделов доски в отдельности, но это не очень важно.

TLDR: Как я могу сделать свое изображение таким, чтобы мои линии были «четкими» и резкими? Я хотел бы знать, что я могу использовать, чтобы сделать штамп "X" похожим на несколько строк.

Ответы на вопрос(2)

Ваш ответ на вопрос