2016-04-26 8 views
0

Alles, was ich tun möchte, ist eine benutzerdefinierte Faltungsmatrix (Kernel) auf ein Bild (Matte oder ein anderes Format ist in Ordnung) in opencv anzuwenden.Wie öffne ich einen benutzerdefinierten Kernel mit opencv?

Ich denke, es gibt einige eingebaute Funktion, die es tut, aber ich verstehe es nicht wirklich von den Orten, die ich gesehen habe, und es scheint, dass es mehr als eine Möglichkeit gibt, es in opencv zu tun.

Kennt jemand eine gute/schnelle/effiziente Art, dieses Problem anzugehen?

Antwort

1

Wenn Sie zum Beispiel ein 5x5-Kernel:

Mat kern = (Mat_<char>(5, 5) << -1, -1, -1, -1, -1, 
           -1, -1, -1, -1, -1, 
           -1, -1, 24, -1, -1, 
           -1, -1, -1, -1, -1, 
           -1, -1, -1, -1, -1); 

dann können Sie de filter2D Funktion: http://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html#filter2d

Beispiel für die Anwendung des angepassten Kernel:

filter2D(src_image, dst_image, src_image.depth(), kern);

Hoffnung es hilft. :)

+0

ist wirklich so einfach .... Danke! – user3369663

Verwandte Themen