Delphi-OpenCV/2.4.3/samples/XML/XML.dpr
Laex 6a4df01a2d To version 2.4.3
Signed-off-by: Laex <laex@bk.ru>
2013-01-01 16:29:34 +04:00

116 lines
2.6 KiB
ObjectPascal

program XML;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
Core.types_c in '..\..\include\ñore\Core.types_c.pas',
core_c in '..\..\include\ñore\core_c.pas',
highgui_c in '..\..\include\highgui\highgui_c.pas';
Var
kernel: array [0 .. 8] of Single;
kernel_matrix: TCvMat;
i: Integer;
j: Integer;
matrix: pCvMat;
begin
try
// ìàññèâ, ñîäåðæàùèé äàííûå ìàòðèöû
kernel[0] := 1;
kernel[1] := 0;
kernel[2] := 0;
kernel[3] := 0;
kernel[4] := 2;
kernel[5] := 0;
kernel[6] := 0;
kernel[7] := 0;
kernel[8] := 3;
// ñîçäà¸ì ìàòðèöó
kernel_matrix := cvMat(3, 3, CV_32FC1, @kernel);
// ñîõðàíÿåì ìàòðèöó â XML-ôàéë
cvSave('kernel.xml', @kernel_matrix);
// à òåïåðü çàãðóçèì äàííûå èç XML-ôàéëà
matrix := pCvMat(cvLoad('kernel.xml'));
// ïîêàæåì ñîäåðæèìîå ìàòðèöû
// 1 âàðèàíò: ñ èñïîëüçîâàíèåì ìàêðîñà CV_MAT_ELEM
for i := 0 to matrix^.rows - 1 do
begin
for j := 0 to matrix^.cols - 1 do
Write(Format('%.0f ', [Single(CV_MAT_ELEM(matrix^, CV_32FC1, i, j)^)]));
Writeln;
end;
Writeln;
// // 2 âàðèàíò: ñ èñïîëüçîâàíèåì cvGet2D(), cvGetReal2D()
// for (i = 0; i < matrix - > rows; i + +) {
// for(j=0; j<matrix->cols; j++){
// printf("%.0f ", cvGet2D(matrix, i, j));//cvGetReal2D(matrix, i, j));
// }
// printf(" \ n ");
// } printf(" - - - - - \ n ");
//
// // 3 âàðèàíò: ïðÿìîé äîñòóï ê ýëåìåíòàì
// for (i = 0; i < matrix - > rows; i + +) {
// float* ptr = (float*)(matrix->data.ptr + i*matrix->step);
// for(j=0; j<matrix->cols; j++){
// printf("%.0f ", ptr[j]);
// }
// printf(" \ n ");
// }
// îñâîáîæäàåì ðåñóðñû
cvReleaseMat(matrix);
//×òåíèå XML
//printf("Example 3_19 Reading in cfg.xml\n");
//
// // îòêðûâàåì ôàéë äëÿ ÷òåíèÿ
// CvFileStorage* fs = cvOpenFileStorage(
// "cfg.xml",
// 0,
// CV_STORAGE_READ
// );
//
// //
// // ñ÷èòûâàåì çíà÷åíèÿ
// //
// int frame_count = cvReadIntByName(
// fs,
// 0,
// "frame_count",
// 5 // çíà÷åíèå ïî-óìîë÷àíèþ
// );
//
// CvSeq* s = cvGetFileNodeByName(fs,0,"frame_size")->data.seq;
//
// int frame_width = cvReadInt(
// (CvFileNode*)cvGetSeqElem(s,0)
// );
//
// int frame_height = cvReadInt(
// (CvFileNode*)cvGetSeqElem(s,1)
// );
//
// CvMat* color_cvt_matrix = (CvMat*) cvRead(
// fs,
// 0
// );
//
// // ïîêàçûâàåì
// printf("frame_count=%d, frame_width=%d, frame_height=%d\n",frame_count,frame_width,frame_height);
//
// cvReleaseFileStorage( &fs );
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.