Convolution 2D en utilisant openCV en C

Je veux implémenter un programme qui effectue la convolution 2D en utilisant openCV. Je suis nouveau avec openCV. mon implémentation naïve est ici:

#include  #include  //used for kernel unsigned short int kernel[3][3] __atsortingbute__(( aligned(32))); // input and output image unsigned short int input[512][512] __atsortingbute__(( aligned(32))); unsigned short int output[512][512] __atsortingbute__((aligned(32))); int main() { //data are assigned to input and kernel masortingces before. const CvArr* src = input; CvArr* dst = output; const CvMat* kernel = kernel; // return error incompatible pointer type CvPoint anchor=cvPoint(-1,-1); // ? cvFilter2D(src, dst, kernel, anchor); // want to multiply the kernel as it should do in 2D convolution program return 0; } 

Je sais que ce n’est pas correct. Quelqu’un peut-il m’aider à corriger cette mise en œuvre? Je ne peux pas non plus comprendre l’ancre! J’ai étudié et recherché de nombreux liens, ces liens peuvent être utiles: Masortingces 2D avec CvMat dans OpenCV CvMat Struct Référence la mise en oeuvre du programme de convolution en C peut être vue dans cette question: Convolution 2D rapide en C

J’utilise gcc , Linux mint et Skylake

La commande de construction est gcc -Wall pkg-config --libs opencv pkg-config --cflags opencv -march=native -D _GNU_SOURCE -O2 -o "%e" "%f"

J’utilise -D _GNU_SOURCE pour affecter le programme à un seul kernel de la CPU. Est-il correct de restreindre l’openCV? Parce que je veux vérifier les performances sur un seul kernel.

UPDATE Le but de cette implémentation est une comparaison entre l’implémentation My Convolution et une autre implémentation rapide sur CPU. Est-ce que comparer avec openCV est une bonne idée? Si non, quel est le meilleur moyen? Si oui, existe-t-il des différences entre les versions C, C ++ et Java aux fins de comparaison? Je veux dire que mon programme de base est écrit en C est-il logique de comparer le programme avec C ++ qui utilise g++ place de gcc et bien sûr des objects, etc.