Мне нужно изменить ядро ​​Собеля для обнаружения диагонального края. OpenCV и переполнение стека

Мне нужно применить эти два ядра на образе.

+1 0 0
0 0 0
0 0 -1

а также
0 0 +1
0 0 0
-1 0 0

А затем объедините два выходных изображения. Но я понятия не имею, как написать циклы / применить фильтры к изображению в целом.

1

Решение

Вы можете использовать функцию под названием filter2d. Это позволяет вам применять произвольное ядро ​​к изображению, поэтому вам не нужно выполнять какие-либо циклы самостоятельно. Просто сохраните ядро, которое вы упомянули в Mat, и предоставьте его в качестве входных данных для filter2d вместе с вашим изображением.

Пример использования:

float m[9] = {0,0,0,-1,0,1,0,0,0};
Mat kernel(Size(3,3), CV_32F, m);
filter2D(src, dst, -1, kernel);
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]