вы не показали ни одного кода, поэтому мы не можем помочь слишком много.Вот фрагмент того, как использовать некоторые морфологические операции, чтобы заполнить некоторые пробелы без изменения размера, прежде чем пытаться использовать сложную операцию.
// OTSU, then binary threshold
Imgproc.threshold(colorImg, grayImg, 0, 255.0, Imgproc.THRESH_OTSU | Imgproc.THRESH_BINARY);
// Morphological reduction of noise, strengthen lines
Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(7, 7));
Imgproc.dilate(grayImg, grayImg2, element);
Imgproc.erode(grayImg2, grayImg, element);
// Edge detection
Imgproc.Canny(grayImg, output, 50, 50);
Однако вы должны посмотреть на card.io , который читает кредитные карты.Считать рельефные символы очень сложно с предварительной обработкой изображения, потому что освещение сильно варьируется.Вам лучше использовать машинное обучение.