mirror of
https://github.com/Laex/Delphi-OpenCV.git
synced 2024-11-15 15:55:53 +01:00
Added augmented reality example
Signed-off-by: Laex <laex@bk.ru>
This commit is contained in:
parent
8070464750
commit
23df8e84a1
BIN
Bin/Resource/chessboard 6x5.jpg
Normal file
BIN
Bin/Resource/chessboard 6x5.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
60
README.md
60
README.md
@ -1,8 +1,56 @@
|
||||
Delphi-OpenCV
|
||||
-------------
|
||||
Project is no longer divided by version OpenCV.<br>
|
||||
Project matching, the latest version of OpenCV.<br>
|
||||
The current version of OpenCV 2.4.5.<br>
|
||||
Development environment - Delphi XE3.<br>
|
||||
<br>
|
||||
How to install the project see the file "readme-en.txt"
|
||||
* OpenCV version - 2.4.5<br>
|
||||
* Development environment - Delphi XE3<br>
|
||||
|
||||
How to install:
|
||||
---------------
|
||||
|
||||
1. Download the archive Delphi-OpenCV-master.zip
|
||||
2. Unzip it to a convenient directory, thus get the following directory structure
|
||||
|
||||
<Directory, such as "C:\OpenCV" or just "C:\" - <PROJECT_ROOT>>
|
||||
<Delphi-OpenCV-master>
|
||||
<Bin>
|
||||
<include>
|
||||
<opencv_classes>
|
||||
<samples>
|
||||
|
||||
3. Add the search path for the modules of the project in Delphi IDE (Tools-Options-Delphi Options-Library-Library path)
|
||||
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\core
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\highgui
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\imgproc
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\legacy
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\nonfree
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\objdetect
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\calib3d
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\contrib
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\video
|
||||
|
||||
where <PROJECT_ROOT> directory, which was unzipped project.
|
||||
|
||||
4. You can unzip files subdirectory of the project without <Delphi-OpenCV-master>.
|
||||
Then the directory structure of the project is as follows:
|
||||
|
||||
<Directory, such as "C:\OpenCV" - <PROJECT_ROOT>>
|
||||
<Bin>
|
||||
<include>
|
||||
<opencv_classes>
|
||||
<samples>
|
||||
|
||||
and path
|
||||
|
||||
<PROJECT_ROOT>\Include
|
||||
<PROJECT_ROOT>\Include\core
|
||||
<PROJECT_ROOT>\Include\highgui
|
||||
<PROJECT_ROOT>\Include\imgproc
|
||||
<PROJECT_ROOT>\Include\legacy
|
||||
<PROJECT_ROOT>\Include\nonfree
|
||||
<PROJECT_ROOT>\Include\objdetect
|
||||
<PROJECT_ROOT>\Include\calib3d
|
||||
<PROJECT_ROOT>\Include\contrib
|
||||
<PROJECT_ROOT>\Include\video
|
||||
|
||||
5. Open "<PROJECT_ROOT>\samples\Samples.groupproj" in Delphi IDE and compile the sample programs.
|
@ -49,7 +49,7 @@ Uses WinApi.Windows, core.types_c, Vcl.Graphics;
|
||||
Function hsv2rgb(hue: single): TCvScalar;
|
||||
procedure IplImage2Bitmap(iplImg: PIplImage; var bitmap: Vcl.Graphics.TBitmap);
|
||||
function cvImage2Bitmap(img: PIplImage): Vcl.Graphics.TBitmap;
|
||||
function ipDraw(dc: HDC; img: PIplImage; const rect: TRect; const Stretch: Boolean = true): Boolean;
|
||||
function ipDraw(dc: HDC; img: PIplImage; const rect: TRect; const Stretch: Boolean = true): Boolean;
|
||||
|
||||
Type
|
||||
TAnsiString = record helper for AnsiString
|
||||
@ -69,6 +69,12 @@ Type
|
||||
function AsString: string;
|
||||
end;
|
||||
|
||||
TSingle = record helper for
|
||||
Single
|
||||
public
|
||||
function AsInteger: Integer;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
Uses System.SysUtils;
|
||||
@ -223,8 +229,7 @@ begin
|
||||
result := IntToStr(Self);
|
||||
end;
|
||||
|
||||
|
||||
function ipDraw(dc: HDC; img: PIplImage; const rect: TRect; const Stretch: Boolean = true): Boolean;
|
||||
function ipDraw(dc: HDC; img: PIplImage; const rect: TRect; const Stretch: Boolean = true): Boolean;
|
||||
|
||||
Type
|
||||
pCOLORREF = ^COLORREF;
|
||||
@ -281,8 +286,15 @@ begin
|
||||
end
|
||||
else
|
||||
// Draw without scaling
|
||||
result := SetDIBitsToDevice(dc, rect.Left, rect.Top, img^.Width, img^.Height, 0, 0, 0, img^.Height, img^.ImageData,
|
||||
result := SetDIBitsToDevice(dc, rect.left, rect.top, img^.Width, img^.Height, 0, 0, 0, img^.Height, img^.ImageData,
|
||||
_dibhdr, DIB_RGB_COLORS) > 0;
|
||||
end;
|
||||
|
||||
{ TSingle }
|
||||
|
||||
function TSingle.AsInteger: Integer;
|
||||
begin
|
||||
result := Trunc(Self);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -1,64 +0,0 @@
|
||||
Header files OpenCV 2.4.5 for Delphi XE3
|
||||
========================================
|
||||
|
||||
Developers:
|
||||
-----------
|
||||
|
||||
Laentir Valetov
|
||||
Email: laex@bk.ru
|
||||
|
||||
Mikhail Grigorev
|
||||
Email: sleuthhound@gmail.com
|
||||
|
||||
|
||||
How to install:
|
||||
---------------
|
||||
|
||||
1. Download the archive Delphi-OpenCV-master.zip
|
||||
2. Unzip it to a convenient directory, thus get the following directory structure
|
||||
|
||||
<Directory, such as "C:\OpenCV" or just "C:\" - <PROJECT_ROOT>>
|
||||
<Delphi-OpenCV-master>
|
||||
<Bin>
|
||||
<include>
|
||||
<opencv_classes>
|
||||
<samples>
|
||||
|
||||
3. Add the search path for the modules of the project in Delphi IDE (Tools-Options-Delphi Options-Library-Library path)
|
||||
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\core
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\highgui
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\imgproc
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\legacy
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\nonfree
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\objdetect
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\calib3d
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\contrib
|
||||
<PROJECT_ROOT>\Delphi-OpenCV-master\Include\video
|
||||
|
||||
where <PROJECT_ROOT> directory, which was unzipped project.
|
||||
|
||||
4. You can unzip files subdirectory of the project without <Delphi-OpenCV-master>.
|
||||
Then the directory structure of the project is as follows:
|
||||
|
||||
<Directory, such as "C:\OpenCV" - <PROJECT_ROOT>>
|
||||
<Bin>
|
||||
<include>
|
||||
<opencv_classes>
|
||||
<samples>
|
||||
|
||||
and path
|
||||
|
||||
<PROJECT_ROOT>\Include
|
||||
<PROJECT_ROOT>\Include\core
|
||||
<PROJECT_ROOT>\Include\highgui
|
||||
<PROJECT_ROOT>\Include\imgproc
|
||||
<PROJECT_ROOT>\Include\legacy
|
||||
<PROJECT_ROOT>\Include\nonfree
|
||||
<PROJECT_ROOT>\Include\objdetect
|
||||
<PROJECT_ROOT>\Include\calib3d
|
||||
<PROJECT_ROOT>\Include\contrib
|
||||
<PROJECT_ROOT>\Include\video
|
||||
|
||||
5. Open "<PROJECT_ROOT>\samples\Samples.groupproj" in Delphi IDE and compile the sample programs.
|
270
samples/MultiDemo/Augmented reality/simplAR.dpr
Normal file
270
samples/MultiDemo/Augmented reality/simplAR.dpr
Normal file
@ -0,0 +1,270 @@
|
||||
(* /*****************************************************************
|
||||
// Delphi-OpenCV Demo
|
||||
// Copyright (C) 2013 Project Delphi-OpenCV
|
||||
// ****************************************************************
|
||||
// Contributor:
|
||||
// laentir Valetov
|
||||
// email:laex@bk.ru
|
||||
// ****************************************************************
|
||||
// You may retrieve the latest version of this file at the GitHub,
|
||||
// located at git://github.com/Laex/Delphi-OpenCV.git
|
||||
// ****************************************************************
|
||||
// The contents of this file are used with permission, subject to
|
||||
// the Mozilla Public License Version 1.1 (the "License"); you may
|
||||
// not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at
|
||||
// http://www.mozilla.org/MPL/MPL-1_1Final.html
|
||||
//
|
||||
// Software distributed under the License is distributed on an
|
||||
// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// rights and limitations under the License.
|
||||
******************************************************************* *)
|
||||
// JCL_DEBUG_EXPERT_GENERATEJDBG OFF
|
||||
// JCL_DEBUG_EXPERT_INSERTJDBG OFF
|
||||
// JCL_DEBUG_EXPERT_DELETEMAPFILE OFF
|
||||
program simplAR;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
{$POINTERMATH ON}
|
||||
{$R *.res}
|
||||
|
||||
uses
|
||||
System.SysUtils,
|
||||
highgui_c,
|
||||
core_c,
|
||||
Core.types_c,
|
||||
calib3d_c,
|
||||
imgproc_c,
|
||||
imgproc.types_c,
|
||||
objdetect;
|
||||
|
||||
const
|
||||
//Print pattern "resource\chessboard 6x5.jpg"
|
||||
trailer_filename = 'resource\trailer.avi';
|
||||
pic_filename = 'resource\pic.jpg';
|
||||
|
||||
Var
|
||||
capture: pCvCapture = nil;
|
||||
image: pIplImage = nil;
|
||||
frame: pIplImage = nil;
|
||||
disp, neg_img, cpy_img: pIplImage;
|
||||
key: Integer = 0;
|
||||
fcount: Integer = 0;
|
||||
option: Integer = 0;
|
||||
vid: pCvCapture = nil;
|
||||
pic: pIplImage;
|
||||
b_width: Integer = 5;
|
||||
b_height: Integer = 4;
|
||||
b_squares: Integer = 20;
|
||||
b_size: TCvSize;
|
||||
|
||||
warp_matrix: pCvMat;
|
||||
corners: pCvPoint2D32f;
|
||||
corner_count: Integer;
|
||||
|
||||
gray: pIplImage;
|
||||
found: Integer;
|
||||
|
||||
p: array [0 .. 3] of TCvPoint2D32f;
|
||||
q: array [0 .. 3] of TCvPoint2D32f;
|
||||
|
||||
blank: pIplImage;
|
||||
pp: array [0 .. 3] of TCvPoint;
|
||||
|
||||
begin
|
||||
try
|
||||
capture := cvCreateCameraCapture(0);
|
||||
if not Assigned(capture) then
|
||||
Halt;
|
||||
|
||||
// Use a video with aspect ratio 4:3
|
||||
vid := cvCreateFileCapture(trailer_filename);
|
||||
if not Assigned(vid) then
|
||||
begin
|
||||
cvReleaseCapture(capture);
|
||||
Halt;
|
||||
end;
|
||||
|
||||
pic := cvLoadImage(pic_filename);
|
||||
cvFlip(pic, pic, 1);
|
||||
|
||||
b_size := cvSize(b_width, b_height);
|
||||
// The pattern actually has 6 x 5 squares, but has 5 x 4 := 20 'ENCLOSED' corners
|
||||
|
||||
warp_matrix := cvCreateMat(3, 3, CV_32FC1);
|
||||
corners := AllocMem(b_squares * SizeOf(TCvPoint2D32f));
|
||||
|
||||
WriteLn('Select an option to run the program');
|
||||
WriteLn;
|
||||
WriteLn('1. Show an Image over the pattern.');
|
||||
WriteLn('2. Play a Clip over the pattern.');
|
||||
WriteLn('3. Mark the pattern.');
|
||||
Write('>');
|
||||
Readln(option);
|
||||
|
||||
// Quit on invalid entry
|
||||
if (option < 1) or (option > 3) then
|
||||
begin
|
||||
WriteLn('Invalid selection.');
|
||||
Halt;
|
||||
end;
|
||||
|
||||
cvNamedWindow('Video', CV_WINDOW_AUTOSIZE);
|
||||
|
||||
while (key <> 27) do
|
||||
begin
|
||||
image := cvQueryFrame(capture);
|
||||
if not Assigned(image) then
|
||||
break;
|
||||
cvFlip(image, image, 1);
|
||||
|
||||
disp := cvCreateImage(cvGetSize(image), 8, 3);
|
||||
cpy_img := cvCreateImage(cvGetSize(image), 8, 3);
|
||||
neg_img := cvCreateImage(cvGetSize(image), 8, 3);
|
||||
|
||||
gray := cvCreateImage(cvGetSize(image), image^.depth, 1);
|
||||
found := cvFindChessboardCorners(image, b_size, corners, @corner_count, CV_CALIB_CB_ADAPTIVE_THRESH or
|
||||
CV_CALIB_CB_FILTER_QUADS);
|
||||
|
||||
cvCvtColor(image, gray, CV_BGR2GRAY);
|
||||
|
||||
// This function identifies the pattern from the gray image, saves the valid group of corners
|
||||
cvFindCornerSubPix(gray, corners, corner_count, cvSize(11, 11), cvSize(-1, -1),
|
||||
cvTermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1));
|
||||
|
||||
if (corner_count = b_squares) then
|
||||
begin
|
||||
if (option = 1) then
|
||||
begin
|
||||
blank := cvCreateImage(cvGetSize(pic), 8, 3);
|
||||
cvZero(blank);
|
||||
cvNot(blank, blank);
|
||||
|
||||
// Set of source points to calculate Perspective matrix
|
||||
q[0].x := pic^.width * 0;
|
||||
q[0].y := pic^.height * 0;
|
||||
q[1].x := pic^.width;
|
||||
q[1].y := pic^.height * 0;
|
||||
|
||||
q[2].x := pic^.width;
|
||||
q[2].y := pic^.height;
|
||||
q[3].x := pic^.width * 0;
|
||||
q[3].y := pic^.height;
|
||||
|
||||
// Set of destination points to calculate Perspective matrix
|
||||
p[0].x := corners[0].x;
|
||||
p[0].y := corners[0].y;
|
||||
p[1].x := corners[4].x;
|
||||
p[1].y := corners[4].y;
|
||||
|
||||
p[2].x := corners[19].x;
|
||||
p[2].y := corners[19].y;
|
||||
p[3].x := corners[15].x;
|
||||
p[3].y := corners[15].y;
|
||||
|
||||
// Calculate Perspective matrix
|
||||
cvGetPerspectiveTransform(@q, @p, warp_matrix);
|
||||
|
||||
// Boolean juggle to obtain 2D-Augmentation
|
||||
cvZero(neg_img);
|
||||
cvZero(cpy_img);
|
||||
|
||||
cvWarpPerspective(pic, neg_img, warp_matrix,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0));
|
||||
cvWarpPerspective(blank, cpy_img, warp_matrix,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0));
|
||||
cvNot(cpy_img, cpy_img);
|
||||
|
||||
cvAnd(cpy_img, image, cpy_img);
|
||||
cvOr(cpy_img, neg_img, image);
|
||||
|
||||
cvShowImage('Video', image);
|
||||
end
|
||||
else if (option = 2) then
|
||||
begin
|
||||
frame := cvQueryFrame(vid);
|
||||
if not Assigned(frame) then
|
||||
WriteLn('error frame');
|
||||
|
||||
blank := cvCreateImage(cvGetSize(frame), 8, 3);
|
||||
cvZero(blank);
|
||||
cvNot(blank, blank);
|
||||
|
||||
q[0].x := frame^.width * 0;
|
||||
q[0].y := frame^.height * 0;
|
||||
q[1].x := frame^.width;
|
||||
q[1].y := frame^.height * 0;
|
||||
|
||||
q[2].x := frame^.width;
|
||||
q[2].y := frame^.height;
|
||||
q[3].x := frame^.width * 0;
|
||||
q[3].y := frame^.height;
|
||||
|
||||
p[0].x := corners[0].x;
|
||||
p[0].y := corners[0].y;
|
||||
p[1].x := corners[4].x;
|
||||
p[1].y := corners[4].y;
|
||||
|
||||
p[2].x := corners[19].x;
|
||||
p[2].y := corners[19].y;
|
||||
p[3].x := corners[15].x;
|
||||
p[3].y := corners[15].y;
|
||||
|
||||
cvGetPerspectiveTransform(@q, @p, warp_matrix);
|
||||
|
||||
// Boolean juggle to obtain 2D-Augmentation
|
||||
cvZero(neg_img);
|
||||
cvZero(cpy_img);
|
||||
|
||||
cvWarpPerspective(frame, neg_img, warp_matrix,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0));
|
||||
cvWarpPerspective(blank, cpy_img, warp_matrix,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalarAll(0));
|
||||
cvNot(cpy_img, cpy_img);
|
||||
|
||||
cvAnd(cpy_img, image, cpy_img);
|
||||
cvOr(cpy_img, neg_img, image);
|
||||
|
||||
cvShowImage('Video', image);
|
||||
end
|
||||
else
|
||||
begin
|
||||
pp[0].x := Trunc(corners[0].x);
|
||||
pp[0].y := Trunc(corners[0].y);
|
||||
pp[1].x := Trunc(corners[4].x);
|
||||
pp[1].y := Trunc(corners[4].y);
|
||||
|
||||
pp[2].x := Trunc(corners[19].x);
|
||||
pp[2].y := Trunc(corners[19].y);
|
||||
pp[3].x := Trunc(corners[15].x);
|
||||
pp[3].y := Trunc(corners[15].y);
|
||||
|
||||
cvLine(image, pp[0], pp[1], CV_RGB(255, 0, 0), 2);
|
||||
cvLine(image, pp[1], pp[2], CV_RGB(0, 255, 0), 2);
|
||||
cvLine(image, pp[2], pp[3], CV_RGB(0, 0, 255), 2);
|
||||
cvLine(image, pp[3], pp[0], CV_RGB(255, 255, 0), 2);
|
||||
|
||||
// or simply
|
||||
// cvDrawChessboardCorners(image, b_size, corners, corner_count, found);
|
||||
|
||||
cvShowImage('Video', image);
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
// Show gray image when pattern is not detected
|
||||
cvFlip(gray, gray);
|
||||
cvShowImage('Video', gray);
|
||||
end;
|
||||
key := cvWaitKey(1);
|
||||
|
||||
end;
|
||||
|
||||
cvDestroyWindow('Video');
|
||||
cvReleaseCapture(vid);
|
||||
cvReleaseMat(warp_matrix);
|
||||
cvReleaseCapture(capture);
|
||||
|
||||
except
|
||||
on E: Exception do
|
||||
WriteLn(E.ClassName, ': ', E.Message);
|
||||
end;
|
||||
|
||||
end.
|
148
samples/MultiDemo/Augmented reality/simplAR.dproj
Normal file
148
samples/MultiDemo/Augmented reality/simplAR.dproj
Normal file
@ -0,0 +1,148 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{2AB18958-8E39-4F33-B1B9-D20DB968E408}</ProjectGuid>
|
||||
<MainSource>simplAR.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<TargetedPlatforms>1</TargetedPlatforms>
|
||||
<AppType>Console</AppType>
|
||||
<FrameworkType>None</FrameworkType>
|
||||
<ProjectVersion>14.4</ProjectVersion>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||
<Base_Win32>true</Base_Win32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
|
||||
<Cfg_2_Win32>true</Cfg_2_Win32>
|
||||
<CfgParent>Cfg_2</CfgParent>
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_E>false</DCC_E>
|
||||
<DCC_ExeOutput>..\..\..\bin\</DCC_ExeOutput>
|
||||
<Manifest_File>None</Manifest_File>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||
<DCC_F>false</DCC_F>
|
||||
<DCC_K>false</DCC_K>
|
||||
<DCC_S>false</DCC_S>
|
||||
<VerInfo_Locale>1049</VerInfo_Locale>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable=</VerInfo_Keys>
|
||||
<DCC_N>false</DCC_N>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||
<DCC_DebugInformation>false</DCC_DebugInformation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||
<DCC_Optimize>false</DCC_Optimize>
|
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<Manifest_File>None</Manifest_File>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<DelphiCompile Include="$(MainSource)">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||
<Borland.ProjectType/>
|
||||
<BorlandProject>
|
||||
<Delphi.Personality>
|
||||
<Source>
|
||||
<Source Name="MainSource">simplAR.dpr</Source>
|
||||
</Source>
|
||||
<VersionInfo>
|
||||
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||
<VersionInfo Name="Release">0</VersionInfo>
|
||||
<VersionInfo Name="Build">0</VersionInfo>
|
||||
<VersionInfo Name="Debug">False</VersionInfo>
|
||||
<VersionInfo Name="PreRelease">False</VersionInfo>
|
||||
<VersionInfo Name="Special">False</VersionInfo>
|
||||
<VersionInfo Name="Private">False</VersionInfo>
|
||||
<VersionInfo Name="DLL">False</VersionInfo>
|
||||
<VersionInfo Name="Locale">1049</VersionInfo>
|
||||
<VersionInfo Name="CodePage">1251</VersionInfo>
|
||||
</VersionInfo>
|
||||
<VersionInfoKeys>
|
||||
<VersionInfoKeys Name="CompanyName"/>
|
||||
<VersionInfoKeys Name="FileDescription"/>
|
||||
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="InternalName"/>
|
||||
<VersionInfoKeys Name="LegalCopyright"/>
|
||||
<VersionInfoKeys Name="LegalTrademarks"/>
|
||||
<VersionInfoKeys Name="OriginalFilename"/>
|
||||
<VersionInfoKeys Name="ProductName"/>
|
||||
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="Comments"/>
|
||||
<VersionInfoKeys Name="CFBundleName"/>
|
||||
<VersionInfoKeys Name="CFBundleDisplayName"/>
|
||||
<VersionInfoKeys Name="CFBundleIdentifier"/>
|
||||
<VersionInfoKeys Name="CFBundleVersion"/>
|
||||
<VersionInfoKeys Name="CFBundlePackageType"/>
|
||||
<VersionInfoKeys Name="CFBundleSignature"/>
|
||||
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
|
||||
<VersionInfoKeys Name="CFBundleExecutable"/>
|
||||
</VersionInfoKeys>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="C:\Users\Alex\Documents\DevExpress VCL\Library\RS17\dcldxPSTeeChartRS17.bpl">ExpressPrinting System ReportLink for TeeChart by Developer Express Inc.</Excluded_Packages>
|
||||
<Excluded_Packages Name="C:\Users\Alex\Documents\DevExpress VCL\Library\RS17\dcldxPSDBTeeChartRS17.bpl">ExpressPrinting System ReportLink for DBTeeChart by Developer Express Inc.</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp170.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k170.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\bcboffice2k170.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Platforms>
|
||||
<Platform value="OSX32">False</Platform>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">False</Platform>
|
||||
</Platforms>
|
||||
</BorlandProject>
|
||||
<ProjectFileVersion>12</ProjectFileVersion>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||
</Project>
|
BIN
samples/MultiDemo/Augmented reality/simplAR.res
Normal file
BIN
samples/MultiDemo/Augmented reality/simplAR.res
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user