Если ваша цель - получить бинаризованное изображение с гладкими краями, то, если у вас есть оригинал, лучше использовать что-то вроде размытия по Гауссу с cvSmooth()
, прежде чем выполнять бинаризацию.
Тем не менее, вы не ограничены ядром 3x3. cvDilate()
принимает IplConvKernel
, созданный CreateStructuringElementEx
, и вы можете создать структурирующий элемент любой (прямоугольной) формы с помощью этой функции.
Тем не менее, структурирующий элемент работает по отношению к точке привязки, которая должна иметь целые координаты, так что если вы используете матрицу 2х2 матрица не может быть сосредоточена вокруг пикселя. поэтому в большинстве случаев лучше всего использовать структурирующие элементы с нечетным числом строк и столбцов.
Что вы могли бы сделать, это создать структурирующий элемент 3x3, в котором только значение центра и значения, расположенные непосредственно над, под, слева и справа от этого, равны 1:
0 1 0
1 1 1
0 1 0
вместо значения по умолчанию:
1 1 1
1 1 1
1 1 1
Первое ядро создаст несколько более гладкие края.