flacs 0 Жалоба Опубликовано March 17, 2011 Что-то я никак не разберусь: есть код на c++ float kernel[9]; kernel[0]=0; kernel[1]=0; kernel[2]=0; kernel[3]=0; kernel[4]=1; kernel[5]=0; kernel[6]=0; kernel[7]=0; kernel[8]=0; CvMat kernel_matrix=cvMat(3,3,CV_32FC1,kernel); cvFilter2D(image, dst, &kernel_matrix, cvPoint(-1,-1)); Мне его надо переделать на Delphi Переписал сл. образом var kernel: array [0..8] of real; kernel_matrix: CvMat; // .. kernel[0] := 0; kernel[1] := 0; kernel[2] := 0; kernel[3] := 0; kernel[4] := 1; kernel[5] := 0; kernel[6] := 0; kernel[7] := 0; kernel[8] := 0; // на с++ // CvMat kernel_matrix=cvMat(3,3,CV_32FC1,kernel); // Как заполнить структуру cvMat, чтобы в него входила данная матрица kernel ??? kernel_matrix := // ??? cvFilter2D(test_img, test_img, @kernel_matrix, cvPoint_(-1,-1)); вот так я импортирую функцию cvFilter2D procedure cvFilter2D(src: pCvArr; dst: pCvArr; kernel:pCvMat; anchor:CvPoint); cdecl; external LIBCV; Также вот структура cvMat выглядит сл. образом: CvMat = record type_: integer; step: integer; refcount: pinteger; hdr_refcount: integer; data: pointer; rows: integer; cols: integer; end; Вот как заполнять эту структуру ума не приложу, ведь мне надо как то переписать вот это CvMat kernel_matrix=cvMat(3,3,CV_32FC1,kernel); Помогите разобраться! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах