Если вы подумаете о фильтре:
1 0 -1
1 0 -1
1 0 -1
, вы увидите, что он просто вычитает пиксели справа от пикселей слева в каждом месте, то есть находит горизонтальные различия.
Как таковой, он способен находить переходы от светлого к темному и от темного к светлому, просто различия будут проявляться с противоположным знаком (плюс или минус).Таким образом, если вы перейдете от светлой области слева к более темной области справа, у вас будет большое число (светлое) минус небольшое число (темное), и разница будет положительной.И наоборот, если вы перейдете из темной области слева (небольшое число) в более яркую область справа (большое число), вы получите отрицательную разницу.
Вот пример, только что сделанныйв терминале с ImageMagick .Начните с этого изображения:
Примените фильтр, о котором вы говорите:
magick input.png -morphology convolve '3x3: 1,0,-1 1,0,-1 1,0,-1' result.png
И вы можете видеть, что он находит только темные края.
Если вы хотите обнаружить края от светлого к темному и от темного к светлому, вам необходимо:
- используйте номер со знаком (в отличие от без знака), чтобы вы могли удерживать отрицательные результаты, или
- добавьте "смещение" к вашей свертке.
Если ваши данные были 8-разрядными без знака, вы могли бы добавить 50% смещение, разделив все ваши текущие значения на 2 и добавив 127 перед сверткой, например.
Итак, применяя смещение,теперь ваш фильтр обнаруживает края от темного к светлому и от светлого к темному:
magick input.png -define convolve:scale='50%!' -bias 50% -morphology convolve '3x3: 1,0,-1 1,0,-1 1,0,-1' result.png
Если вы хотите обнаружитьгоризонтальные края, переходящие из светлого в темное, поверните фильтр так:
-1 -1 -1
0 0 0
1 1 1
и примените:
magick input.png -morphology convolve '3x3: -1,-1,-1 0,0,0 1,1,1' result.png
Или, если вы хотите найти горизонтальный eпереходя из темноты к свету, используйте:
1 1 1
0 0 0
-1 -1 -1
magick input.png -morphology convolve '3x3: 1,1,1 0,0,0 -1,-1,-1' result.png
И снова то же самое, но с уклоном, чтобы мы могли найти оба светапереходы в темноту и темноту к свету одним махом:
magick image.png -define convolve:scale='50%!' -bias 50% -morphology convolve '3x3: -1,-1,-1 0,0,0 1,1,1' result.png
Энтони Тиссен предоставляет более полную информацию освертка, чем вы могли бы надеяться, в очень доступном стиле здесь .