SAFE LOAD DLL

Signed-off-by: Laentir Valetov <laex@bk.ru>
This commit is contained in:
Laentir Valetov 2015-10-05 19:46:36 +03:00
parent f2982fb3f3
commit 3f89592bf1
75 changed files with 6689 additions and 7349 deletions

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{9F27EBDE-3B7A-4B88-8E68-90DCA8A35F81}</ProjectGuid>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>cCameraCapture.dpr</MainSource>
<Base>True</Base>
@ -187,66 +187,108 @@
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="2">
<DeployClass Required="true" Name="DependencyPackage">
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
@ -260,121 +302,97 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
@ -385,172 +403,11 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
@ -558,17 +415,166 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>

View File

@ -140,7 +140,7 @@ object MainForm: TMainForm
end
object ocvcmrsrc1: TocvCameraSource
Enabled = True
Resolution = r320x240
Resolution = r1280x720
Left = 32
Top = 40
end

View File

@ -0,0 +1,14 @@
program cEditor;
uses
Vcl.Forms,
uMainForm in 'uMainForm.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

View File

@ -0,0 +1,536 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{4782DBC5-D995-40C2-B68B-457D2ACC7A02}</ProjectGuid>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>cEditor.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
</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="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' 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)'!=''">
<SanitizedProjectName>cEditor</SanitizedProjectName>
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<DCC_UsePackage>DBXSqliteDriver;fmxase;tmsdXE8;DBXDb2Driver;vclactnband;vclFireDAC;dxtrmdRS21;tethering;cxSchedulerTreeBrowserRS21;FireDACADSDriver;JvPluginSystem;dxSpellCheckerRS21;FireDACMSSQLDriver;vcltouch;JvBands;vcldb;Intraweb;svn;JvJans;dxGDIPlusRS21;dxPScxPivotGridLnkRS21;NxCollectionDsgn_dxe8;JvDotNetCtrls;dxTileControlRS21;dxPScxGridLnkRS21;cxPivotGridRS21;vclib;dxPSLnksRS21;dxPSdxDBTVLnkRS21;dxPsPrVwAdvRS21;dxPSPrVwRibbonRS21;dxBarDBNavRS21;FireDACDBXDriver;dclFFMSource300;vclx;cxTreeListRS21;ocvOpenCV300;dxPSdxSpreadSheetLnkRS21;dxADOServerModeRS21;RESTBackendComponents;dxPScxPCProdRS21;NxCommonDsgn_dxe8;viTimeLineDPK;VCLRESTComponents;dxPSdxOCLnkRS21;vclie;NxCommonRun_dxe8;bindengine;CloudService;JvHMI;FireDACMySQLDriver;dxBarRS21;DataSnapClient;bindcompdbx;NxDBGridRun_dxe8;DBXSybaseASEDriver;IndyIPServer;dxdborRS21;IndySystem;dxPSCoreRS21;dxSpreadSheetRS21;dsnapcon;dxPScxExtCommonRS21;cxSchedulerRibbonStyleEventEditorRS21;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;Jcl;dxDockingRS21;dxPSdxDBOCLnkRS21;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;NxDBGridDsgn_dxe8;JvManagedThreads;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;JvTimeFramework;cxTreeListdxBarPopupMenuRS21;rtl;cxEditorsRS21;DbxClientDriver;DBXSybaseASADriver;JvSystem;JvStdCtrls;cxDataRS21;appanalytics;IndyIPClient;bindcompvcl;dxRibbonRS21;cxPivotGridChartRS21;TeeUI;JvDocking;JvPascalInterpreter;VclSmp;dxmdsRS21;FireDACODBCDriver;dxFlowChartRS21;JclVcl;DataSnapIndy10ServerTransport;dxPScxCommonRS21;tmsxlsdXE8;DataSnapProviderClient;FireDACMongoDBDriver;JvControls;JvPrintPreview;dxServerModeRS21;cxGridRS21;NxGridDsgn_dxe8;DataSnapServerMidas;RESTComponents;ZComponent;DBXInterBaseDriver;ZCore;emsclientfiredac;dxPScxSchedulerLnkRS21;DataSnapFireDAC;svnui;JvGlobus;DBXMSSQLDriver;JvMM;dxPSDBTeeChartRS21;DatasnapConnectorsFreePascal;dxTabbedMDIRS21;bindcompfmx;JvNet;DBXOracleDriver;inetdb;JvAppFrm;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;JvWizards;cxPivotGridOLAPRS21;NxGridRun_dxe8;dbexpress;IndyCore;dxThemeRS21;NxSheetRun_dxe8;tmsexdXE8;ZParseSql;JvPageComps;dsnap;DataSnapCommon;emsclient;cxVerticalGridRS21;FireDACCommon;dxPSdxFCLnkRS21;JvDB;NxAddonsRun_dxe8;DataSnapConnectors;NxInspectorRun_dxe8;soapserver;dxCoreRS21;JclDeveloperTools;FireDACOracleDriver;DBXMySQLDriver;JvCmp;DBXFirebirdDriver;XiButtonXE4;FireDACCommonDriver;cxBarEditItemRS21;dxBarExtItemsRS21;dxMapControlRS21;inet;IndyIPCommon;JvCustom;cxLibraryRS21;vcl;JvXPCtrls;dxBarExtDBItemsRS21;FireDACDb2Driver;cxExportRS21;tmswizdXE8;dxdbtrRS21;dxorgcRS21;ZDbc;TeeDB;FireDAC;dxPScxTLLnkRS21;JvCore;OverbyteIcsD10SRun;JvCrypt;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;dxFireDACServerModeRS21;dxWizardControlRS21;dxPSTeeChartRS21;dxNavBarRS21;JvDlgs;JvRuntimeDesign;ibxpress;Tee;DataSnapServer;ibxbindings;vclwinx;FireDACDSDriver;NxCollectionRun_dxe8;dxLayoutControlRS21;CustomIPTransport;vcldsnap;dxPScxVGridLnkRS21;bindcomp;ZPlain;DBXInformixDriver;officeXPrt;autoupgrXE5;vclribbon;dbxcds;cxSchedulerGridRS21;adortl;dxComnRS21;dsnapxml;dbrtl;inetdbxpress;IndyProtocols;cxPageControlRS21;NxInspectorDsgn_dxe8;JclContainers;dxPSdxLCLnkRS21;cxSchedulerRS21;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<DCC_ExeOutput>..\..\..\bin\$(Platform)</DCC_ExeOutput>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tmsdXE8;DBXDb2Driver;vclactnband;vclFireDAC;dxtrmdRS21;tethering;cxSchedulerTreeBrowserRS21;FireDACADSDriver;dxSpellCheckerRS21;FireDACMSSQLDriver;vcltouch;vcldb;Intraweb;dxGDIPlusRS21;dxPScxPivotGridLnkRS21;NxCollectionDsgn_dxe8;dxTileControlRS21;dxPScxGridLnkRS21;cxPivotGridRS21;vclib;dxPSLnksRS21;dxPSdxDBTVLnkRS21;dxPsPrVwAdvRS21;dxPSPrVwRibbonRS21;dxBarDBNavRS21;FireDACDBXDriver;vclx;cxTreeListRS21;ocvOpenCV300;dxPSdxSpreadSheetLnkRS21;dxADOServerModeRS21;RESTBackendComponents;dxPScxPCProdRS21;NxCommonDsgn_dxe8;VCLRESTComponents;dxPSdxOCLnkRS21;vclie;NxCommonRun_dxe8;bindengine;CloudService;FireDACMySQLDriver;dxBarRS21;DataSnapClient;bindcompdbx;NxDBGridRun_dxe8;DBXSybaseASEDriver;IndyIPServer;dxdborRS21;IndySystem;dxPSCoreRS21;dxSpreadSheetRS21;dsnapcon;dxPScxExtCommonRS21;cxSchedulerRibbonStyleEventEditorRS21;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;dxDockingRS21;dxPSdxDBOCLnkRS21;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;NxDBGridDsgn_dxe8;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;cxTreeListdxBarPopupMenuRS21;rtl;cxEditorsRS21;DbxClientDriver;DBXSybaseASADriver;cxDataRS21;appanalytics;IndyIPClient;bindcompvcl;dxRibbonRS21;cxPivotGridChartRS21;TeeUI;VclSmp;dxmdsRS21;FireDACODBCDriver;dxFlowChartRS21;DataSnapIndy10ServerTransport;dxPScxCommonRS21;DataSnapProviderClient;FireDACMongoDBDriver;dxServerModeRS21;cxGridRS21;NxGridDsgn_dxe8;DataSnapServerMidas;RESTComponents;ZComponent;DBXInterBaseDriver;ZCore;emsclientfiredac;dxPScxSchedulerLnkRS21;DataSnapFireDAC;DBXMSSQLDriver;dxPSDBTeeChartRS21;DatasnapConnectorsFreePascal;dxTabbedMDIRS21;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;cxPivotGridOLAPRS21;NxGridRun_dxe8;dbexpress;IndyCore;dxThemeRS21;NxSheetRun_dxe8;tmsexdXE8;ZParseSql;dsnap;DataSnapCommon;emsclient;cxVerticalGridRS21;FireDACCommon;dxPSdxFCLnkRS21;NxAddonsRun_dxe8;DataSnapConnectors;NxInspectorRun_dxe8;soapserver;dxCoreRS21;FireDACOracleDriver;DBXMySQLDriver;DBXFirebirdDriver;FireDACCommonDriver;cxBarEditItemRS21;dxBarExtItemsRS21;dxMapControlRS21;inet;IndyIPCommon;cxLibraryRS21;vcl;dxBarExtDBItemsRS21;FireDACDb2Driver;cxExportRS21;dxdbtrRS21;dxorgcRS21;ZDbc;TeeDB;FireDAC;dxPScxTLLnkRS21;OverbyteIcsD10SRun;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;dxFireDACServerModeRS21;dxWizardControlRS21;dxPSTeeChartRS21;dxNavBarRS21;ibxpress;Tee;DataSnapServer;ibxbindings;vclwinx;FireDACDSDriver;NxCollectionRun_dxe8;dxLayoutControlRS21;CustomIPTransport;vcldsnap;dxPScxVGridLnkRS21;bindcomp;ZPlain;DBXInformixDriver;officeXPrt;vclribbon;dbxcds;cxSchedulerGridRS21;adortl;dxComnRS21;dsnapxml;dbrtl;inetdbxpress;IndyProtocols;cxPageControlRS21;NxInspectorDsgn_dxe8;dxPSdxLCLnkRS21;cxSchedulerRS21;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_DebugDCUs>true</DCC_DebugDCUs>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<AppEnableHighDPI>true</AppEnableHighDPI>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
<DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>0</DCC_DebugInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
<AppEnableHighDPI>true</AppEnableHighDPI>
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="uMainForm.pas">
<Form>Form1</Form>
<FormType>dfm</FormType>
</DCCReference>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Debug">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>Application</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">cEditor.dpr</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k230.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="2">
<DeployFile LocalName="Win32\Debug\cEditor.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cEditor.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceDebug">
<Platform Name="iOSDevice64">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<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')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>

Binary file not shown.

View File

@ -0,0 +1,44 @@
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 491
ClientWidth = 444
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object chk1: TCheckBox
Left = 8
Top = 8
Width = 97
Height = 17
Caption = 'Camera enabled'
TabOrder = 0
end
object ocvw1: TocvView
Left = 8
Top = 31
Width = 428
Height = 350
VideoSource = ocvmgprtn1
Frames = <>
end
object ocvcmrsrc1: TocvCameraSource
Enabled = True
Left = 168
Top = 120
end
object ocvmgprtn1: TocvImageOperation
VideoSource = ocvcmrsrc1
OperationClassName = 'TocvNoneOperation'
Operations = <>
Left = 204
Top = 120
end
end

View File

@ -0,0 +1,29 @@
unit uMainForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ocv.comp.View, ocv.comp.Types,
ocv.comp.Source, Vcl.StdCtrls, ocv.comp.ImageOperation;
type
TForm1 = class(TForm)
chk1: TCheckBox;
ocvcmrsrc1: TocvCameraSource;
ocvw1: TocvView;
ocvmgprtn1: TocvImageOperation;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{DF744E81-26D1-44A1-826E-85DC20070C2F}</ProjectGuid>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>FMX</FrameworkType>
<MainSource>cFMXCameraCapture.dpr</MainSource>
<Base>True</Base>
@ -65,6 +65,12 @@
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Cfg_1)'=='true') or '$(Cfg_1_OSX32)'!=''">
<Cfg_1_OSX32>true</Cfg_1_OSX32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
@ -149,7 +155,7 @@
<iPad_SpotLight50>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png</iPad_SpotLight50>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPhone_Spotlight29>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png</iPhone_Spotlight29>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false</VerInfo_Keys>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_SpotLight100>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png</iPad_SpotLight100>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPad_Launch1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png</iPad_Launch1536>
@ -194,7 +200,7 @@
<iPad_SpotLight50>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png</iPad_SpotLight50>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPhone_Spotlight29>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png</iPhone_Spotlight29>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false</VerInfo_Keys>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_SpotLight100>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png</iPad_SpotLight100>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPad_Launch1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png</iPad_Launch1536>
@ -237,7 +243,7 @@
<iPad_AppIcon72>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png</iPad_AppIcon72>
<iPad_Setting58>$(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png</iPad_Setting58>
<iPad_Launch2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png</iPad_Launch2048>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false</VerInfo_Keys>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_Launch1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png</iPad_Launch1536>
<iPhone_Launch640x1136>$(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png</iPhone_Launch640x1136>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
@ -258,6 +264,7 @@
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
<DCC_UsePackage>cxSchedulerTreeBrowserRS20;JvGlobus;JvMM;dxPSdxLCLnkRS20;dxSkinOffice2007SilverRS20;JvManagedThreads;cxGridRS20;dxPScxExtCommonRS20;dxFireDACServerModeRS20;SignalTool421;cxPageControlRS20;dxPSdxSpreadSheetLnkRS20;CnPack_DXE7;FireDACPgDriver;JvCrypt;DBXInterBaseDriver;DataSnapServer;DataSnapCommon;MtxDb421;JvNet;dxSkinsdxBarPainterRS20;dxSkinSharpRS20;JvDotNetCtrls;StatCore421;DbxCommonDriver;dxLayoutControlRS20;vclimg;dxSkinSilverRS20;dxSkinsdxNavBarPainterRS20;dbxcds;DatasnapConnectorsFreePascal;JvXPCtrls;dxPSCoreRS20;dxSkinOffice2013LightGrayRS20;vcldb;dxPSTeeChartRS20;dxSkinOffice2013WhiteRS20;dxSkinMcSkinRS20;CustomIPTransport;dsnap;IndyIPServer;dxSkinCoffeeRS20;dxSkinGlassOceansRS20;IndyCore;dxSkinOffice2010SilverRS20;dxComnRS20;CloudService;dxFlowChartRS20;dxSkinOffice2013DarkGrayRS20;FmxTeeUI;FireDACIBDriver;cxTreeListdxBarPopupMenuRS20;dxSkinOffice2007PinkRS20;dxSkinSpringTimeRS20;dxDBXServerModeRS20;IcsFmxDXE7Run;dxPsPrVwAdvRS20;JvDB;JvRuntimeDesign;dxSkiniMaginaryRS20;dxPScxGridLnkRS20;dxSkinDevExpressDarkStyleRS20;tmsdXE7;cxSchedulerGridRS20;dxtrmdRS20;MtxTools421;dsnapxml;JclDeveloperTools;FireDACDb2Driver;dxSpreadSheetRS20;dxSkinMoneyTwinsRS20;dxSkinOffice2007GreenRS20;dxPScxTLLnkRS20;IcsCommonDXE7Run;cxPivotGridOLAPRS20;dxPSdxFCLnkRS20;MtxTee421;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;dbrtl;FireDACCommon;bindcomp;inetdb;JvPluginSystem;DBXOdbcDriver;JvCmp;vclFireDAC;JvTimeFramework;xmlrtl;ibxpress;dxSkinOffice2007BlackRS20;FireDACCommonDriver;bindengine;vclactnband;soaprtl;FMXTee;dxGDIPlusRS20;bindcompvcl;Jcl;vclie;cxVerticalGridRS20;cxSchedulerRS20;StatTools421;dxSkinBlackRS20;FireDACMSSQLDriver;DBXInformixDriver;dxSkinSummer2008RS20;Intraweb;cxBarEditItemRS20;DataSnapServerMidas;dsnapcon;DBXFirebirdDriver;tmsexdXE7;inet;dxBarRS20;cxDataRS20;dxSkinDarkSideRS20;JvPascalInterpreter;FireDACMySQLDriver;soapmidas;vclx;dxPScxVGridLnkRS20;dxSkinLondonLiquidSkyRS20;dxCoreRS20;DBXSybaseASADriver;RESTComponents;dxPSPrVwRibbonRS20;dbexpress;dxPSLnksRS20;IndyIPClient;MtxCore421;dxSpellCheckerRS20;dxBarExtItemsRS20;dxdbtrRS20;FireDACSqliteDriver;FireDACDSDriver;cxSchedulerRibbonStyleEventEditorRS20;DBXSqliteDriver;ZComponent;fmx;dxSkinVS2010RS20;JvDlgs;IndySystem;frxe21;TeeDB;tethering;dxPScxPCProdRS20;dxSkinXmas2008BlueRS20;vclib;dxTabbedMDIRS20;DataSnapClient;frx21;dxmdsRS20;DataSnapProviderClient;DBXSybaseASEDriver;dxdborRS20;dxPSdxDBTVLnkRS20;Classifiers121;MetropolisUILiveTile;dxPScxSchedulerLnkRS20;dxSkinCaramelRS20;dxSkinLiquidSkyRS20;vcldsnap;dxGaugeControlRS20;dxSkinDevExpressStyleRS20;fmxFireDAC;cxPivotGridChartRS20;DBXDb2Driver;DBXOracleDriver;dxSkinOffice2010BlueRS20;JvCore;dcldxSkinsCoreRS20;vclribbon;cxExportRS20;dxSkinscxSchedulerPainterRS20;dxServerModeRS20;SignalCore421;dxSkinMetropolisDarkRS20;fmxase;vcl;DBXMSSQLDriver;IndyIPCommon;CodeSiteExpressPkg;SGX6;dxSkinBlueRS20;dxSkinOffice2010BlackRS20;DataSnapFireDAC;FireDACDBXDriver;dxBarExtDBItemsRS20;JvAppFrm;soapserver;dxSkinsdxDLPainterRS20;dxPSDBTeeChartRS20;IcsVclDXE7Run;inetdbxpress;dxSkinFoggyRS20;dxSkinBlueprintRS20;dxSkinSharpPlusRS20;dxADOServerModeRS20;DCLClassifiersDB121;FireDACInfxDriver;cxPivotGridRS20;JvDocking;adortl;tmswizdXE7;StatSeries421;JvWizards;dxRibbonRS20;FireDACASADriver;dxSkinHighContrastRS20;JvHMI;dxSkinTheAsphaltWorldRS20;JvBands;dxSkinscxPCPainterRS20;dxBarDBNavRS20;ZDbc;emsclientfiredac;rtl;DbxClientDriver;frxTee21;dxNavBarRS20;dxSkinMetropolisRS20;ZPlain;dxDockingRS20;Tee;JclContainers;dxSkinOffice2007BlueRS20;dxSkinsdxRibbonPainterRS20;frxDB21;dxSkinValentineRS20;JvSystem;DataSnapNativeClient;svnui;JvControls;IndyProtocols;DBXMySQLDriver;dxPScxCommonRS20;dxSkinSevenClassicRS20;viTimeLineDPK;dxSkinPumpkinRS20;bindcompdbx;TeeUI;JvJans;JvPrintPreview;JvPageComps;JvStdCtrls;JvCustom;dxSkinDarkRoomRS20;FireDACADSDriver;vcltouch;ZCore;dxSkinStardustRS20;cxEditorsRS20;emsclient;dxorgcRS20;dxPSdxDBOCLnkRS20;ClassifiersDB121;VCLRESTComponents;FireDAC;VclSmp;dxSkinsCoreRS20;DataSnapConnectors;dxSkinSevenRS20;cxLibraryRS20;fmxobj;dxMapControlRS20;JclVcl;OpenCV210;ZParseSql;tmsxlsdXE7;svn;dxSkinLilianRS20;dxSkinWhiteprintRS20;FireDACOracleDriver;fmxdae;dxWizardControlRS20;dxPScxPivotGridLnkRS20;dxPSdxOCLnkRS20;dxThemeRS20;cxTreeListRS20;FireDACMSAccDriver;DataSnapIndy10ServerTransport;dxTileControlRS20;$(DCC_UsePackage)</DCC_UsePackage>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
@ -266,6 +273,7 @@
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
<DCC_UsePackage>cxSchedulerTreeBrowserRS20;dxPSdxLCLnkRS20;dxSkinOffice2007SilverRS20;cxGridRS20;dxPScxExtCommonRS20;dxFireDACServerModeRS20;cxPageControlRS20;dxPSdxSpreadSheetLnkRS20;FireDACPgDriver;DBXInterBaseDriver;DataSnapServer;DataSnapCommon;dxSkinsdxBarPainterRS20;dxSkinSharpRS20;DbxCommonDriver;dxLayoutControlRS20;vclimg;dxSkinSilverRS20;dxSkinsdxNavBarPainterRS20;dbxcds;DatasnapConnectorsFreePascal;dxPSCoreRS20;dxSkinOffice2013LightGrayRS20;vcldb;dxPSTeeChartRS20;dxSkinOffice2013WhiteRS20;dxSkinMcSkinRS20;CustomIPTransport;dsnap;IndyIPServer;dxSkinCoffeeRS20;dxSkinGlassOceansRS20;IndyCore;dxSkinOffice2010SilverRS20;dxComnRS20;CloudService;dxFlowChartRS20;dxSkinOffice2013DarkGrayRS20;FmxTeeUI;FireDACIBDriver;cxTreeListdxBarPopupMenuRS20;dxSkinOffice2007PinkRS20;dxSkinSpringTimeRS20;dxDBXServerModeRS20;IcsFmxDXE7Run;dxPsPrVwAdvRS20;dxSkiniMaginaryRS20;dxPScxGridLnkRS20;dxSkinDevExpressDarkStyleRS20;tmsdXE7;cxSchedulerGridRS20;dxtrmdRS20;dsnapxml;FireDACDb2Driver;dxSpreadSheetRS20;dxSkinMoneyTwinsRS20;dxSkinOffice2007GreenRS20;dxPScxTLLnkRS20;IcsCommonDXE7Run;cxPivotGridOLAPRS20;dxPSdxFCLnkRS20;bindcompfmx;FireDACODBCDriver;RESTBackendComponents;dbrtl;FireDACCommon;bindcomp;inetdb;DBXOdbcDriver;vclFireDAC;xmlrtl;ibxpress;dxSkinOffice2007BlackRS20;FireDACCommonDriver;bindengine;vclactnband;soaprtl;FMXTee;dxGDIPlusRS20;bindcompvcl;vclie;cxVerticalGridRS20;cxSchedulerRS20;dxSkinBlackRS20;FireDACMSSQLDriver;DBXInformixDriver;dxSkinSummer2008RS20;Intraweb;cxBarEditItemRS20;DataSnapServerMidas;dsnapcon;DBXFirebirdDriver;tmsexdXE7;inet;dxBarRS20;cxDataRS20;dxSkinDarkSideRS20;FireDACMySQLDriver;soapmidas;vclx;dxPScxVGridLnkRS20;dxSkinLondonLiquidSkyRS20;dxCoreRS20;DBXSybaseASADriver;RESTComponents;dxPSPrVwRibbonRS20;dbexpress;dxPSLnksRS20;IndyIPClient;dxSpellCheckerRS20;dxBarExtItemsRS20;dxdbtrRS20;FireDACSqliteDriver;FireDACDSDriver;cxSchedulerRibbonStyleEventEditorRS20;DBXSqliteDriver;ZComponent;fmx;dxSkinVS2010RS20;IndySystem;TeeDB;tethering;dxPScxPCProdRS20;dxSkinXmas2008BlueRS20;vclib;dxTabbedMDIRS20;DataSnapClient;dxmdsRS20;DataSnapProviderClient;DBXSybaseASEDriver;dxdborRS20;dxPSdxDBTVLnkRS20;Classifiers121;MetropolisUILiveTile;dxPScxSchedulerLnkRS20;dxSkinCaramelRS20;dxSkinLiquidSkyRS20;vcldsnap;dxGaugeControlRS20;dxSkinDevExpressStyleRS20;fmxFireDAC;cxPivotGridChartRS20;DBXDb2Driver;DBXOracleDriver;dxSkinOffice2010BlueRS20;dcldxSkinsCoreRS20;vclribbon;cxExportRS20;dxSkinscxSchedulerPainterRS20;dxServerModeRS20;dxSkinMetropolisDarkRS20;fmxase;vcl;DBXMSSQLDriver;IndyIPCommon;dxSkinBlueRS20;dxSkinOffice2010BlackRS20;DataSnapFireDAC;FireDACDBXDriver;dxBarExtDBItemsRS20;soapserver;dxSkinsdxDLPainterRS20;dxPSDBTeeChartRS20;IcsVclDXE7Run;inetdbxpress;dxSkinFoggyRS20;dxSkinBlueprintRS20;dxSkinSharpPlusRS20;dxADOServerModeRS20;FireDACInfxDriver;cxPivotGridRS20;adortl;dxRibbonRS20;FireDACASADriver;dxSkinHighContrastRS20;dxSkinTheAsphaltWorldRS20;dxSkinscxPCPainterRS20;dxBarDBNavRS20;ZDbc;emsclientfiredac;rtl;DbxClientDriver;dxNavBarRS20;dxSkinMetropolisRS20;ZPlain;dxDockingRS20;Tee;dxSkinOffice2007BlueRS20;dxSkinsdxRibbonPainterRS20;dxSkinValentineRS20;DataSnapNativeClient;IndyProtocols;DBXMySQLDriver;dxPScxCommonRS20;dxSkinSevenClassicRS20;dxSkinPumpkinRS20;bindcompdbx;TeeUI;dxSkinDarkRoomRS20;FireDACADSDriver;vcltouch;ZCore;dxSkinStardustRS20;cxEditorsRS20;emsclient;dxorgcRS20;dxPSdxDBOCLnkRS20;ClassifiersDB121;VCLRESTComponents;FireDAC;VclSmp;dxSkinsCoreRS20;DataSnapConnectors;dxSkinSevenRS20;cxLibraryRS20;fmxobj;dxMapControlRS20;ZParseSql;tmsxlsdXE7;dxSkinLilianRS20;dxSkinWhiteprintRS20;FireDACOracleDriver;fmxdae;dxWizardControlRS20;dxPScxPivotGridLnkRS20;dxPSdxOCLnkRS20;dxThemeRS20;cxTreeListRS20;FireDACMSAccDriver;DataSnapIndy10ServerTransport;dxTileControlRS20;$(DCC_UsePackage)</DCC_UsePackage>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
@ -285,7 +293,10 @@
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;LastCompiledTime=05.10.2014 2:47:10;apiKey=</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_iOSSimulator)'!=''">
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;LastCompiledTime=05.10.2014 2:45:03;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false</VerInfo_Keys>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;LastCompiledTime=05.10.2014 2:45:03;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_OSX32)'!=''">
<BT_BuildType>Debug</BT_BuildType>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
@ -341,12 +352,6 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="..\..\..\bin\Win32\cFMXCameraCapture.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cFMXCameraCapture.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
<Platform Name="OSX32">
<Overwrite>true</Overwrite>
@ -362,66 +367,114 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Required="true" Name="DependencyPackage">
<DeployFile LocalName="..\..\..\bin\Win32\cFMXCameraCapture.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cFMXCameraCapture.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
@ -435,121 +488,97 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
@ -560,172 +589,11 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
@ -733,24 +601,173 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<Platform value="Android">True</Platform>
<Platform value="iOSDevice32">True</Platform>
<Platform value="iOSDevice64">True</Platform>
<Platform value="iOSSimulator" ActiveMobileDevice="iPad">True</Platform>
<Platform value="iOSSimulator">True</Platform>
<Platform value="OSX32">True</Platform>
<Platform value="Win32">True</Platform>
<Platform value="Win64">True</Platform>
@ -762,11 +779,3 @@
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=7007
Activate=0
DeleteMapAfterCompile=0
Encrypt Password=""
EurekaLog Last Line -->

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{37904A06-4ABD-411B-8C02-CCC73D6B4098}</ProjectGuid>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>cMatchTemplate.dpr</MainSource>
<Base>True</Base>
@ -155,67 +155,109 @@
<Excluded_Packages Name="$(BDSBIN)\dclofficexp200.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="1">
<DeployClass Required="true" Name="DependencyPackage">
<Deployment Version="2">
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
@ -229,121 +271,97 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
@ -354,172 +372,11 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
@ -527,18 +384,167 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<Platform value="Win32">True</Platform>
@ -551,11 +557,3 @@
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=7007
Activate=0
DeleteMapAfterCompile=1
Encrypt Password=""
EurekaLog Last Line -->

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{E56078FF-356A-459E-9A21-AD24F8DD0A4A}</ProjectGuid>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>cObjectColorTracking.dpr</MainSource>
<Base>True</Base>
@ -120,79 +120,121 @@
<Excluded_Packages Name="$(BDSBIN)\dclofficexp210.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="1">
<DeployFile LocalName="..\..\..\bin\Win32\cObjectColorTracking.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cObjectColorTracking.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<Deployment Version="2">
<DeployFile LocalName="Win32\Debug\cObjectColorTracking.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cObjectColorTracking.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Required="true" Name="DependencyPackage">
<DeployFile LocalName="..\..\..\bin\Win32\cObjectColorTracking.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cObjectColorTracking.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
@ -206,121 +248,97 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
@ -331,172 +349,11 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
@ -504,18 +361,167 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<Platform value="Win32">True</Platform>
@ -528,11 +534,3 @@
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=7007
Activate=0
DeleteMapAfterCompile=0
Encrypt Password=""
EurekaLog Last Line -->

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{15F13174-963C-4D40-A658-9AF254D2590C}</ProjectGuid>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>cVideoWriter.dpr</MainSource>
<Base>True</Base>
@ -116,67 +116,109 @@
<Excluded_Packages Name="$(BDSBIN)\dclofficexp200.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="1">
<DeployClass Required="true" Name="DependencyPackage">
<Deployment Version="2">
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
@ -190,121 +232,97 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
@ -315,172 +333,11 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
@ -488,18 +345,167 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<Platform value="Win32">True</Platform>
@ -512,11 +518,3 @@
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=7007
Activate=0
DeleteMapAfterCompile=1
Encrypt Password=""
EurekaLog Last Line -->

View File

@ -0,0 +1,230 @@
(*
*****************************************************************
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.
*******************************************************************
*)
program cv_CreateCameraCapture30;
{$APPTYPE CONSOLE}
{$R *.res}
{$I OpenCV.inc}
uses
System.SysUtils,
System.Math,
ocv.highgui_c,
ocv.core_c,
ocv.core.types_c,
ocv.imgproc_c,
ocv.imgproc.types_c,
{$IFDEF DelphiOCVVersion_30}
ocv.classes,
{$ENDIF }
uResourcePaths,
ocv.editor;
var
{$IFDEF DelphiOCVVersion_30}
M: IMat;
V: IVideoCapture;
i: TIplImage;
{$ELSE}
capture: PCvCapture = nil;
{$ENDIF}
width: double;
height: double;
frame, capframe: pIplImage;
counter: Integer;
filename: pCVChar;
op: Integer = 8;
opvalue: Integer = -10;
begin
try
{$IFDEF DelphiOCVVersion_30}
// ïîëó÷àåì ëþáóþ ïîäêëþ÷¸ííóþ êàìåðó
V := TVideoCapture.Create;
if not V.Open(CAP_ANY) then
Halt;
// óçíàåì øèðèíó è âûcîòó êàäðà
width := V.Prop[CAP_PROP_FRAME_WIDTH];
height := V.Prop[CAP_PROP_FRAME_HEIGHT];
{$ELSE}
// ïîëó÷àåì ëþáóþ ïîäêëþ÷¸ííóþ êàìåðó
capture := cvCreateCameraCapture(CV_CAP_ANY);
if not Assigned(capture) then
Halt;
// óçíàåì øèðèíó è âûcîòó êàäðà
width := cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
height := cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
{$ENDIF}
WriteLn(Format('[i] %.0f x %.0f', [width, height]));
cvNamedWindow('capture', CV_WINDOW_AUTOSIZE);
WriteLn('[i] press Enter for capture image');
WriteLn('[i] press Space for captured image info');
WriteLn('[i] press Esc for quit!');
counter := 0;
while true do
begin
// ïîëó÷àåì êàäð
{$IFDEF DelphiOCVVersion_30}
if not V.read(M) then
Continue;
i.InitFromMat(M);
frame := @i;
{$ELSE}
frame := cvQueryFrame(capture);
{$ENDIF}
if Assigned(frame) then
begin
if not Assigned(capframe) then
capframe := cvCreateImage(cvGetSize(frame), frame^.depth, frame^.nChannels);
case op of
0:
cvCopyImage(frame, capframe);
1:
Sature(opvalue, frame, capframe);
2:
Expo(opvalue, frame, capframe);
3:
Hue(opvalue, frame, capframe);
4:
Temperature(opvalue, frame, capframe);
5:
White(opvalue, frame, capframe);
6:
Shadow(opvalue, frame, capframe);
7:
Contrast(opvalue, frame, capframe);
8:
Clarity(opvalue, frame, capframe);
else
cvCopyImage(frame, capframe);
end;
end;
// ïîêàçûâàåì
if Assigned(capframe) then
cvShowImage('capture', capframe);
case cvWaitKey(33) of
13:
if Assigned(capframe) then
begin
// cîõðàíÿåì êàäð â ôàéë
filename := pCVChar(AnsiString(cResourceResult + Format('Image %d.jpg'#0, [counter])));
WriteLn('[i] capture - ', filename);
cvSaveImage(filename, capframe);
Inc(counter);
end;
$20:
begin
WriteLn('-------- Camera info --------');
{$IFDEF DelphiOCVVersion_30}
WriteLn('FRAME_WIDTH: ', Trunc(V.Prop[CAP_PROP_FRAME_WIDTH]));
WriteLn('FRAME_HEIGHT: ', Trunc(V.Prop[CAP_PROP_FRAME_HEIGHT]));
WriteLn('FPS: ', Trunc(V.Prop[CAP_PROP_FPS]));
WriteLn('FRAME_COUNT: ', Trunc(V.Prop[CAP_PROP_FRAME_COUNT]));
WriteLn('PROP_FORMAT: ', Trunc(V.Prop[CAP_PROP_FORMAT]));
WriteLn('PROP_MODE: ', Trunc(V.Prop[CAP_PROP_MODE]));
WriteLn('PROP_BRIGHTNESS: ', Trunc(V.Prop[CAP_PROP_BRIGHTNESS]));
WriteLn('PROP_CONTRAST: ', Trunc(V.Prop[CAP_PROP_CONTRAST]));
WriteLn('PROP_SATURATION: ', Trunc(V.Prop[CAP_PROP_SATURATION]));
WriteLn('PROP_HUE: ', Trunc(V.Prop[CAP_PROP_HUE]));
WriteLn('PROP_GAIN: ', Trunc(V.Prop[CAP_PROP_GAIN]));
WriteLn('PROP_EXPOSURE: ', Trunc(V.Prop[CAP_PROP_EXPOSURE]));
WriteLn('PROP_CONVERT_RGB: ', Trunc(V.Prop[CAP_PROP_CONVERT_RGB]));
WriteLn('PROP_WHITE_BALANCE_BLUE_U: ', Trunc(V.Prop[CAP_PROP_WHITE_BALANCE_BLUE_U]));
WriteLn('PROP_RECTIFICATION: ', Trunc(V.Prop[CAP_PROP_RECTIFICATION]));
WriteLn('PROP_SHARPNESS: ', Trunc(V.Prop[CAP_PROP_SHARPNESS]));
WriteLn('PROP_AUTO_EXPOSURE: ', Trunc(V.Prop[CAP_PROP_AUTO_EXPOSURE]));
WriteLn('PROP_GAMMA: ', Trunc(V.Prop[CAP_PROP_GAMMA]));
WriteLn('PROP_TEMPERATURE: ', Trunc(V.Prop[CAP_PROP_TEMPERATURE]));
WriteLn('PROP_TRIGGER: ', Trunc(V.Prop[CAP_PROP_TRIGGER]));
WriteLn('PROP_TRIGGER_DELAY: ', Trunc(V.Prop[CAP_PROP_TRIGGER_DELAY]));
WriteLn('PROP_WHITE_BALANCE_RED_V: ', Trunc(V.Prop[CAP_PROP_WHITE_BALANCE_RED_V]));
WriteLn('PROP_ZOOM: ', Trunc(V.Prop[CAP_PROP_ZOOM]));
WriteLn('PROP_FOCUS: ', Trunc(V.Prop[CAP_PROP_FOCUS]));
WriteLn('PROP_GUID: ', Trunc(V.Prop[CAP_PROP_GUID]));
WriteLn('PROP_ISO_SPEED: ', Trunc(V.Prop[CAP_PROP_ISO_SPEED]));
WriteLn('PROP_BACKLIGHT: ', Trunc(V.Prop[CAP_PROP_BACKLIGHT]));
WriteLn('PROP_PAN: ', Trunc(V.Prop[CAP_PROP_PAN]));
WriteLn('PROP_TILT: ', Trunc(V.Prop[CAP_PROP_TILT]));
WriteLn('PROP_ROLL: ', Trunc(V.Prop[CAP_PROP_ROLL]));
WriteLn('PROP_IRIS: ', Trunc(V.Prop[CAP_PROP_IRIS]));
WriteLn('PROP_SETTINGS: ', Trunc(V.Prop[CAP_PROP_SETTINGS]));
{$ELSE}
WriteLn('FRAME_WIDTH: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH)));
WriteLn('FRAME_HEIGHT: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)));
WriteLn('FPS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)));
WriteLn('FRAME_COUNT: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT)));
WriteLn('PROP_FORMAT: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FORMAT)));
WriteLn('PROP_MODE: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_MODE)));
WriteLn('PROP_BRIGHTNESS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_BRIGHTNESS)));
WriteLn('PROP_CONTRAST: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_CONTRAST)));
WriteLn('PROP_SATURATION: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_SATURATION)));
WriteLn('PROP_HUE: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_HUE)));
WriteLn('PROP_GAIN: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_GAIN)));
WriteLn('PROP_EXPOSURE: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_EXPOSURE)));
WriteLn('PROP_CONVERT_RGB: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_CONVERT_RGB)));
WriteLn('PROP_WHITE_BALANCE_BLUE_U: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_WHITE_BALANCE_BLUE_U)));
WriteLn('PROP_RECTIFICATION: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_RECTIFICATION)));
WriteLn('PROP_MONOCROME: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_MONOCROME)));
WriteLn('PROP_SHARPNESS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_SHARPNESS)));
WriteLn('PROP_AUTO_EXPOSURE: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_AUTO_EXPOSURE)));
WriteLn('PROP_GAMMA: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_GAMMA)));
WriteLn('PROP_TEMPERATURE: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_TEMPERATURE)));
WriteLn('PROP_TRIGGER: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_TRIGGER)));
WriteLn('PROP_TRIGGER_DELAY: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_TRIGGER_DELAY)));
WriteLn('PROP_WHITE_BALANCE_RED_V: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_WHITE_BALANCE_RED_V)));
WriteLn('PROP_ZOOM: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_ZOOM)));
WriteLn('PROP_FOCUS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_FOCUS)));
WriteLn('PROP_GUID: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_GUID)));
WriteLn('PROP_ISO_SPEED: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_ISO_SPEED)));
WriteLn('PROP_MAX_DC1394: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_MAX_DC1394)));
WriteLn('PROP_BACKLIGHT: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_BACKLIGHT)));
WriteLn('PROP_PAN: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_PAN)));
WriteLn('PROP_TILT: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_TILT)));
WriteLn('PROP_ROLL: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_ROLL)));
WriteLn('PROP_IRIS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_IRIS)));
WriteLn('PROP_SETTINGS: ', Trunc(cvGetCaptureProperty(capture, CV_CAP_PROP_SETTINGS)));
{$ENDIF}
end;
27:
Break;
end;
end;
// îcâîáîæäàåì ðåcóðcû
if Assigned(capframe) then
cvReleaseImage(capframe);
{$IFDEF DelphiOCVVersion_30}
{$ELSE}
cvReleaseCapture(capture);
{$ENDIF}
cvDestroyWindow('capture');
except
on E: Exception do
WriteLn(E.ClassName, ': ', E.Message);
end;
end.

View File

@ -0,0 +1,640 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{5E67F385-27F1-49EA-BBBC-458BEF9B82AD}</ProjectGuid>
<MainSource>cv_CreateCameraCapture30.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<TargetedPlatforms>3</TargetedPlatforms>
<AppType>Console</AppType>
<FrameworkType>None</FrameworkType>
<ProjectVersion>18.0</ProjectVersion>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
<Base_Android>true</Base_Android>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Base)'=='true') or '$(Base_iOSDevice32)'!=''">
<Base_iOSDevice32>true</Base_iOSDevice32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
<Base_iOSDevice64>true</Base_iOSDevice64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Base)'=='true') or '$(Base_iOSSimulator)'!=''">
<Base_iOSSimulator>true</Base_iOSSimulator>
<CfgParent>Base</CfgParent>
<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="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<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)'=='iOSDevice32' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSDevice32)'!=''">
<Cfg_2_iOSDevice32>true</Cfg_2_iOSDevice32>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSDevice64)'!=''">
<Cfg_2_iOSDevice64>true</Cfg_2_iOSDevice64>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSSimulator)'!=''">
<Cfg_2_iOSSimulator>true</Cfg_2_iOSSimulator>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<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)'!=''">
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<SanitizedProjectName>cv_CreateCameraCapture30</SanitizedProjectName>
<DCC_E>false</DCC_E>
<DCC_S>false</DCC_S>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
<Manifest_File>None</Manifest_File>
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
<DCC_ExeOutput>..\..\..\bin\$(Platform)</DCC_ExeOutput>
<VerInfo_Locale>1049</VerInfo_Locale>
<DCC_N>false</DCC_N>
<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>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Android)'!=''">
<AUP_CAMERA>true</AUP_CAMERA>
<AUP_ACCESS_COARSE_LOCATION>true</AUP_ACCESS_COARSE_LOCATION>
<Android_LauncherIcon36>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png</Android_LauncherIcon36>
<Android_LauncherIcon144>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png</Android_LauncherIcon144>
<AUP_WRITE_EXTERNAL_STORAGE>true</AUP_WRITE_EXTERNAL_STORAGE>
<Android_LauncherIcon48>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png</Android_LauncherIcon48>
<EnabledSysJars>android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
<Android_SplashImage470>$(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png</Android_SplashImage470>
<AUP_READ_CALENDAR>true</AUP_READ_CALENDAR>
<Android_LauncherIcon96>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png</Android_LauncherIcon96>
<AUP_CALL_PHONE>true</AUP_CALL_PHONE>
<Android_SplashImage960>$(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png</Android_SplashImage960>
<AUP_INTERNET>true</AUP_INTERNET>
<AUP_WRITE_CALENDAR>true</AUP_WRITE_CALENDAR>
<AUP_ACCESS_FINE_LOCATION>true</AUP_ACCESS_FINE_LOCATION>
<Android_LauncherIcon72>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png</Android_LauncherIcon72>
<Android_SplashImage426>$(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png</Android_SplashImage426>
<AUP_READ_EXTERNAL_STORAGE>true</AUP_READ_EXTERNAL_STORAGE>
<BT_BuildType>Debug</BT_BuildType>
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
<AUP_READ_PHONE_STATE>true</AUP_READ_PHONE_STATE>
<Android_SplashImage640>$(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png</Android_SplashImage640>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice32)'!=''">
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<VerInfo_BundleId>$(MSBuildProjectName)</VerInfo_BundleId>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<BT_BuildType>Debug</BT_BuildType>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<VerInfo_BundleId>$(MSBuildProjectName)</VerInfo_BundleId>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<BT_BuildType>Debug</BT_BuildType>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSSimulator)'!=''">
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
</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="'$(Base_Win64)'!=''">
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>0</DCC_DebugInformation>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_Optimize>false</DCC_Optimize>
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSDevice32)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSDevice64)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSSimulator)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</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">cv_CreateCameraCapture30.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>
</Delphi.Personality>
<Platforms>
<Platform value="Android">False</Platform>
<Platform value="iOSDevice32">False</Platform>
<Platform value="iOSDevice64">False</Platform>
<Platform value="iOSSimulator">False</Platform>
<Platform value="OSX32">False</Platform>
<Platform value="Win32">True</Platform>
<Platform value="Win64">True</Platform>
</Platforms>
<Deployment Version="2">
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
<Platform Name="OSX32">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
<Platform Name="iOSSimulator">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
<Platform Name="iOSSimulator">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="..\..\..\bin\Win32\cv_CreateCameraCapture30.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>cv_CreateCameraCapture30.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceDebug">
<Platform Name="iOSDevice64">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList"/>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements"/>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList"/>
<DeployClass Name="ProjectOSXEntitlements"/>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
</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')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>

View File

@ -7,12 +7,32 @@
<TargetedPlatforms>3</TargetedPlatforms>
<AppType>Console</AppType>
<FrameworkType>None</FrameworkType>
<ProjectVersion>17.2</ProjectVersion>
<ProjectVersion>18.0</ProjectVersion>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
<Base_Android>true</Base_Android>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Base)'=='true') or '$(Base_iOSDevice32)'!=''">
<Base_iOSDevice32>true</Base_iOSDevice32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
<Base_iOSDevice64>true</Base_iOSDevice64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Base)'=='true') or '$(Base_iOSSimulator)'!=''">
<Base_iOSSimulator>true</Base_iOSSimulator>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
<Base_Win32>true</Base_Win32>
<CfgParent>Base</CfgParent>
@ -45,6 +65,24 @@
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSDevice32)'!=''">
<Cfg_2_iOSDevice32>true</Cfg_2_iOSDevice32>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSDevice64)'!=''">
<Cfg_2_iOSDevice64>true</Cfg_2_iOSDevice64>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSSimulator)'!=''">
<Cfg_2_iOSSimulator>true</Cfg_2_iOSSimulator>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<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>
@ -58,6 +96,8 @@
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<SanitizedProjectName>ObjectTrack</SanitizedProjectName>
<DCC_S>false</DCC_S>
@ -70,6 +110,85 @@
<DCC_E>false</DCC_E>
<DCC_F>false</DCC_F>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Android)'!=''">
<Android_SplashImage640>$(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png</Android_SplashImage640>
<Android_LauncherIcon48>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png</Android_LauncherIcon48>
<AUP_WRITE_CALENDAR>true</AUP_WRITE_CALENDAR>
<AUP_READ_CALENDAR>true</AUP_READ_CALENDAR>
<Android_SplashImage960>$(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png</Android_SplashImage960>
<Android_LauncherIcon72>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png</Android_LauncherIcon72>
<AUP_READ_EXTERNAL_STORAGE>true</AUP_READ_EXTERNAL_STORAGE>
<AUP_WRITE_EXTERNAL_STORAGE>true</AUP_WRITE_EXTERNAL_STORAGE>
<Android_LauncherIcon36>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png</Android_LauncherIcon36>
<Android_SplashImage470>$(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png</Android_SplashImage470>
<AUP_READ_PHONE_STATE>true</AUP_READ_PHONE_STATE>
<BT_BuildType>Debug</BT_BuildType>
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey=</VerInfo_Keys>
<AUP_CAMERA>true</AUP_CAMERA>
<EnabledSysJars>android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
<Android_LauncherIcon144>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png</Android_LauncherIcon144>
<AUP_ACCESS_FINE_LOCATION>true</AUP_ACCESS_FINE_LOCATION>
<Android_SplashImage426>$(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png</Android_SplashImage426>
<Android_LauncherIcon96>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png</Android_LauncherIcon96>
<AUP_ACCESS_COARSE_LOCATION>true</AUP_ACCESS_COARSE_LOCATION>
<AUP_CALL_PHONE>true</AUP_CALL_PHONE>
<AUP_INTERNET>true</AUP_INTERNET>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice32)'!=''">
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<VerInfo_BundleId>$(MSBuildProjectName)</VerInfo_BundleId>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<BT_BuildType>Debug</BT_BuildType>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<VerInfo_BundleId>$(MSBuildProjectName)</VerInfo_BundleId>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<BT_BuildType>Debug</BT_BuildType>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSSimulator)'!=''">
<iPad_Launch768x1024>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png</iPad_Launch768x1024>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<iPad_Launch1536x2048>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png</iPad_Launch1536x2048>
<iPhone_AppIcon120>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png</iPhone_AppIcon120>
<iPhone_Spotlight80>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png</iPhone_Spotlight80>
<iPad_AppIcon76>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png</iPad_AppIcon76>
<iPhone_Spotlight40>$(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png</iPhone_Spotlight40>
<iPad_SpotLight40>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png</iPad_SpotLight40>
<VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone &amp; iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=</VerInfo_Keys>
<iPhone_AppIcon60>$(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png</iPhone_AppIcon60>
<iPad_AppIcon152>$(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png</iPad_AppIcon152>
<VerInfo_UIDeviceFamily>iPhoneAndiPad</VerInfo_UIDeviceFamily>
<iPad_SpotLight80>$(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png</iPad_SpotLight80>
<iPad_Launch1024x768>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png</iPad_Launch1024x768>
<iPad_Launch2048x1536>$(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png</iPad_Launch2048x1536>
</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>
<Manifest_File>None</Manifest_File>
@ -106,6 +225,15 @@
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_Optimize>false</DCC_Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSDevice32)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSDevice64)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_iOSSimulator)'!=''">
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>..\..\..\bin\$(Platform)</DCC_ExeOutput>
@ -190,6 +318,10 @@
</Excluded_Packages>
</Delphi.Personality>
<Platforms>
<Platform value="Android">False</Platform>
<Platform value="iOSDevice32">False</Platform>
<Platform value="iOSDevice64">False</Platform>
<Platform value="iOSSimulator">False</Platform>
<Platform value="OSX32">False</Platform>
<Platform value="Win32">True</Platform>
<Platform value="Win64">True</Platform>
@ -200,11 +332,3 @@
<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>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=7007
Activate=0
DeleteMapAfterCompile=0
Encrypt Password=""
EurekaLog Last Line -->

View File

@ -0,0 +1,161 @@
(*
*****************************************************************
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.
*******************************************************************
*)
program ClassTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
WinApi.Windows,
System.SysUtils,
ocv.classes,
ocv.highgui_c,
uResourcePaths;
procedure TestCameraCapture;
procedure PrintCameraInfo(V: IVideoCapture);
begin
WriteLn('-------- Camera info --------');
WriteLn('FRAME_WIDTH: ', Trunc(V.Prop[CAP_PROP_FRAME_WIDTH]));
WriteLn('FRAME_HEIGHT: ', Trunc(V.Prop[CAP_PROP_FRAME_HEIGHT]));
WriteLn('FPS: ', Trunc(V.Prop[CAP_PROP_FPS]));
WriteLn('FRAME_COUNT: ', Trunc(V.Prop[CAP_PROP_FRAME_COUNT]));
WriteLn('PROP_FORMAT: ', Trunc(V.Prop[CAP_PROP_FORMAT]));
WriteLn('PROP_MODE: ', Trunc(V.Prop[CAP_PROP_MODE]));
WriteLn('PROP_BRIGHTNESS: ', Trunc(V.Prop[CAP_PROP_BRIGHTNESS]));
WriteLn('PROP_CONTRAST: ', Trunc(V.Prop[CAP_PROP_CONTRAST]));
WriteLn('PROP_SATURATION: ', Trunc(V.Prop[CAP_PROP_SATURATION]));
WriteLn('PROP_HUE: ', Trunc(V.Prop[CAP_PROP_HUE]));
WriteLn('PROP_GAIN: ', Trunc(V.Prop[CAP_PROP_GAIN]));
WriteLn('PROP_EXPOSURE: ', Trunc(V.Prop[CAP_PROP_EXPOSURE]));
WriteLn('PROP_CONVERT_RGB: ', Trunc(V.Prop[CAP_PROP_CONVERT_RGB]));
WriteLn('PROP_WHITE_BALANCE_BLUE_U: ', Trunc(V.Prop[CAP_PROP_WHITE_BALANCE_BLUE_U]));
WriteLn('PROP_RECTIFICATION: ', Trunc(V.Prop[CAP_PROP_RECTIFICATION]));
WriteLn('PROP_SHARPNESS: ', Trunc(V.Prop[CAP_PROP_SHARPNESS]));
WriteLn('PROP_AUTO_EXPOSURE: ', Trunc(V.Prop[CAP_PROP_AUTO_EXPOSURE]));
WriteLn('PROP_GAMMA: ', Trunc(V.Prop[CAP_PROP_GAMMA]));
WriteLn('PROP_TEMPERATURE: ', Trunc(V.Prop[CAP_PROP_TEMPERATURE]));
WriteLn('PROP_TRIGGER: ', Trunc(V.Prop[CAP_PROP_TRIGGER]));
WriteLn('PROP_TRIGGER_DELAY: ', Trunc(V.Prop[CAP_PROP_TRIGGER_DELAY]));
WriteLn('PROP_WHITE_BALANCE_RED_V: ', Trunc(V.Prop[CAP_PROP_WHITE_BALANCE_RED_V]));
WriteLn('PROP_ZOOM: ', Trunc(V.Prop[CAP_PROP_ZOOM]));
WriteLn('PROP_FOCUS: ', Trunc(V.Prop[CAP_PROP_FOCUS]));
WriteLn('PROP_GUID: ', Trunc(V.Prop[CAP_PROP_GUID]));
WriteLn('PROP_ISO_SPEED: ', Trunc(V.Prop[CAP_PROP_ISO_SPEED]));
WriteLn('PROP_BACKLIGHT: ', Trunc(V.Prop[CAP_PROP_BACKLIGHT]));
WriteLn('PROP_PAN: ', Trunc(V.Prop[CAP_PROP_PAN]));
WriteLn('PROP_TILT: ', Trunc(V.Prop[CAP_PROP_TILT]));
WriteLn('PROP_ROLL: ', Trunc(V.Prop[CAP_PROP_ROLL]));
WriteLn('PROP_IRIS: ', Trunc(V.Prop[CAP_PROP_IRIS]));
WriteLn('PROP_SETTINGS: ', Trunc(V.Prop[CAP_PROP_SETTINGS]));
end;
const
windowName = 'Test VideoCapture'; // Name shown in the GUI window.
VK_ESCAPE = 27;
DESIRED_CAMERA_WIDTH: Integer = 800;
DESIRED_CAMERA_HEIGHT: Integer = 600;
Var
M: IMat;
V: IVideoCapture;
begin
V := TVideoCapture.Create;
if V.Open(CAP_ANY) then
begin
WriteLn('CAP_PROP_FRAME_WIDTH=', DESIRED_CAMERA_WIDTH, ' -> ', V.PropSet(CAP_PROP_FRAME_WIDTH, DESIRED_CAMERA_WIDTH));
// V.Prop[CAP_PROP_FRAME_WIDTH] := DESIRED_CAMERA_WIDTH;
WriteLn('CAP_PROP_FRAME_HEIGHT=', DESIRED_CAMERA_HEIGHT, ' -> ', V.PropSet(CAP_PROP_FRAME_HEIGHT, DESIRED_CAMERA_HEIGHT));
// V.Prop[CAP_PROP_FRAME_HEIGHT] := DESIRED_CAMERA_HEIGHT;
namedWindow(windowName);
while true do
begin
// Grab the next camera frame. Note that you can't modify camera frames.
if V.read(M) then
begin
if Assigned(M) and (M.empty()) then
begin
WriteLn('ERROR: Couldn''t grab the next camera frame.');
Halt(1);
end;
imshow(windowName, M);
end;
// IMPORTANT: Wait for atleast 20 milliseconds, so that the image can be displayed on the screen!
case waitKey(20) of
VK_ESCAPE:
break;
32:
PrintCameraInfo(V);
end;
end;
destroyAllWindows;
end;
end;
procedure TestCameraCaptureFileName;
const
windowName = 'Test VideoCapture'; // Name shown in the GUI window.
VK_ESCAPE = 27;
VIDEO_FILE_NAME = cResourceMedia + '768x576.avi';
Var
M: IMat;
V: IVideoCapture;
begin
V := TVideoCapture.Create(VIDEO_FILE_NAME);
if V.isOpened then
begin
namedWindow(windowName);
while true do
begin
// Grab the next camera frame. Note that you can't modify camera frames.
if V.read(M) then
begin
if Assigned(M) and (M.empty()) then
begin
WriteLn('ERROR: Couldn''t grab the next camera frame.');
Halt(1);
end;
imshow(windowName, M);
end;
// IMPORTANT: Wait for atleast 20 milliseconds, so that the image can be displayed on the screen!
if (waitKey(20) = VK_ESCAPE) then // Escape Key
break; // Quit the program!
end;
destroyAllWindows;
end;
end;
begin
try
TestCameraCapture;
except
on E: Exception do
WriteLn(E.ClassName, ': ', E.Message);
end;
end.

View File

@ -0,0 +1,590 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{E4C624B6-0BB7-4001-BB0D-CB99A2927E0D}</ProjectGuid>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>None</FrameworkType>
<MainSource>ClassTest.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Console</AppType>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
<Base_Android>true</Base_Android>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Base)'=='true') or '$(Base_iOSDevice32)'!=''">
<Base_iOSDevice32>true</Base_iOSDevice32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
<Base_iOSDevice64>true</Base_iOSDevice64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Base)'=='true') or '$(Base_iOSSimulator)'!=''">
<Base_iOSSimulator>true</Base_iOSSimulator>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''">
<Base_OSX32>true</Base_OSX32>
<CfgParent>Base</CfgParent>
<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="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
<SanitizedProjectName>ClassTest</SanitizedProjectName>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Android)'!=''">
<Android_LauncherIcon96>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png</Android_LauncherIcon96>
<Android_LauncherIcon48>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png</Android_LauncherIcon48>
<EnabledSysJars>android-support-v4.dex.jar;apk-expansion.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
<Android_SplashImage470>$(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png</Android_SplashImage470>
<DCC_UsePackage>DBXSqliteDriver;tethering;FireDACDBXDriver;RESTBackendComponents;bindengine;CloudService;DataSnapClient;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;rtl;DbxClientDriver;IndyIPClient;DataSnapProviderClient;RESTComponents;DBXInterBaseDriver;emsclientfiredac;DataSnapFireDAC;bindcompfmx;FmxTeeUI;FireDACIBDriver;fmx;dbexpress;IndyCore;dsnap;DataSnapCommon;emsclient;FireDACCommon;soapserver;FireDACCommonDriver;inet;IndyIPCommon;FireDAC;FireDACSqliteDriver;ibmonitor;ibxpress;ibxbindings;FireDACDSDriver;CustomIPTransport;bindcomp;dbxcds;dsnapxml;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
<Android_LauncherIcon36>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png</Android_LauncherIcon36>
<Android_SplashImage960>$(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png</Android_SplashImage960>
<Android_LauncherIcon72>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png</Android_LauncherIcon72>
<Android_SplashImage426>$(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png</Android_SplashImage426>
<Android_LauncherIcon144>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png</Android_LauncherIcon144>
<Android_SplashImage640>$(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png</Android_SplashImage640>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice32)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tethering;FireDACDBXDriver;RESTBackendComponents;bindengine;CloudService;DataSnapClient;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;rtl;DbxClientDriver;IndyIPClient;DataSnapProviderClient;RESTComponents;DBXInterBaseDriver;emsclientfiredac;DataSnapFireDAC;bindcompfmx;FmxTeeUI;FireDACIBDriver;fmx;dbexpress;IndyCore;dsnap;DataSnapCommon;emsclient;FireDACCommon;soapserver;FireDACCommonDriver;inet;IndyIPCommon;FireDAC;FireDACSqliteDriver;ibmonitor;ibxpress;ibxbindings;FireDACDSDriver;CustomIPTransport;bindcomp;dbxcds;dsnapxml;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tethering;FireDACDBXDriver;RESTBackendComponents;bindengine;CloudService;DataSnapClient;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;rtl;DbxClientDriver;IndyIPClient;DataSnapProviderClient;RESTComponents;DBXInterBaseDriver;emsclientfiredac;DataSnapFireDAC;bindcompfmx;FmxTeeUI;FireDACIBDriver;fmx;dbexpress;IndyCore;dsnap;DataSnapCommon;emsclient;FireDACCommon;soapserver;FireDACCommonDriver;inet;IndyIPCommon;FireDAC;FireDACSqliteDriver;ibmonitor;ibxpress;ibxbindings;FireDACDSDriver;CustomIPTransport;bindcomp;dbxcds;dsnapxml;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_iOSSimulator)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tethering;FireDACDBXDriver;RESTBackendComponents;bindengine;CloudService;DataSnapClient;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;rtl;DbxClientDriver;IndyIPClient;DataSnapProviderClient;RESTComponents;DBXInterBaseDriver;emsclientfiredac;DataSnapFireDAC;bindcompfmx;FmxTeeUI;FireDACIBDriver;fmx;dbexpress;IndyCore;dsnap;DataSnapCommon;emsclient;FireDACCommon;soapserver;FireDACCommonDriver;inet;IndyIPCommon;FireDAC;FireDACSqliteDriver;ibmonitor;ibxpress;ibxbindings;FireDACDSDriver;CustomIPTransport;bindcomp;dbxcds;dsnapxml;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_OSX32)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tethering;FireDACMSSQLDriver;FireDACDBXDriver;RESTBackendComponents;bindengine;CloudService;FireDACMySQLDriver;DataSnapClient;bindcompdbx;IndyIPServer;IndySystem;fmxFireDAC;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;rtl;DbxClientDriver;DBXSybaseASADriver;IndyIPClient;FireDACODBCDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;FireDACMongoDBDriver;DataSnapServerMidas;RESTComponents;DBXInterBaseDriver;emsclientfiredac;DataSnapFireDAC;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;dbexpress;IndyCore;dsnap;DataSnapCommon;emsclient;FireDACCommon;soapserver;FireDACOracleDriver;DBXMySQLDriver;DBXFirebirdDriver;FireDACCommonDriver;inet;IndyIPCommon;FireDAC;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;ibxpress;DataSnapServer;ibxbindings;FireDACDSDriver;CustomIPTransport;bindcomp;DBXInformixDriver;dbxcds;dsnapxml;dbrtl;inetdbxpress;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
<DCC_UsePackage>DBXSqliteDriver;fmxase;tmsdXE8;DBXDb2Driver;vclactnband;vclFireDAC;dxtrmdRS21;tethering;cxSchedulerTreeBrowserRS21;FireDACADSDriver;JvPluginSystem;dxSpellCheckerRS21;FireDACMSSQLDriver;vcltouch;JvBands;vcldb;Intraweb;svn;JvJans;dxGDIPlusRS21;dxPScxPivotGridLnkRS21;NxCollectionDsgn_dxe8;JvDotNetCtrls;dxTileControlRS21;dxPScxGridLnkRS21;cxPivotGridRS21;vclib;dxPSLnksRS21;dxPSdxDBTVLnkRS21;dxPsPrVwAdvRS21;dxPSPrVwRibbonRS21;dxBarDBNavRS21;FireDACDBXDriver;dclFFMSource300;vclx;cxTreeListRS21;dxPSdxSpreadSheetLnkRS21;dxADOServerModeRS21;RESTBackendComponents;dxPScxPCProdRS21;NxCommonDsgn_dxe8;viTimeLineDPK;VCLRESTComponents;dxPSdxOCLnkRS21;vclie;NxCommonRun_dxe8;bindengine;CloudService;JvHMI;FireDACMySQLDriver;dxBarRS21;DataSnapClient;bindcompdbx;NxDBGridRun_dxe8;DBXSybaseASEDriver;IndyIPServer;dxdborRS21;IndySystem;dxPSCoreRS21;dxSpreadSheetRS21;dsnapcon;dxPScxExtCommonRS21;cxSchedulerRibbonStyleEventEditorRS21;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;Jcl;dxDockingRS21;dxPSdxDBOCLnkRS21;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;NxDBGridDsgn_dxe8;JvManagedThreads;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;JvTimeFramework;cxTreeListdxBarPopupMenuRS21;rtl;cxEditorsRS21;DbxClientDriver;DBXSybaseASADriver;JvSystem;JvStdCtrls;cxDataRS21;appanalytics;IndyIPClient;bindcompvcl;dxRibbonRS21;cxPivotGridChartRS21;TeeUI;JvDocking;JvPascalInterpreter;VclSmp;dxmdsRS21;FireDACODBCDriver;dxFlowChartRS21;JclVcl;DataSnapIndy10ServerTransport;dxPScxCommonRS21;tmsxlsdXE8;DataSnapProviderClient;FireDACMongoDBDriver;JvControls;JvPrintPreview;dxServerModeRS21;cxGridRS21;NxGridDsgn_dxe8;DataSnapServerMidas;RESTComponents;ZComponent;DBXInterBaseDriver;ZCore;emsclientfiredac;dxPScxSchedulerLnkRS21;DataSnapFireDAC;svnui;JvGlobus;DBXMSSQLDriver;JvMM;dxPSDBTeeChartRS21;DatasnapConnectorsFreePascal;dxTabbedMDIRS21;bindcompfmx;JvNet;DBXOracleDriver;inetdb;JvAppFrm;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;JvWizards;cxPivotGridOLAPRS21;NxGridRun_dxe8;dbexpress;IndyCore;dxThemeRS21;NxSheetRun_dxe8;tmsexdXE8;ZParseSql;JvPageComps;dsnap;DataSnapCommon;emsclient;cxVerticalGridRS21;FireDACCommon;dxPSdxFCLnkRS21;JvDB;NxAddonsRun_dxe8;DataSnapConnectors;NxInspectorRun_dxe8;soapserver;dxCoreRS21;JclDeveloperTools;FireDACOracleDriver;DBXMySQLDriver;JvCmp;DBXFirebirdDriver;XiButtonXE4;FireDACCommonDriver;cxBarEditItemRS21;dxBarExtItemsRS21;dxMapControlRS21;inet;IndyIPCommon;JvCustom;cxLibraryRS21;vcl;JvXPCtrls;dxBarExtDBItemsRS21;FireDACDb2Driver;cxExportRS21;tmswizdXE8;dxdbtrRS21;dxorgcRS21;ZDbc;TeeDB;FireDAC;dxPScxTLLnkRS21;JvCore;OverbyteIcsD10SRun;JvCrypt;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;dxFireDACServerModeRS21;dxWizardControlRS21;dxPSTeeChartRS21;dxNavBarRS21;JvDlgs;JvRuntimeDesign;ibxpress;Tee;DataSnapServer;ibxbindings;vclwinx;FireDACDSDriver;NxCollectionRun_dxe8;dxLayoutControlRS21;CustomIPTransport;vcldsnap;dxPScxVGridLnkRS21;bindcomp;ZPlain;DBXInformixDriver;officeXPrt;autoupgrXE5;vclribbon;dbxcds;cxSchedulerGridRS21;adortl;dxComnRS21;dsnapxml;dbrtl;inetdbxpress;IndyProtocols;cxPageControlRS21;NxInspectorDsgn_dxe8;JclContainers;dxPSdxLCLnkRS21;cxSchedulerRS21;$(DCC_UsePackage)</DCC_UsePackage>
<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>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<DCC_UsePackage>DBXSqliteDriver;fmxase;tmsdXE8;DBXDb2Driver;vclactnband;vclFireDAC;dxtrmdRS21;tethering;cxSchedulerTreeBrowserRS21;FireDACADSDriver;dxSpellCheckerRS21;FireDACMSSQLDriver;vcltouch;vcldb;Intraweb;dxGDIPlusRS21;dxPScxPivotGridLnkRS21;NxCollectionDsgn_dxe8;dxTileControlRS21;dxPScxGridLnkRS21;cxPivotGridRS21;vclib;dxPSLnksRS21;dxPSdxDBTVLnkRS21;dxPsPrVwAdvRS21;dxPSPrVwRibbonRS21;dxBarDBNavRS21;FireDACDBXDriver;vclx;cxTreeListRS21;dxPSdxSpreadSheetLnkRS21;dxADOServerModeRS21;RESTBackendComponents;dxPScxPCProdRS21;NxCommonDsgn_dxe8;VCLRESTComponents;dxPSdxOCLnkRS21;vclie;NxCommonRun_dxe8;bindengine;CloudService;FireDACMySQLDriver;dxBarRS21;DataSnapClient;bindcompdbx;NxDBGridRun_dxe8;DBXSybaseASEDriver;IndyIPServer;dxdborRS21;IndySystem;dxPSCoreRS21;dxSpreadSheetRS21;dsnapcon;dxPScxExtCommonRS21;cxSchedulerRibbonStyleEventEditorRS21;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;dxDockingRS21;dxPSdxDBOCLnkRS21;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;NxDBGridDsgn_dxe8;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;cxTreeListdxBarPopupMenuRS21;rtl;cxEditorsRS21;DbxClientDriver;DBXSybaseASADriver;cxDataRS21;appanalytics;IndyIPClient;bindcompvcl;dxRibbonRS21;cxPivotGridChartRS21;TeeUI;VclSmp;dxmdsRS21;FireDACODBCDriver;dxFlowChartRS21;DataSnapIndy10ServerTransport;dxPScxCommonRS21;DataSnapProviderClient;FireDACMongoDBDriver;dxServerModeRS21;cxGridRS21;NxGridDsgn_dxe8;DataSnapServerMidas;RESTComponents;ZComponent;DBXInterBaseDriver;ZCore;emsclientfiredac;dxPScxSchedulerLnkRS21;DataSnapFireDAC;DBXMSSQLDriver;dxPSDBTeeChartRS21;DatasnapConnectorsFreePascal;dxTabbedMDIRS21;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;cxPivotGridOLAPRS21;NxGridRun_dxe8;dbexpress;IndyCore;dxThemeRS21;NxSheetRun_dxe8;tmsexdXE8;ZParseSql;dsnap;DataSnapCommon;emsclient;cxVerticalGridRS21;FireDACCommon;dxPSdxFCLnkRS21;NxAddonsRun_dxe8;DataSnapConnectors;NxInspectorRun_dxe8;soapserver;dxCoreRS21;FireDACOracleDriver;DBXMySQLDriver;DBXFirebirdDriver;FireDACCommonDriver;cxBarEditItemRS21;dxBarExtItemsRS21;dxMapControlRS21;inet;IndyIPCommon;cxLibraryRS21;vcl;dxBarExtDBItemsRS21;FireDACDb2Driver;cxExportRS21;dxdbtrRS21;dxorgcRS21;ZDbc;TeeDB;FireDAC;dxPScxTLLnkRS21;OverbyteIcsD10SRun;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;dxFireDACServerModeRS21;dxWizardControlRS21;dxPSTeeChartRS21;dxNavBarRS21;ibxpress;Tee;DataSnapServer;ibxbindings;vclwinx;FireDACDSDriver;NxCollectionRun_dxe8;dxLayoutControlRS21;CustomIPTransport;vcldsnap;dxPScxVGridLnkRS21;bindcomp;ZPlain;DBXInformixDriver;officeXPrt;vclribbon;dbxcds;cxSchedulerGridRS21;adortl;dxComnRS21;dsnapxml;dbrtl;inetdbxpress;IndyProtocols;cxPageControlRS21;NxInspectorDsgn_dxe8;dxPSdxLCLnkRS21;cxSchedulerRS21;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_DebugDCUs>true</DCC_DebugDCUs>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<DCC_ExeOutput>..\..\..\bin\$(Platform)</DCC_ExeOutput>
<Manifest_File>None</Manifest_File>
<VerInfo_Locale>1033</VerInfo_Locale>
<DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>0</DCC_DebugInformation>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Debug">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>Application</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ClassTest.dpr</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k230.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment Version="2">
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
<Platform Name="OSX32">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
<Platform Name="iOSSimulator">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
<Platform Name="iOSSimulator">
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="..\..\..\bin\Win32\ClassTest.exe" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>ClassTest.exe</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidClassesDexFile">
<Platform Name="Android">
<RemoteDir>classes</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AdditionalDebugSymbols">
<Platform Name="Win32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch768">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon144">
<Platform Name="Android">
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeMipsFile">
<Platform Name="Android">
<RemoteDir>library\lib\mips</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="ProjectOutput">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyFramework">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.framework</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1024">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceDebug">
<Platform Name="iOSDevice64">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeX86File">
<Platform Name="Android">
<RemoteDir>library\lib\x86</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch320">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSInfoPList">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidLibnativeArmeabiFile">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DebugSymbols">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch1536">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage470">
<Platform Name="Android">
<RemoteDir>res\drawable-normal</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon96">
<Platform Name="Android">
<RemoteDir>res\drawable-xhdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage640">
<Platform Name="Android">
<RemoteDir>res\drawable-large</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPhone_Launch640x1136">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSEntitlements">
<Platform Name="iOSDevice64">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon72">
<Platform Name="Android">
<RemoteDir>res\drawable-hdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidGDBServer">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXInfoPList">
<Platform Name="OSX32">
<RemoteDir>Contents</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXEntitlements">
<Platform Name="OSX32">
<RemoteDir>../</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="iPad_Launch2048">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStyles">
<Platform Name="Android">
<RemoteDir>res\values</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage426">
<Platform Name="Android">
<RemoteDir>res\drawable-small</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashImageDef">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSResource">
<Platform Name="iOSSimulator">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectAndroidManifest">
<Platform Name="Android">
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_DefaultAppIcon">
<Platform Name="Android">
<RemoteDir>res\drawable</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="File">
<Platform Name="Win32">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice64">
<Operation>0</Operation>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\Resources\StartUp\</RemoteDir>
<Operation>0</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>0</Operation>
</Platform>
<Platform Name="Android">
<Operation>0</Operation>
</Platform>
<Platform Name="iOSSimulator">
<Operation>0</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidServiceOutput">
<Platform Name="Android">
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Required="true" Name="DependencyPackage">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon48">
<Platform Name="Android">
<RemoteDir>res\drawable-mdpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_SplashImage960">
<Platform Name="Android">
<RemoteDir>res\drawable-xlarge</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_LauncherIcon36">
<Platform Name="Android">
<RemoteDir>res\drawable-ldpi</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
</Deployment>
<Platforms>
<Platform value="Android">False</Platform>
<Platform value="iOSDevice32">False</Platform>
<Platform value="iOSDevice64">False</Platform>
<Platform value="iOSSimulator">False</Platform>
<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')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>

Binary file not shown.

View File

@ -15,6 +15,7 @@
{$ENDIF}
{$POINTERMATH ON}
{$DEFINE SAFELOADLIB}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
@ -919,7 +920,7 @@
{$DEFINE RTL280_UP}
{$DEFINE RTL290_UP}
{$UNDEF UNKNOWN_COMPILER_VERSION}
{$ENDIF VER290}
{$ENDIF VER300}
{$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version)
{$DEFINE BDS}

View File

@ -3,19 +3,19 @@
<ProjectGuid>{BD0EE7BD-ED70-4DCA-AA92-522F18635A55}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<Projects Include="ocvOpenCV300.dproj">
<Projects Include="ocvOpenCV230.dproj">
<Dependencies/>
</Projects>
<Projects Include="dclCommonOpenCV300.dproj">
<Dependencies>ocvOpenCV300.dproj</Dependencies>
<Projects Include="dclCommonOpenCV230.dproj">
<Dependencies>ocvOpenCV230.dproj</Dependencies>
</Projects>
<Projects Include="dclFMXOpenCV300.dproj">
<Dependencies>dclCommonOpenCV300.dproj</Dependencies>
<Projects Include="dclFMXOpenCV230.dproj">
<Dependencies>dclCommonOpenCV230.dproj</Dependencies>
</Projects>
<Projects Include="dclVCLOpenCV300.dproj">
<Dependencies>dclCommonOpenCV300.dproj</Dependencies>
<Projects Include="dclVCLOpenCV230.dproj">
<Dependencies>dclCommonOpenCV230.dproj</Dependencies>
</Projects>
<Projects Include="dclFFMSource300.dproj">
<Projects Include="dclFFMSource230.dproj">
<Dependencies/>
</Projects>
</ItemGroup>
@ -26,59 +26,59 @@
<Default.Personality/>
</BorlandProject>
</ProjectExtensions>
<Target Name="ocvOpenCV300">
<MSBuild Projects="ocvOpenCV300.dproj"/>
<Target Name="ocvOpenCV230">
<MSBuild Projects="ocvOpenCV230.dproj"/>
</Target>
<Target Name="ocvOpenCV300:Clean">
<MSBuild Projects="ocvOpenCV300.dproj" Targets="Clean"/>
<Target Name="ocvOpenCV230:Clean">
<MSBuild Projects="ocvOpenCV230.dproj" Targets="Clean"/>
</Target>
<Target Name="ocvOpenCV300:Make">
<MSBuild Projects="ocvOpenCV300.dproj" Targets="Make"/>
<Target Name="ocvOpenCV230:Make">
<MSBuild Projects="ocvOpenCV230.dproj" Targets="Make"/>
</Target>
<Target Name="dclCommonOpenCV300" DependsOnTargets="ocvOpenCV300">
<MSBuild Projects="dclCommonOpenCV300.dproj"/>
<Target Name="dclCommonOpenCV230" DependsOnTargets="ocvOpenCV230">
<MSBuild Projects="dclCommonOpenCV230.dproj"/>
</Target>
<Target Name="dclCommonOpenCV300:Clean" DependsOnTargets="ocvOpenCV300:Clean">
<MSBuild Projects="dclCommonOpenCV300.dproj" Targets="Clean"/>
<Target Name="dclCommonOpenCV230:Clean" DependsOnTargets="ocvOpenCV230:Clean">
<MSBuild Projects="dclCommonOpenCV230.dproj" Targets="Clean"/>
</Target>
<Target Name="dclCommonOpenCV300:Make" DependsOnTargets="ocvOpenCV300:Make">
<MSBuild Projects="dclCommonOpenCV300.dproj" Targets="Make"/>
<Target Name="dclCommonOpenCV230:Make" DependsOnTargets="ocvOpenCV230:Make">
<MSBuild Projects="dclCommonOpenCV230.dproj" Targets="Make"/>
</Target>
<Target Name="dclFMXOpenCV300" DependsOnTargets="dclCommonOpenCV300">
<MSBuild Projects="dclFMXOpenCV300.dproj"/>
<Target Name="dclFMXOpenCV230" DependsOnTargets="dclCommonOpenCV230">
<MSBuild Projects="dclFMXOpenCV230.dproj"/>
</Target>
<Target Name="dclFMXOpenCV300:Clean" DependsOnTargets="dclCommonOpenCV300:Clean">
<MSBuild Projects="dclFMXOpenCV300.dproj" Targets="Clean"/>
<Target Name="dclFMXOpenCV230:Clean" DependsOnTargets="dclCommonOpenCV230:Clean">
<MSBuild Projects="dclFMXOpenCV230.dproj" Targets="Clean"/>
</Target>
<Target Name="dclFMXOpenCV300:Make" DependsOnTargets="dclCommonOpenCV300:Make">
<MSBuild Projects="dclFMXOpenCV300.dproj" Targets="Make"/>
<Target Name="dclFMXOpenCV230:Make" DependsOnTargets="dclCommonOpenCV230:Make">
<MSBuild Projects="dclFMXOpenCV230.dproj" Targets="Make"/>
</Target>
<Target Name="dclVCLOpenCV300" DependsOnTargets="dclCommonOpenCV300">
<MSBuild Projects="dclVCLOpenCV300.dproj"/>
<Target Name="dclVCLOpenCV230" DependsOnTargets="dclCommonOpenCV230">
<MSBuild Projects="dclVCLOpenCV230.dproj"/>
</Target>
<Target Name="dclVCLOpenCV300:Clean" DependsOnTargets="dclCommonOpenCV300:Clean">
<MSBuild Projects="dclVCLOpenCV300.dproj" Targets="Clean"/>
<Target Name="dclVCLOpenCV230:Clean" DependsOnTargets="dclCommonOpenCV230:Clean">
<MSBuild Projects="dclVCLOpenCV230.dproj" Targets="Clean"/>
</Target>
<Target Name="dclVCLOpenCV300:Make" DependsOnTargets="dclCommonOpenCV300:Make">
<MSBuild Projects="dclVCLOpenCV300.dproj" Targets="Make"/>
<Target Name="dclVCLOpenCV230:Make" DependsOnTargets="dclCommonOpenCV230:Make">
<MSBuild Projects="dclVCLOpenCV230.dproj" Targets="Make"/>
</Target>
<Target Name="dclFFMSource300">
<MSBuild Projects="dclFFMSource300.dproj"/>
<Target Name="dclFFMSource230">
<MSBuild Projects="dclFFMSource230.dproj"/>
</Target>
<Target Name="dclFFMSource300:Clean">
<MSBuild Projects="dclFFMSource300.dproj" Targets="Clean"/>
<Target Name="dclFFMSource230:Clean">
<MSBuild Projects="dclFFMSource230.dproj" Targets="Clean"/>
</Target>
<Target Name="dclFFMSource300:Make">
<MSBuild Projects="dclFFMSource300.dproj" Targets="Make"/>
<Target Name="dclFFMSource230:Make">
<MSBuild Projects="dclFFMSource230.dproj" Targets="Make"/>
</Target>
<Target Name="Build">
<CallTarget Targets="ocvOpenCV300;dclCommonOpenCV300;dclFMXOpenCV300;dclVCLOpenCV300;dclFFMSource300"/>
<CallTarget Targets="ocvOpenCV230;dclCommonOpenCV230;dclFMXOpenCV230;dclVCLOpenCV230;dclFFMSource230"/>
</Target>
<Target Name="Clean">
<CallTarget Targets="ocvOpenCV300:Clean;dclCommonOpenCV300:Clean;dclFMXOpenCV300:Clean;dclVCLOpenCV300:Clean;dclFFMSource300:Clean"/>
<CallTarget Targets="ocvOpenCV230:Clean;dclCommonOpenCV230:Clean;dclFMXOpenCV230:Clean;dclVCLOpenCV230:Clean;dclFFMSource230:Clean"/>
</Target>
<Target Name="Make">
<CallTarget Targets="ocvOpenCV300:Make;dclCommonOpenCV300:Make;dclFMXOpenCV300:Make;dclVCLOpenCV300:Make;dclFFMSource300:Make"/>
<CallTarget Targets="ocvOpenCV230:Make;dclCommonOpenCV230:Make;dclFMXOpenCV230:Make;dclVCLOpenCV230:Make;dclFFMSource230:Make"/>
</Target>
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
</Project>

View File

@ -1,4 +1,4 @@
package dclCommonOpenCV300;
package dclCommonOpenCV230;
{$R *.res}
{$R *.dres}
@ -31,7 +31,7 @@ package dclCommonOpenCV300;
{$IMPLICITBUILD OFF}
requires
ocvOpenCV300,
ocvOpenCV230,
designide;
contains

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{F006D3F9-654A-4A44-A67B-098BC79DB69C}</ProjectGuid>
<MainSource>dclCommonOpenCV300.dpk</MainSource>
<MainSource>dclCommonOpenCV230.dpk</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<TargetedPlatforms>1</TargetedPlatforms>
@ -65,7 +65,7 @@
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
<SanitizedProjectName>dclCommonOpenCV300</SanitizedProjectName>
<SanitizedProjectName>dclCommonOpenCV230</SanitizedProjectName>
<DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps>
<GenPackage>true</GenPackage>
</PropertyGroup>
@ -75,7 +75,7 @@
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>OpenCV210;ocvOpenCV210;ocvOpenCV220;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_UsePackage>OpenCV210;ocvOpenCV210;ocvOpenCV220;ocvOpenCV300;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
@ -91,6 +91,8 @@
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
@ -107,7 +109,7 @@
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="ocvOpenCV300.dcp"/>
<DCCReference Include="ocvOpenCV230.dcp"/>
<DCCReference Include="designide.dcp"/>
<DCCReference Include="..\ocv.comp.IOProperties.pas"/>
<DCCReference Include="..\ocv.comp.Register.pas"/>
@ -153,11 +155,10 @@
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">dclCommonOpenCV300.dpk</Source>
<Source Name="MainSource">dclCommonOpenCV230.dpk</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k210.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp210.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k230.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Platforms>
@ -188,19 +189,28 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclCommonOpenCV300.bpl" Configuration="Release" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclCommonOpenCV230.bpl" Configuration="Release" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclCommonOpenCV300.bpl</RemoteName>
<RemoteName>dclCommonOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclCommonOpenCV300.bpl" Configuration="Debug" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclCommonOpenCV230.bpl" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclCommonOpenCV300.bpl</RemoteName>
<RemoteName>dclCommonOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
@ -514,16 +524,7 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

View File

@ -0,0 +1,6 @@
TOCVFILESOURCE BITMAP "..\\Resource\\filesource.bmp"
TOCVIMAGEOPERATION BITMAP "..\\Resource\\imagetransform.bmp"
TOCVIPCAMSOURCE BITMAP "..\\Resource\\ipcamera.bmp"
TOCVFFMPEGIPCAMSOURCE BITMAP "..\\Resource\\ipcameraffmpeg.bmp"
TOCVCAMERASOURCE BITMAP "..\\Resource\\webcamera.bmp"
TOCVVIDEOWRITER BITMAP "..\\Resource\\wideowriter.bmp"

View File

@ -1,4 +1,4 @@
package dclFFMSource300;
package dclFFMSource230;
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
@ -28,8 +28,8 @@ package dclFFMSource300;
{$IMPLICITBUILD ON}
requires
ocvOpenCV300,
dclCommonOpenCV300,
ocvOpenCV230,
dclCommonOpenCV230,
designide;
contains

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{3BC74F10-002A-41D7-B09F-6458FF2CE8F4}</ProjectGuid>
<MainSource>dclFFMSource300.dpk</MainSource>
<MainSource>dclFFMSource230.dpk</MainSource>
<ProjectVersion>18.0</ProjectVersion>
<FrameworkType>None</FrameworkType>
<Base>True</Base>
@ -69,7 +69,7 @@
<GenDll>true</GenDll>
<DCC_CBuilderOutput>All</DCC_CBuilderOutput>
<GenPackage>true</GenPackage>
<SanitizedProjectName>dclFFMSource300</SanitizedProjectName>
<SanitizedProjectName>dclFFMSource230</SanitizedProjectName>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
<DCC_E>false</DCC_E>
@ -115,7 +115,7 @@
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>rtl;ocvOpenCV210;ocvOpenCV220;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_UsePackage>rtl;ocvOpenCV210;ocvOpenCV220;ocvOpenCV300;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
@ -145,8 +145,8 @@
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="ocvOpenCV300.dcp"/>
<DCCReference Include="dclCommonOpenCV300.dcp"/>
<DCCReference Include="ocvOpenCV230.dcp"/>
<DCCReference Include="dclCommonOpenCV230.dcp"/>
<DCCReference Include="designide.dcp"/>
<DCCReference Include="..\ocv.comp.RegisterFFM.pas"/>
<DCCReference Include="..\ocv.comp.FFMSource.pas"/>
@ -168,13 +168,13 @@
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">dclFFMSource300.dpk</Source>
<Source Name="MainSource">dclFFMSource230.dpk</Source>
</Source>
</Delphi.Personality>
<Deployment Version="2">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclFFMSource300.bpl" Configuration="Debug" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclFFMSource230.bpl" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclFFMSource300.bpl</RemoteName>
<RemoteName>dclFFMSource230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
@ -198,7 +198,16 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
@ -512,16 +521,7 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

View File

@ -1,4 +1,4 @@
package dclFMXOpenCV300;
package dclFMXOpenCV230;
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
@ -31,8 +31,8 @@ package dclFMXOpenCV300;
requires
fmx,
ocvOpenCV300,
dclCommonOpenCV300,
ocvOpenCV230,
dclCommonOpenCV230,
designide;
contains

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{0D98CAB7-4425-4E50-9817-42B27A38348B}</ProjectGuid>
<MainSource>dclFMXOpenCV300.dpk</MainSource>
<MainSource>dclFMXOpenCV230.dpk</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<TargetedPlatforms>1</TargetedPlatforms>
@ -97,7 +97,7 @@
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;REST.Authenticator.OAuth.WebForm;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
<SanitizedProjectName>dclFMXOpenCV300</SanitizedProjectName>
<SanitizedProjectName>dclFMXOpenCV230</SanitizedProjectName>
<DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps>
<GenPackage>true</GenPackage>
</PropertyGroup>
@ -136,7 +136,7 @@
<DCC_UsePackage>fmx;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>fmx;OpenCV210;ocvOpenCV210;ocvOpenCV220;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_UsePackage>fmx;OpenCV210;ocvOpenCV210;ocvOpenCV220;ocvOpenCV300;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
@ -175,8 +175,8 @@
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="fmx.dcp"/>
<DCCReference Include="ocvOpenCV300.dcp"/>
<DCCReference Include="dclCommonOpenCV300.dcp"/>
<DCCReference Include="ocvOpenCV230.dcp"/>
<DCCReference Include="dclCommonOpenCV230.dcp"/>
<DCCReference Include="designide.dcp"/>
<DCCReference Include="..\ocv.comp.RegisterFMX.pas"/>
<DCCReference Include="..\ocv.comp.ViewFMX.pas"/>
@ -198,7 +198,7 @@
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">dclFMXOpenCV300.dpk</Source>
<Source Name="MainSource">dclFMXOpenCV230.dpk</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k210.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
@ -215,9 +215,9 @@
<Platform value="Win64">False</Platform>
</Platforms>
<Deployment Version="2">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclFMXOpenCV300.bpl" Configuration="Release" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclFMXOpenCV230.bpl" Configuration="Release" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclFMXOpenCV300.bpl</RemoteName>
<RemoteName>dclFMXOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
@ -241,13 +241,22 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclFMXOpenCV300.bpl" Configuration="Debug" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclFMXOpenCV230.bpl" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclFMXOpenCV300.bpl</RemoteName>
<RemoteName>dclFMXOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
@ -561,16 +570,7 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

View File

@ -1,4 +1,4 @@
package dclVCLOpenCV300;
package dclVCLOpenCV230;
{$R *.res}
{$R *.dres}
@ -31,8 +31,8 @@ package dclVCLOpenCV300;
{$IMPLICITBUILD OFF}
requires
ocvOpenCV300,
dclCommonOpenCV300,
ocvOpenCV230,
dclCommonOpenCV230,
designide;
contains

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{234FC568-51AA-4997-BDE5-7B9A3BEEC85B}</ProjectGuid>
<MainSource>dclVCLOpenCV300.dpk</MainSource>
<MainSource>dclVCLOpenCV230.dpk</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<TargetedPlatforms>1</TargetedPlatforms>
@ -65,7 +65,7 @@
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
<SanitizedProjectName>dclVCLOpenCV300</SanitizedProjectName>
<SanitizedProjectName>dclVCLOpenCV230</SanitizedProjectName>
<DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps>
<GenPackage>true</GenPackage>
</PropertyGroup>
@ -75,7 +75,7 @@
<VerInfo_Keys>package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=preferExternal;largeHeap=False;theme=TitleBar;hardwareAccelerated=true</VerInfo_Keys>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>OpenCV210;ocvOpenCV210;ocvOpenCV220;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_UsePackage>OpenCV210;ocvOpenCV210;ocvOpenCV220;ocvOpenCV300;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
@ -107,8 +107,8 @@
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="ocvOpenCV300.dcp"/>
<DCCReference Include="dclCommonOpenCV300.dcp"/>
<DCCReference Include="ocvOpenCV230.dcp"/>
<DCCReference Include="dclCommonOpenCV230.dcp"/>
<DCCReference Include="designide.dcp"/>
<DCCReference Include="..\ocv.comp.RegisterVCL.pas"/>
<DCCReference Include="..\ocv.comp.View.pas"/>
@ -134,7 +134,7 @@
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">dclVCLOpenCV300.dpk</Source>
<Source Name="MainSource">dclVCLOpenCV230.dpk</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k210.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
@ -169,19 +169,28 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclVCLOpenCV300.bpl" Configuration="Debug" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\dclVCLOpenCV230.bpl" Configuration="Debug" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclVCLOpenCV300.bpl</RemoteName>
<RemoteName>dclVCLOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclVCLOpenCV300.bpl" Configuration="Release" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\dclVCLOpenCV230.bpl" Configuration="Release" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>dclVCLOpenCV300.bpl</RemoteName>
<RemoteName>dclVCLOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
@ -495,16 +504,7 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

View File

@ -0,0 +1 @@
TOCVVIEW BITMAP "..\\Resource\\view.bmp"

View File

@ -1,4 +1,4 @@
package ocvOpenCV300;
package ocvOpenCV230;
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}

View File

@ -1,7 +1,7 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{216046C8-B2AE-4C69-8DDB-93C4F72B1784}</ProjectGuid>
<MainSource>ocvOpenCV300.dpk</MainSource>
<MainSource>ocvOpenCV230.dpk</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config>
<TargetedPlatforms>3</TargetedPlatforms>
@ -65,7 +65,7 @@
<DCC_ImageBase>00400000</DCC_ImageBase>
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
<SanitizedProjectName>ocvOpenCV300</SanitizedProjectName>
<SanitizedProjectName>ocvOpenCV230</SanitizedProjectName>
<DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps>
<GenPackage>true</GenPackage>
</PropertyGroup>
@ -128,7 +128,7 @@
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ocvOpenCV300.dpk</Source>
<Source Name="MainSource">ocvOpenCV230.dpk</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k210.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
@ -142,13 +142,22 @@
<Platform value="Win64">True</Platform>
</Platforms>
<Deployment Version="2">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\ocvOpenCV300.bpl" Configuration="Release" Class="ProjectOutput">
<DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\17.0\Bpl\ocvOpenCV230.bpl" Configuration="Release" Class="ProjectOutput">
<Platform Name="Win32">
<RemoteName>ocvOpenCV300.bpl</RemoteName>
<RemoteName>ocvOpenCV230.bpl</RemoteName>
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
<Platform Name="OSX32">
<RemoteDir>Contents\Resources</RemoteDir>
@ -462,16 +471,7 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="OSX32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>

View File

@ -57,7 +57,8 @@ uses
ocv.comp.proc,
ocv.objdetect_c,
ocv.core.types_c,
ocv.imgproc.types_c;
ocv.imgproc.types_c,
ocv.editor;
type
{$IFDEF DELPHIXE3_UP} // XE3..XE6
@ -862,6 +863,21 @@ type
property NotifyOnlyWhenFound: Boolean index 1 Read GetBoolParam write SetBoolParam;
end;
TocvEditorOperation = (eopNone, eopSature, eopExpo, eopHue, eopTemperature, eopWhite, eopShadow, eopContrast, eopClarity);
TocvEditor = class(TocvCustomImageOperation)
private
FStep: Integer;
FEditorOperation: TocvEditorOperation;
public
constructor Create(AOwner: TPersistent); override;
destructor Destroy; override;
function DoTransform(const Source: IocvImage; out Destanation: IocvImage): Boolean; override;
published
property Step: Integer read FStep Write FStep;
property EditorOperation: TocvEditorOperation read FEditorOperation write FEditorOperation;
end;
TocvContourDraw = class(TocvDraw)
protected
procedure AssignTo(Dest: TPersistent); override;
@ -3444,6 +3460,57 @@ begin
end;
end;
{ TocvEditor }
constructor TocvEditor.Create(AOwner: TPersistent);
begin
inherited;
FStep := 10;
FEditorOperation := eopNone;
end;
destructor TocvEditor.Destroy;
begin
inherited;
end;
function TocvEditor.DoTransform(const Source: IocvImage; out Destanation: IocvImage): Boolean;
Var
iImage: pIplImage;
begin
try
case EditorOperation of
eopNone:
begin
Destanation := Source;
Exit;
end;
eopSature:
Sature(Step, Source.IpImage, iImage);
eopExpo:
Expo(Step, Source.IpImage, iImage);
eopHue:
Hue(Step, Source.IpImage, iImage);
eopTemperature:
Temperature(Step, Source.IpImage, iImage);
eopWhite:
white(Step, Source.IpImage, iImage);
eopShadow:
Shadow(Step, Source.IpImage, iImage);
eopContrast:
Contrast(Step, Source.IpImage, iImage);
eopClarity:
Clarity(Step, Source.IpImage, iImage);
end;
Destanation := TocvImage.Create(iImage);
Result := True;
except
Destanation := Source;
Result := False;
end;
end;
initialization
GetRegisteredImageOperations.RegisterIOClass(TocvNoneOperation, 'None');
@ -3472,6 +3539,7 @@ GetRegisteredImageOperations.RegisterIOClass(TocvCvtColorOperation, 'ColorOperat
GetRegisteredImageOperations.RegisterIOClass(TocvResizeOperation, 'Resize');
GetRegisteredImageOperations.RegisterIOClass(TocvLogicOperation, 'Logic');
GetRegisteredImageOperations.RegisterIOClass(TocvLogicSOperation, 'LogicS');
GetRegisteredImageOperations.RegisterIOClass(TocvEditor,'Editor');
finalization

View File

@ -42,6 +42,7 @@ uses
{$ENDIF}
ocv.core.types_c,
ocv.highgui_c,
ocv.Classes,
ocv.comp.Types;
type
@ -118,9 +119,16 @@ type
property FPS: Double read GetFPS;
end;
{$IFDEF DelphiOCVVersion_30}
TcsVideoCapture = IVideoCapture;
{$ELSE}
TcsVideoCapture = pCvCapture;
{$ENDIF}
TocvCaptureSource = class(TocvCustomSource)
protected
FCapture: pCvCapture;
FCapture: TcsVideoCapture;
procedure Loaded; override;
private
procedure ReleaseSource; override;
@ -204,18 +212,19 @@ const
implementation
uses
ocv.core_c;
ocv.core_c,
ocv.utils;
Type
TocvCaptureThread = class(TocvCustomSourceThread)
private
procedure SetCapture(const Value: pCvCapture); virtual;
procedure SetCapture(const Value: TcsVideoCapture); virtual;
protected
FCapture: pCvCapture;
FCapture: TcsVideoCapture;
protected
procedure Execute; override;
public
property Capture: pCvCapture read FCapture write SetCapture;
property Capture: TcsVideoCapture read FCapture write SetCapture;
end;
const
@ -266,7 +275,12 @@ Const
procedure TocvCaptureThread.Execute;
Var
{$IFDEF DelphiOCVVersion_30}
frame: IMat;
I: TIplImage;
{$ELSE}
frame: pIplImage;
{$ENDIF}
begin
while not Terminated do
if Assigned(FCapture) then
@ -274,8 +288,12 @@ begin
try
FLock.Enter;
try
frame:=nil;
frame := nil;
{$IFDEF DelphiOCVVersion_30}
FCapture.Read(frame);
{$ELSE}
frame := cvQueryFrame(FCapture);
{$ENDIF}
finally
FLock.Leave;
end;
@ -289,7 +307,12 @@ begin
Var
Image: IocvImage;
begin
{$IFDEF DelphiOCVVersion_30}
I.InitFromMat(frame);
Image := TocvImage.CreateClone(@I);
{$ELSE}
Image := TocvImage.CreateClone(frame);
{$ENDIF}
OnNotifyData(Self, Image);
Image := nil;
end);
@ -337,16 +360,26 @@ begin
if Assigned(FCapture) and FEnabled then
begin
(FSourceThread as TocvCaptureThread).Capture := nil;
{$IFNDEF DelphiOCVVersion_30}
cvReleaseCapture(FCapture);
{$ENDIF}
FCapture := Nil;
end;
if Value then
begin
{$IFDEF DelphiOCVVersion_30}
FCapture := TVideoCapture.Create(ocvCameraCaptureSource[FCaptureSource]);
{$ELSE}
FCapture := cvCreateCameraCapture(ocvCameraCaptureSource[FCaptureSource]);
{$ENDIF}
if Assigned(FCapture) then
begin
SetCameraResolution;
{$IFDEF DelphiOCVVersion_30}
FFPS := FCapture.Prop[CV_CAP_PROP_FPS];
{$ELSE}
FFPS := cvGetCaptureProperty(FCapture, CV_CAP_PROP_FPS);
{$ENDIF}
(FSourceThread as TocvCaptureThread).Capture := FCapture;
FSourceThread.Resume;
end;
@ -358,8 +391,13 @@ end;
procedure TocvCameraSource.SetCameraResolution;
begin
{$IFDEF DelphiOCVVersion_30}
FCapture.Prop[CV_CAP_PROP_FRAME_WIDTH] := CameraResolution[FResolution].cWidth;
FCapture.Prop[CV_CAP_PROP_FRAME_HEIGHT] := CameraResolution[FResolution].cHeight;
{$ELSE}
cvSetCaptureProperty(FCapture, CV_CAP_PROP_FRAME_WIDTH, CameraResolution[FResolution].cWidth);
cvSetCaptureProperty(FCapture, CV_CAP_PROP_FRAME_HEIGHT, CameraResolution[FResolution].cHeight);
{$ENDIF}
end;
procedure TocvCameraSource.SetResolution(const Value: TocvResolution);
@ -460,8 +498,10 @@ begin
end;
procedure TocvFileSource.SetEnabled(Value: Boolean);
{$IFNDEF DelphiOCVVersion_30}
Var
pFileName: PAnsiChar;
{$ENDIF}
begin
if FEnabled <> Value then
begin
@ -470,13 +510,19 @@ begin
if Assigned(FCapture) and FEnabled then
begin
(FSourceThread as TocvCaptureThread).Capture := nil;
{$IFNDEF DelphiOCVVersion_30}
cvReleaseCapture(FCapture);
{$ENDIF}
FCapture := Nil;
end;
if Value and FileExists(FileName) then
begin
{$IFDEF DelphiOCVVersion_30}
FCapture := TVideoCapture.Create(FileName);
{$ELSE}
pFileName := PAnsiChar(@(AnsiString(FileName)[1]));
FCapture := cvCreateFileCapture(pFileName);
{$ENDIF}
if Assigned(FCapture) then
begin
(FSourceThread as TocvCaptureThread).Capture := FCapture;
@ -549,12 +595,18 @@ begin
if Assigned(FCapture) and FEnabled then
begin
(FSourceThread as TocvCaptureThread).Capture := nil;
{$IFNDEF DelphiOCVVersion_30}
cvReleaseCapture(FCapture);
{$ENDIF}
FCapture := Nil;
end;
if Value then
begin
{$IFDEF DelphiOCVVersion_30}
FCapture := TVideoCapture.Create(GetIPCamTarget);
{$ELSE}
FCapture := cvCreateFileCapture(PAnsiChar(GetIPCamTarget));
{$ENDIF}
if Assigned(FCapture) then
begin
(FSourceThread as TocvCaptureThread).Capture := FCapture;
@ -596,12 +648,14 @@ begin
inherited;
if Assigned(FCapture) then
begin
{$IFNDEF DelphiOCVVersion_30}
cvReleaseCapture(FCapture);
{$ENDIF}
FCapture := nil;
end;
end;
procedure TocvCaptureThread.SetCapture(const Value: pCvCapture);
procedure TocvCaptureThread.SetCapture(const Value: TcsVideoCapture);
begin
FLock.Enter;
try

View File

@ -1,120 +0,0 @@
(*
*****************************************************************
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.
*******************************************************************
*)
unit ocv.cclasses;
interface
uses
ocv.core.types_c;
Type
pCRect = ^TCRect;
TCRect = record
x, y, width, height: Integer;
end;
TCVectorRect = class
public
function size(): size_t; virtual; stdcall; abstract;
procedure push_back(const Val: TCRect); virtual; stdcall; abstract;
function at(i: Integer): pCRect; virtual; stdcall; abstract;
function Vector(): Pointer; virtual; stdcall; abstract;
// ---------------------
class function Create: TCVectorRect;
procedure Free; reintroduce;
end;
TCVectorInt = class
public
function size(): size_t; virtual; stdcall; abstract;
procedure push_back(const Val: Integer); virtual; stdcall; abstract;
function at(i: Integer): pInteger; virtual; stdcall; abstract;
function Vector(): Pointer; virtual; stdcall; abstract;
// ---------------------
class function Create: TCVectorInt;
procedure Free; reintroduce;
end;
TCVectorDouble = class
public
function size(): size_t; virtual; stdcall; abstract;
procedure push_back(const Val: Double); virtual; stdcall; abstract;
function at(i: Integer): pDouble; virtual; stdcall; abstract;
function Vector(): Pointer; virtual; stdcall; abstract;
// ---------------------
class function Create: TCVectorDouble;
procedure Free; reintroduce;
end;
implementation
uses ocv.lib;
function CreateCVectorRect: TCVectorRect; stdcall; external opencv_classes_lib;
procedure ReleaseCVectorRect(ex: TCVectorRect); stdcall; external opencv_classes_lib;
function CreateCVectorInt: TCVectorInt; stdcall; external opencv_classes_lib;
procedure ReleaseCVectorInt(ex: TCVectorInt); stdcall; external opencv_classes_lib;
function CreateCVectorDouble: TCVectorDouble; stdcall; external opencv_classes_lib;
procedure ReleaseCVectorDouble(ex: TCVectorDouble); stdcall; external opencv_classes_lib;
{ TCVectorRect }
class function TCVectorRect.Create: TCVectorRect;
begin
Result := CreateCVectorRect;
end;
procedure TCVectorRect.Free;
begin
ReleaseCVectorRect(Self);
end;
{ TCVectorInt }
class function TCVectorInt.Create: TCVectorInt;
begin
Result := CreateCVectorInt;
end;
procedure TCVectorInt.Free;
begin
ReleaseCVectorInt(Self);
end;
{ TCVectorDouble }
class function TCVectorDouble.Create: TCVectorDouble;
begin
Result := CreateCVectorDouble;
end;
procedure TCVectorDouble.Free;
begin
ReleaseCVectorDouble(Self);
end;
end.

924
source/ocv.classes.pas Normal file
View File

@ -0,0 +1,924 @@
(*
*****************************************************************
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.
*******************************************************************
*)
unit ocv.classes;
{$I OpenCV.inc}
interface
Uses
Winapi.Windows,
System.Generics.Collections,
ocv.core.types_c,
ocv.highgui_c;
Type
cbool = bytebool;
TOpenCVClass = Pointer;
IOCVCommon = interface
function _InternalData: TOpenCVClass;
end;
TOCVCommon = class(TInterfacedObject, IOCVCommon)
private
FData: TOpenCVClass;
public
function _InternalData: TOpenCVClass;
end;
IMat = interface(IOCVCommon)
['{2CFB1B8E-4D18-4C1D-839F-0AFE4213F57D}']
function elemSize(): size_t; // 0
function elemSize1(): size_t; // 1
function _type(): integer; // 2
function depth(): integer; // 3
function channels(): integer; // 4
function step1(i: integer = 0): size_t; // 5
function empty(): cbool;
function total(): size_t; // 6
function flags(): integer; // 7
function dims(): integer; // 8
function rows(): integer; // 9
function cols(): integer; // 10
function data(): Pointer; // 11
end;
TMat = class(TOCVCommon, IMat)
private
FNeedDestroy: boolean;
public
constructor Create(const _M: TOpenCVClass = nil; const NeedDestroy: boolean = True); overload;
constructor Create(const Image: pIplImage); overload;
destructor Destroy; override;
function elemSize(): size_t; // 0
function elemSize1(): size_t; // 1
function _type(): integer; // 2
function depth(): integer; // 3
function channels(): integer; // 4
function step1(i: integer = 0): size_t; // 5
function empty(): cbool;
function total(): size_t; // 6
function flags(): integer; // 7
function dims(): integer; // 8
function rows(): integer; // 9
function cols(): integer; // 10
function data(): Pointer; // 11
end;
// ---------------------------- VideoCapture --------------------------
IVideoCapture = interface(IOCVCommon)
['{86599C0A-D6CF-4F53-8AE3-336B0ED948D3}']
function Open(const CamNumber: integer = CV_CAP_ANY): cbool;
function isOpened: cbool;
function Read(Var Mat: IMat): cbool;
function getProp(const propId: integer): double;
procedure setProp(const propId: integer; const Value: double);
function PropSet(const propId: integer; const Value: double): cbool;
property Prop[const propId: integer]: double read getProp write setProp;
end;
TOpenCVVideoCaptureClass = Pointer;
TVideoCapture = class(TOCVCommon, IVideoCapture)
private
function getProp(const propId: integer): double;
procedure setProp(const propId: integer; const Value: double);
public
constructor Create; overload;
constructor Create(const CamNumber: integer); overload;
constructor Create(const FileName: String); overload;
destructor Destroy; override;
function Open(const CamNumber: integer = CV_CAP_ANY): cbool; overload;
function Open(const FileName: String): cbool; overload;
function isOpened: cbool;
function Read(Var Mat: IMat): cbool;
function PropSet(const propId: integer; const Value: double): cbool;
property Prop[const propId: integer]: double read getProp write setProp;
end;
const
// Camera API
CAP_ANY = 0; // autodetect
CAP_VFW = 200; // platform native
CAP_V4L = 200;
CAP_V4L2 = CAP_V4L;
CAP_FIREWARE = 300; // IEEE 1394 drivers
CAP_FIREWIRE = CAP_FIREWARE;
CAP_IEEE1394 = CAP_FIREWARE;
CAP_DC1394 = CAP_FIREWARE;
CAP_CMU1394 = CAP_FIREWARE;
CAP_QT = 500; // QuickTime
CAP_UNICAP = 600; // Unicap drivers
CAP_DSHOW = 700; // DirectShow (via videoInput)
CAP_PVAPI = 800; // PvAPI; Prosilica GigE SDK
CAP_OPENNI = 900; // OpenNI (for Kinect)
CAP_OPENNI_ASUS = 910; // OpenNI (for Asus Xtion)
CAP_ANDROID = 1000; // Android - not used
CAP_XIAPI = 1100; // XIMEA Camera API
CAP_AVFOUNDATION = 1200; // AVFoundation framework for iOS (OS X Lion will have the same API)
CAP_GIGANETIX = 1300; // Smartek Giganetix GigEVisionSDK
CAP_MSMF = 1400; // Microsoft Media Foundation (via videoInput)
CAP_WINRT = 1410; // Microsoft Windows Runtime using Media Foundation
CAP_INTELPERC = 1500; // Intel Perceptual Computing SDK
CAP_OPENNI2 = 1600; // OpenNI2 (for Kinect)
CAP_OPENNI2_ASUS = 1610; // OpenNI2 (for Asus Xtion and Occipital Structure sensors)
CAP_GPHOTO2 = 1700; // gPhoto2 connection
// generic properties (based on DC1394 properties)
CAP_PROP_POS_MSEC = 0;
CAP_PROP_POS_FRAMES = 1;
CAP_PROP_POS_AVI_RATIO = 2;
CAP_PROP_FRAME_WIDTH = 3;
CAP_PROP_FRAME_HEIGHT = 4;
CAP_PROP_FPS = 5;
CAP_PROP_FOURCC = 6;
CAP_PROP_FRAME_COUNT = 7;
CAP_PROP_FORMAT = 8;
CAP_PROP_MODE = 9;
CAP_PROP_BRIGHTNESS = 10;
CAP_PROP_CONTRAST = 11;
CAP_PROP_SATURATION = 12;
CAP_PROP_HUE = 13;
CAP_PROP_GAIN = 14;
CAP_PROP_EXPOSURE = 15;
CAP_PROP_CONVERT_RGB = 16;
CAP_PROP_WHITE_BALANCE_BLUE_U = 17;
CAP_PROP_RECTIFICATION = 18;
CAP_PROP_MONOCHROME = 19;
CAP_PROP_SHARPNESS = 20;
CAP_PROP_AUTO_EXPOSURE = 21; // DC1394: exposure control done by camera; user can adjust refernce level using this feature
CAP_PROP_GAMMA = 22;
CAP_PROP_TEMPERATURE = 23;
CAP_PROP_TRIGGER = 24;
CAP_PROP_TRIGGER_DELAY = 25;
CAP_PROP_WHITE_BALANCE_RED_V = 26;
CAP_PROP_ZOOM = 27;
CAP_PROP_FOCUS = 28;
CAP_PROP_GUID = 29;
CAP_PROP_ISO_SPEED = 30;
CAP_PROP_BACKLIGHT = 32;
CAP_PROP_PAN = 33;
CAP_PROP_TILT = 34;
CAP_PROP_ROLL = 35;
CAP_PROP_IRIS = 36;
CAP_PROP_SETTINGS = 37;
// Generic camera output modes.
// Currently; these are supported through the libv4l interface only.
CAP_MODE_BGR = 0; // BGR24 (default)
CAP_MODE_RGB = 1; // RGB24
CAP_MODE_GRAY = 2; // Y8
CAP_MODE_YUYV = 3; // YUYV
// DC1394 only
// modes of the controlling registers (can be: auto; manual; auto single push; absolute Latter allowed with any other mode)
// every feature can have only one mode turned on at a time
CAP_PROP_DC1394_OFF = -4; // turn the feature off (not controlled manually nor automatically)
CAP_PROP_DC1394_MODE_MANUAL = -3; // set automatically when a value of the feature is set by the user
CAP_PROP_DC1394_MODE_AUTO = -2;
CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO = -1;
CAP_PROP_DC1394_MAX = 31;
// OpenNI map generators
CAP_OPENNI_DEPTH_GENERATOR = 1 shl 31;
CAP_OPENNI_IMAGE_GENERATOR = 1 shl 30;
CAP_OPENNI_GENERATORS_MASK = CAP_OPENNI_DEPTH_GENERATOR + CAP_OPENNI_IMAGE_GENERATOR;
// Properties of cameras available through OpenNI interfaces
CAP_PROP_OPENNI_OUTPUT_MODE = 100;
CAP_PROP_OPENNI_FRAME_MAX_DEPTH = 101; // in mm
CAP_PROP_OPENNI_BASELINE = 102; // in mm
CAP_PROP_OPENNI_FOCAL_LENGTH = 103; // in pixels
CAP_PROP_OPENNI_REGISTRATION = 104; // flag that synchronizes the remapping depth map to image map
// by changing depth generator's view point (if the flag is "on") or
// sets this view point to its normal one (if the flag is "off").
CAP_PROP_OPENNI_REGISTRATION_ON = CAP_PROP_OPENNI_REGISTRATION;
CAP_PROP_OPENNI_APPROX_FRAME_SYNC = 105;
CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106;
CAP_PROP_OPENNI_CIRCLE_BUFFER = 107;
CAP_PROP_OPENNI_MAX_TIME_DURATION = 108;
CAP_PROP_OPENNI_GENERATOR_PRESENT = 109;
CAP_PROP_OPENNI2_SYNC = 110;
CAP_PROP_OPENNI2_MIRROR = 111;
// OpenNI shortcats
CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CAP_OPENNI_IMAGE_GENERATOR + CAP_PROP_OPENNI_GENERATOR_PRESENT;
CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CAP_OPENNI_IMAGE_GENERATOR + CAP_PROP_OPENNI_OUTPUT_MODE;
CAP_OPENNI_DEPTH_GENERATOR_BASELINE = CAP_OPENNI_DEPTH_GENERATOR + CAP_PROP_OPENNI_BASELINE;
CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH = CAP_OPENNI_DEPTH_GENERATOR + CAP_PROP_OPENNI_FOCAL_LENGTH;
CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CAP_OPENNI_DEPTH_GENERATOR + CAP_PROP_OPENNI_REGISTRATION;
CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON = CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION;
// OpenNI data given from depth generator
CAP_OPENNI_DEPTH_MAP = 0; // Depth values in mm (CV_16UC1)
CAP_OPENNI_POINT_CLOUD_MAP = 1; // XYZ in meters (CV_32FC3)
CAP_OPENNI_DISPARITY_MAP = 2; // Disparity in pixels (CV_8UC1)
CAP_OPENNI_DISPARITY_MAP_32F = 3; // Disparity in pixels (CV_32FC1)
CAP_OPENNI_VALID_DEPTH_MASK = 4; // CV_8UC1
// Data given from RGB image generator
CAP_OPENNI_BGR_IMAGE = 5;
CAP_OPENNI_GRAY_IMAGE = 6;
// Supported output modes of OpenNI image generator
CAP_OPENNI_VGA_30HZ = 0;
CAP_OPENNI_SXGA_15HZ = 1;
CAP_OPENNI_SXGA_30HZ = 2;
CAP_OPENNI_QVGA_30HZ = 3;
CAP_OPENNI_QVGA_60HZ = 4;
// GStreamer
CAP_PROP_GSTREAMER_QUEUE_LENGTH = 200; // default is 1
// PVAPI
CAP_PROP_PVAPI_MULTICASTIP = 300; // ip for anable multicast master mode. 0 for disable multicast
CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301; // FrameStartTriggerMode: Determines how a frame is initiated
CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302; // Horizontal sub-sampling of the image
CAP_PROP_PVAPI_DECIMATIONVERTICAL = 303; // Vertical sub-sampling of the image
CAP_PROP_PVAPI_BINNINGX = 304; // Horizontal binning factor
CAP_PROP_PVAPI_BINNINGY = 305; // Vertical binning factor
CAP_PROP_PVAPI_PIXELFORMAT = 306; // Pixel format
// PVAPI: FrameStartTriggerMode
CAP_PVAPI_FSTRIGMODE_FREERUN = 0; // Freerun
CAP_PVAPI_FSTRIGMODE_SYNCIN1 = 1; // SyncIn1
CAP_PVAPI_FSTRIGMODE_SYNCIN2 = 2; // SyncIn2
CAP_PVAPI_FSTRIGMODE_FIXEDRATE = 3; // FixedRate
CAP_PVAPI_FSTRIGMODE_SOFTWARE = 4; // Software
// PVAPI: DecimationHorizontal; DecimationVertical
CAP_PVAPI_DECIMATION_OFF = 1; // Off
CAP_PVAPI_DECIMATION_2OUTOF4 = 2; // 2 out of 4 decimation
CAP_PVAPI_DECIMATION_2OUTOF8 = 4; // 2 out of 8 decimation
CAP_PVAPI_DECIMATION_2OUTOF16 = 8; // 2 out of 16 decimation
// PVAPI: PixelFormat
CAP_PVAPI_PIXELFORMAT_MONO8 = 1; // Mono8
CAP_PVAPI_PIXELFORMAT_MONO16 = 2; // Mono16
CAP_PVAPI_PIXELFORMAT_BAYER8 = 3; // Bayer8
CAP_PVAPI_PIXELFORMAT_BAYER16 = 4; // Bayer16
CAP_PVAPI_PIXELFORMAT_RGB24 = 5; // Rgb24
CAP_PVAPI_PIXELFORMAT_BGR24 = 6; // Bgr24
CAP_PVAPI_PIXELFORMAT_RGBA32 = 7; // Rgba32
CAP_PVAPI_PIXELFORMAT_BGRA32 = 8; // Bgra32
// Properties of cameras available through XIMEA SDK interface
CAP_PROP_XI_DOWNSAMPLING = 400; // Change image resolution by binning or skipping.
CAP_PROP_XI_DATA_FORMAT = 401; // Output data format.
CAP_PROP_XI_OFFSET_X = 402; // Horizontal offset from the origin to the area of interest (in pixels).
CAP_PROP_XI_OFFSET_Y = 403; // Vertical offset from the origin to the area of interest (in pixels).
CAP_PROP_XI_TRG_SOURCE = 404; // Defines source of trigger.
CAP_PROP_XI_TRG_SOFTWARE = 405; // Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE.
CAP_PROP_XI_GPI_SELECTOR = 406; // Selects general purpose input
CAP_PROP_XI_GPI_MODE = 407; // Set general purpose input mode
CAP_PROP_XI_GPI_LEVEL = 408; // Get general purpose level
CAP_PROP_XI_GPO_SELECTOR = 409; // Selects general purpose output
CAP_PROP_XI_GPO_MODE = 410; // Set general purpose output mode
CAP_PROP_XI_LED_SELECTOR = 411; // Selects camera signalling LED
CAP_PROP_XI_LED_MODE = 412; // Define camera signalling LED functionality
CAP_PROP_XI_MANUAL_WB = 413; // Calculates White Balance(must be called during acquisition)
CAP_PROP_XI_AUTO_WB = 414; // Automatic white balance
CAP_PROP_XI_AEAG = 415; // Automatic exposure/gain
CAP_PROP_XI_EXP_PRIORITY = 416; // Exposure priority (0.5 - exposure 50%; gain 50%).
CAP_PROP_XI_AE_MAX_LIMIT = 417; // Maximum limit of exposure in AEAG procedure
CAP_PROP_XI_AG_MAX_LIMIT = 418; // Maximum limit of gain in AEAG procedure
CAP_PROP_XI_AEAG_LEVEL = 419; // Average intensity of output signal AEAG should achieve(in %)
CAP_PROP_XI_TIMEOUT = 420; // Image capture timeout in milliseconds
// Properties of cameras available through AVFOUNDATION interface
CAP_PROP_IOS_DEVICE_FOCUS = 9001;
CAP_PROP_IOS_DEVICE_EXPOSURE = 9002;
CAP_PROP_IOS_DEVICE_FLASH = 9003;
CAP_PROP_IOS_DEVICE_WHITEBALANCE = 9004;
CAP_PROP_IOS_DEVICE_TORCH = 9005;
// Properties of cameras available through Smartek Giganetix Ethernet Vision interface
// * --- Vladimir Litvinenko (litvinenko.vladimir@gmail.com) --- */
CAP_PROP_GIGA_FRAME_OFFSET_X = 10001;
CAP_PROP_GIGA_FRAME_OFFSET_Y = 10002;
CAP_PROP_GIGA_FRAME_WIDTH_MAX = 10003;
CAP_PROP_GIGA_FRAME_HEIGH_MAX = 10004;
CAP_PROP_GIGA_FRAME_SENS_WIDTH = 10005;
CAP_PROP_GIGA_FRAME_SENS_HEIGH = 10006;
CAP_PROP_INTELPERC_PROFILE_COUNT = 11001;
CAP_PROP_INTELPERC_PROFILE_IDX = 11002;
CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE = 11003;
CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE = 11004;
CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD = 11005;
CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ = 11006;
CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT = 11007;
// Intel PerC streams
CAP_INTELPERC_DEPTH_GENERATOR = 1 shl 29;
CAP_INTELPERC_IMAGE_GENERATOR = 1 shl 28;
CAP_INTELPERC_GENERATORS_MASK = CAP_INTELPERC_DEPTH_GENERATOR + CAP_INTELPERC_IMAGE_GENERATOR;
CAP_INTELPERC_DEPTH_MAP = 0;
// Each pixel is a 16-bit integer. The value indicates the distance from an object to the camera's XY plane or the Cartesian depth.
CAP_INTELPERC_UVDEPTH_MAP = 1;
// Each pixel contains two 32-bit floating point values in the range of 0-1; representing the mapping of depth coordinates to the color coordinates.
CAP_INTELPERC_IR_MAP = 2; // Each pixel is a 16-bit integer. The value indicates the intensity of the reflected laser beam.
CAP_INTELPERC_IMAGE = 3;
VIDEOWRITER_PROP_QUALITY = 1; // Quality (0..100%) of the videostream encoded
VIDEOWRITER_PROP_FRAMEBYTES = 2; // (Read-only): Size of just encoded video frame
// gPhoto2 properties; if propertyId is less than 0 then work on widget with that __additive inversed__ camera setting ID
// Get IDs by using CAP_PROP_GPHOTO2_WIDGET_ENUMERATE.
// @see CvCaptureCAM_GPHOTO2 for more info
CAP_PROP_GPHOTO2_PREVIEW = 17001; // Capture only preview from liveview mode.
CAP_PROP_GPHOTO2_WIDGET_ENUMERATE = 17002; // Readonly; returns (const char *).
CAP_PROP_GPHOTO2_RELOAD_CONFIG = 17003; // Trigger; only by set. Reload camera settings.
CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE = 17004; // Reload all settings on set.
CAP_PROP_GPHOTO2_COLLECT_MSGS = 17005; // Collect messages with details.
CAP_PROP_GPHOTO2_FLUSH_MSGS = 17006; // Readonly; returns (const char *).
CAP_PROP_SPEED = 17007; // Exposure speed. Can be readonly; depends on camera program.
CAP_PROP_APERTURE = 17008; // Aperture. Can be readonly; depends on camera program.
CAP_PROP_EXPOSUREPROGRAM = 17009; // Camera exposure program.
CAP_PROP_VIEWFINDER = 17010; // Enter liveview mode.
// Flags for namedWindow
const
WINDOW_NORMAL = CV_WINDOW_NORMAL;
// the user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size
WINDOW_AUTOSIZE = CV_WINDOW_AUTOSIZE; // the user cannot resize the window, the size is constrainted by the image displayed
WINDOW_OPENGL = CV_WINDOW_OPENGL; // window with opengl support
WINDOW_FULLSCREEN = CV_WINDOW_FULLSCREEN; // change the window to fullscreen
WINDOW_FREERATIO = CV_WINDOW_FREERATIO; // the image expends as much as it can (no ratio constraint)
WINDOW_KEEPRATIO = CV_WINDOW_KEEPRATIO; // the ratio of the image is respected
// CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
procedure namedWindow(const winname: String; const flags: integer = WINDOW_AUTOSIZE);
// CV_EXPORTS_W void destroyWindow(const String& winname);
procedure destroyWindow(const winname: String);
// CV_EXPORTS_W void destroyAllWindows();
procedure destroyAllWindows();
// CV_EXPORTS_W int startWindowThread();
function startWindowThread(): integer;
// CV_EXPORTS_W int waitKey(int delay = 0);
function waitKey(const delay: integer = 0): integer;
// CV_EXPORTS_W void imshow(const String& winname, InputArray mat);
procedure imshow(const winname: String; const Mat: IMat);
// CV_EXPORTS_W void resizeWindow(const String& winname, int width, int height);
procedure resizeWindow(const winname: String; const width, height: integer);
// CV_EXPORTS_W void moveWindow(const String& winname, int x, int y);
procedure moveWindow(const winname: String; const x, y: integer);
// CV_EXPORTS_W void setWindowProperty(const String& winname, int prop_id, double prop_value);
procedure setWindowProperty(const winname: String; const prop_id: integer; const prop_value: double);
// CV_EXPORTS_W double getWindowProperty(const String& winname, int prop_id);
function getWindowProperty(const winname: String; const prop_id: integer): double;
// CV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,
// int* value, int count,
// TrackbarCallback onChange = 0,
// void* userdata = 0);
function createTrackbar(const trackbarname: String; const winname: String; Value: PInteger; count: integer; onChange: TCvTrackbarCallback2 = nil;
userdata: Pointer = nil): integer;
// CV_EXPORTS_W Mat imread( const string& filename, int flags=1 );
function imread(const FileName: string; flag: integer = 1): IMat;
// CV_EXPORTS_W cboolean imwrite( const string& filename, InputArray img, const vector<int>& params=vector<int>());
// function imwrite(const filename: String; const img: TccvMat): cboolean;
Type
IMaskGenerator = interface(IOCVCommon)
['{DABEB77F-A919-49EB-999F-C1876812A330}']
end;
TMaskGenerator = class(TOCVCommon, IMaskGenerator)
end;
// IFileNode = interface(IOCVCommon)
// ['{8BB056BF-08AE-4512-9861-4906D770C2A0}']
// end;
// TFileNode = class(TOCVCommon, IFileNode)
// end;
ISize = interface(IOCVCommon)
['{33DA805D-9B45-4EF9-A657-C53DB60CDE9A}']
end;
TSize = class(TOCVCommon, ISize)
public
constructor Create(const OpenCVClass: TOpenCVClass);
destructor Destroy; override;
end;
IRect2i = interface(IOCVCommon)
['{417FF1CA-D2A6-46BC-8FBA-84EF5642CE63}']
end;
TRect2i = class(TOCVCommon, IRect2i)
end;
IRect = IRect2i;
TVectorRect = TArray<IRect>;
TVectorInt = TArray<integer>;
TVectorDouble = TArray<double>;
ICascadeClassifier = interface(IOCVCommon)
['{700C3DEC-F156-4014-9676-5BD9ECC3B01B}']
function empty(): cbool;
function load(const FileName: String): cbool;
// function Read(const node: IFileNode): cbool;
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; scaleFactor: double { = 1.1 }; minNeighbors: integer { = 3 };
flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() } ); overload;
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; var numDetections: TVectorInt; scaleFactor: double { = 1.1 };
minNeighbors: integer { = 3 }; flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() } ); overload;
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; var rejectLevels: TVectorInt; Var levelWeights: TVectorDouble;
scaleFactor: double { = 1.1 }; minNeighbors: integer { = 3 }; flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() };
outputRejectLevels: cbool = false); overload;
function isOldFormatCascade(): cbool;
function getOriginalWindowSize(): ISize;
function getFeatureType(): integer;
function convert(const oldcascade: String; const newcascade: String): cbool;
end;
TCascadeClassifier = class(TOCVCommon, ICascadeClassifier)
private
public
constructor Create; overload;
(* * @brief Loads a classifier from a file.
@param filename Name of the file from which the classifier is loaded.
*)
constructor Create(const FileName: String); overload;
destructor Destroy; override;
(* * @brief Checks whether the classifier has been loaded.
*)
function empty(): cbool;
(* * @brief Loads a classifier from a file.
@param filename Name of the file from which the classifier is loaded. The file may contain an old
HAAR classifier trained by the haartraining application or a new cascade classifier trained by the
traincascade application.
*)
function load(const FileName: String): cbool;
(* * @brief Reads a classifier from a FileStorage node.
@note The file may contain a new cascade classifier (trained traincascade application) only.
*)
// function Read(const node: IFileNode): cbool;
(* * @brief Detects objects of different sizes in the input image. The detected objects are returned as a list
of rectangles.
@param image Matrix of the type CV_8U containing an image where objects are detected.
@param objects Vector of rectangles where each rectangle contains the detected object, the
rectangles may be partially outside the original image.
@param scaleFactor Parameter specifying how much the image size is reduced at each image scale.
@param minNeighbors Parameter specifying how many neighbors each candidate rectangle should have
to retain it.
@param flags Parameter with the same meaning for an old cascade as in the function
cvHaarDetectObjects. It is not used for a new cascade.
@param minSize Minimum possible object size. Objects smaller than that are ignored.
@param maxSize Maximum possible object size. Objects larger than that are ignored.
The function is parallelized with the TBB library.
@note
- (Python) A face detection example using cascade classifiers can be found at
opencv_source_code/samples/python2/facedetect.py
*)
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; scaleFactor: double { = 1.1 }; minNeighbors: integer { = 3 };
flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() } ); overload;
(* * @overload
@param image Matrix of the type CV_8U containing an image where objects are detected.
@param objects Vector of rectangles where each rectangle contains the detected object, the
rectangles may be partially outside the original image.
@param numDetections Vector of detection numbers for the corresponding objects. An object's number
of detections is the number of neighboring positively classified rectangles that were joined
together to form the object.
@param scaleFactor Parameter specifying how much the image size is reduced at each image scale.
@param minNeighbors Parameter specifying how many neighbors each candidate rectangle should have
to retain it.
@param flags Parameter with the same meaning for an old cascade as in the function
cvHaarDetectObjects. It is not used for a new cascade.
@param minSize Minimum possible object size. Objects smaller than that are ignored.
@param maxSize Maximum possible object size. Objects larger than that are ignored.
*)
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; var numDetections: TVectorInt; scaleFactor: double { = 1.1 };
minNeighbors: integer { = 3 }; flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() } ); overload;
(* * @overload
if `outputRejectLevels` is `true` returns `rejectLevels` and `levelWeights`
*)
procedure detectMultiScale(Image: IMat; Var objects: TVectorRect; var rejectLevels: TVectorInt; Var levelWeights: TVectorDouble;
scaleFactor: double { = 1.1 }; minNeighbors: integer { = 3 }; flags: integer { = 0 }; minSize: ISize { = Size() }; maxSize: ISize { = Size() };
outputRejectLevels: cbool = false); overload;
function isOldFormatCascade(): cbool;
function getOriginalWindowSize(): ISize;
function getFeatureType(): integer;
function convert(const oldcascade: String; const newcascade: String): cbool;
end;
Type
TIplImageRecordHelper = record helper for TIplImage
function InitFromMat(const Mat: IMat): TIplImage;
end;
TStringAnsiHelper = record helper for
String
function AsPAnsiChar: PAnsiChar;
end;
implementation
Uses
ocv.core_c,
ocv.utils,
ocv.lib;
// ------------------------------ Mat ------------------------------
function _CreateMat: TOpenCVClass; stdcall; external opencv_classes_lib name '_CreateMat@0';
function _GetMatData(const e: TOpenCVClass; index: integer; param: integer = 0): integer; stdcall; external opencv_classes_lib name '_GetMatData@12';
function _MatEmpty(const e: TOpenCVClass): cbool; stdcall; external opencv_classes_lib name '_MatEmpty@4';
function _CreateMatFromImage(const Image: pIplImage): TOpenCVClass; stdcall; external opencv_classes_lib name '_CreateMatFromImage@4';
procedure _DestroyMat(const M: TOpenCVClass); stdcall; external opencv_classes_lib name '_DestroyMat@4';
// ------------------------------ VideoCapture ------------------------------
function _CreateVideoCapture: TOpenCVVideoCaptureClass; stdcall; external opencv_classes_lib name '_CreateVideoCapture@0';
function _VideoCaptureOpen(const e: TOpenCVVideoCaptureClass; CamNumber: integer): cbool; stdcall;
external opencv_classes_lib name '_VideoCaptureOpen@8';
function _VideoCaptureOpenFileName(const e: TOpenCVVideoCaptureClass; FileName: PAnsiChar): cbool; stdcall;
external opencv_classes_lib name '_VideoCaptureOpenFileName@8';
function _VideoCaptureisOpened(const e: TOpenCVVideoCaptureClass): cbool; stdcall; external opencv_classes_lib name '_VideoCaptureisOpened@4';
function _VideoCaptureRead(const e: TOpenCVVideoCaptureClass; var M: TOpenCVClass): cbool; stdcall;
external opencv_classes_lib name '_VideoCaptureRead@8';
function _VideoCaptureSet(const e: TOpenCVVideoCaptureClass; propId: integer; Value: double): cbool; stdcall;
external opencv_classes_lib name '_VideoCaptureSet@16';
function _VideoCaptureGet(const e: TOpenCVVideoCaptureClass; propId: integer): double; stdcall; external opencv_classes_lib name '_VideoCaptureGet@8';
procedure _DestroyVideoCapture(const e: TOpenCVVideoCaptureClass); stdcall; external opencv_classes_lib name '_DestroyVideoCapture@4';
// ------------------------------ CascadeClassifier ------------------------------
function _CreateCascadeClassifier: TOpenCVClass; stdcall; external opencv_classes_lib name '_CreateCascadeClassifier@0';
procedure _DestroyCascadeClassifier(const CascadeClassifier: TOpenCVClass); stdcall; external opencv_classes_lib name '_DestroyCascadeClassifier@4';
function _get_CascadeClassifier_empty(CascadeClassifier: TOpenCVClass): cbool; stdcall;
external opencv_classes_lib name '_get_CascadeClassifier_empty@4';
function _get_CascadeClassifier_load(CascadeClassifier: TOpenCVClass; FileName: PAnsiChar): cbool; stdcall;
external opencv_classes_lib name '_get_CascadeClassifier_load@8';
function _CascadeClassifier_isOldFormatCascade(CascadeClassifier: TOpenCVClass): cbool; stdcall;
external opencv_classes_lib name '_CascadeClassifier_isOldFormatCascade@4';
function _CascadeClassifier_getOriginalWindowSize(CascadeClassifier: TOpenCVClass): TOpenCVClass; stdcall;
external opencv_classes_lib name '_CascadeClassifier_getOriginalWindowSize@4';
function _CascadeClassifier_getFeatureType(CascadeClassifier: TOpenCVClass): integer; stdcall;
external opencv_classes_lib name '_CascadeClassifier_getFeatureType@4';
function _CascadeClassifier_convert(CascadeClassifier: TOpenCVClass; oldcascade, newcascade: PAnsiChar): cbool; stdcall;
external opencv_classes_lib name '_CascadeClassifier_convert@12';
procedure namedWindow(const winname: String; const flags: integer = WINDOW_AUTOSIZE);
begin
cvNamedWindow(winname.AsPAnsiChar, flags);
end;
procedure destroyWindow(const winname: String);
begin
cvDestroyWindow(winname.AsPAnsiChar);
end;
procedure destroyAllWindows();
begin
cvDestroyAllWindows();
end;
function startWindowThread(): integer;
begin
Result := cvStartWindowThread();
end;
function waitKey(const delay: integer = 0): integer;
begin
Result := cvWaitKey(delay);
end;
procedure imshow(const winname: String; const Mat: IMat);
Var
IplImage: TIplImage;
begin
IplImage.InitFromMat(Mat);
cvShowImage(winname.AsPAnsiChar, @IplImage);
end;
procedure resizeWindow(const winname: String; const width, height: integer);
begin
cvResizeWindow(winname.AsPAnsiChar, width, height);
end;
procedure moveWindow(const winname: String; const x, y: integer);
begin
cvMoveWindow(winname.AsPAnsiChar, x, y);
end;
procedure setWindowProperty(const winname: String; const prop_id: integer; const prop_value: double);
begin
cvSetWindowProperty(winname.AsPAnsiChar, prop_id, prop_value);
end;
function getWindowProperty(const winname: String; const prop_id: integer): double;
begin
Result := cvGetWindowProperty(winname.AsPAnsiChar, prop_id);
end;
function createTrackbar(const trackbarname: String; const winname: String; Value: PInteger; count: integer; onChange: TCvTrackbarCallback2 = nil;
userdata: Pointer = nil): integer;
begin
Result := cvCreateTrackbar2(trackbarname.AsPAnsiChar, winname.AsPAnsiChar, Value, count, onChange, userdata);
end;
function imread(const FileName: string; flag: integer): IMat;
begin
Result := TMat.Create(cvLoadImage(FileName.AsPAnsiChar, flag));
end;
{ ------------------------------ TMat ------------------------------ }
function TMat.channels: integer;
begin
Result := _GetMatData(FData, 4);
end;
function TMat.cols: integer;
begin
Result := _GetMatData(FData, 10);
end;
constructor TMat.Create(const Image: pIplImage);
begin
FData := _CreateMatFromImage(Image);
end;
constructor TMat.Create(const _M: TOpenCVClass; const NeedDestroy: boolean);
begin
FNeedDestroy := NeedDestroy;
if Assigned(_M) then
FData := _M
else
FData := _CreateMat;
end;
function TMat.data: Pointer;
begin
Result := Pointer(_GetMatData(FData, 11));
end;
function TMat.depth: integer;
begin
Result := _GetMatData(FData, 3);
end;
destructor TMat.Destroy;
begin
if Assigned(FData) and FNeedDestroy then
_DestroyMat(FData);
inherited;
end;
function TMat.dims: integer;
begin
Result := _GetMatData(FData, 8);
end;
function TMat.elemSize: size_t;
begin
Result := _GetMatData(FData, 0);
end;
function TMat.elemSize1: size_t;
begin
Result := _GetMatData(FData, 1);
end;
function TMat.empty: cbool;
begin
Result := _MatEmpty(FData);
end;
function TMat.flags: integer;
begin
Result := _GetMatData(FData, 7);
end;
function TMat.rows: integer;
begin
Result := _GetMatData(FData, 9);
end;
function TMat.step1(i: integer): size_t;
begin
Result := _GetMatData(FData, 5, i);
end;
function TMat.total: size_t;
begin
Result := _GetMatData(FData, 6);
end;
function TMat._type: integer;
begin
Result := _GetMatData(FData, 2);
end;
{ ------------------------------ TVideoCapture ------------------------------ }
constructor TVideoCapture.Create(const CamNumber: integer);
begin
Create;
if Assigned(FData) then
_VideoCaptureOpen(FData, CamNumber);
end;
constructor TVideoCapture.Create(const FileName: String);
begin
Create;
if Assigned(FData) then
_VideoCaptureOpenFileName(FData, FileName.AsPAnsiChar);
end;
constructor TVideoCapture.Create;
begin
FData := _CreateVideoCapture;
end;
destructor TVideoCapture.Destroy;
begin
if Assigned(FData) then
_DestroyVideoCapture(FData);
inherited;
end;
function TVideoCapture.getProp(const propId: integer): double;
begin
Result := _VideoCaptureGet(FData, propId);
end;
function TVideoCapture.isOpened: cbool;
begin
Result := _VideoCaptureisOpened(FData);
end;
function TVideoCapture.Open(const FileName: String): cbool;
begin
if Assigned(FData) then
_VideoCaptureOpenFileName(FData, FileName.AsPAnsiChar);
end;
function TVideoCapture.PropSet(const propId: integer; const Value: double): cbool;
begin
Result := _VideoCaptureSet(FData, propId, Value);
end;
function TVideoCapture.Open(const CamNumber: integer): cbool;
begin
Result := _VideoCaptureOpen(FData, CamNumber);
end;
function TVideoCapture.Read(var Mat: IMat): cbool;
Var
_M: TOpenCVClass;
begin
Result := _VideoCaptureRead(FData, _M);
Mat := TMat.Create(_M);
end;
procedure TVideoCapture.setProp(const propId: integer; const Value: double);
begin
_VideoCaptureSet(FData, propId, Value);
end;
{ ------------------------------ TIplImageRecordHelper ------------------------------ }
function TIplImageRecordHelper.InitFromMat(const Mat: IMat): TIplImage;
begin
Assert(Mat.dims <= 2);
cvInitImageHeader(@Self, CvSize(Mat.cols, Mat.rows), cvIplDepth(Mat.flags), Mat.channels);
cvSetData(@Self, Mat.data, Mat.step1);
end;
{ ------------------------------ TStringAnsiHelper ------------------------------ }
function TStringAnsiHelper.AsPAnsiChar: PAnsiChar;
begin
Result := c_str(Self);
end;
{ ------------------------------ TCascadeClassifier ------------------------------ }
function TCascadeClassifier.convert(const oldcascade, newcascade: String): cbool;
begin
Result := _CascadeClassifier_convert(FData, oldcascade.AsPAnsiChar, newcascade.AsPAnsiChar);
end;
constructor TCascadeClassifier.Create;
begin
FData := _CreateCascadeClassifier;
end;
constructor TCascadeClassifier.Create(const FileName: String);
begin
FData := _CreateCascadeClassifier;
load(FileName);
end;
destructor TCascadeClassifier.Destroy;
begin
if Assigned(FData) then
_DestroyCascadeClassifier(FData);
inherited;
end;
procedure TCascadeClassifier.detectMultiScale(Image: IMat; var objects: TVectorRect; var numDetections: TVectorInt; scaleFactor: double;
minNeighbors, flags: integer; minSize, maxSize: ISize);
begin
end;
procedure TCascadeClassifier.detectMultiScale(Image: IMat; var objects: TVectorRect; var rejectLevels: TVectorInt; var levelWeights: TVectorDouble;
scaleFactor: double; minNeighbors, flags: integer; minSize, maxSize: ISize; outputRejectLevels: cbool);
begin
end;
procedure TCascadeClassifier.detectMultiScale(Image: IMat; var objects: TVectorRect; scaleFactor: double; minNeighbors, flags: integer;
minSize, maxSize: ISize);
begin
end;
function TCascadeClassifier.empty: cbool;
begin
Result := _get_CascadeClassifier_empty(FData);
end;
function TCascadeClassifier.getFeatureType: integer;
begin
Result := _CascadeClassifier_getFeatureType(FData);
end;
function TCascadeClassifier.getOriginalWindowSize: ISize;
begin
Result := TSize.Create(_CascadeClassifier_getOriginalWindowSize(FData));
end;
function TCascadeClassifier.isOldFormatCascade: cbool;
begin
Result:=_CascadeClassifier_isOldFormatCascade(FData);
end;
function TCascadeClassifier.load(const FileName: String): cbool;
begin
Result := _get_CascadeClassifier_load(FData, FileName.AsPAnsiChar);
end;
{ TOCVCommon }
function TOCVCommon._InternalData: TOpenCVClass;
begin
Result := FData;
end;
{ TSize }
constructor TSize.Create(const OpenCVClass: TOpenCVClass);
begin
FData := OpenCVClass;
end;
destructor TSize.Destroy;
begin
inherited;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -1,334 +0,0 @@
(*
**************************************************************************************************
Project Delphi-OpenCV
**************************************************************************************************
Contributor:
Laentir Valetov
email:laex@bk.ru
Mikhail Grigorev
email:sleuthound@gmail.com
**************************************************************************************************
You may retrieve the latest version of this file at the GitHub,
located at git://github.com/Laex/Delphi-OpenCV.git
**************************************************************************************************
License:
The contents of this file are 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/
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.
Alternatively, the contents of this file may be used under the terms of the
GNU Lesser General Public License (the "LGPL License"), in which case the
provisions of the LGPL License are applicable instead of those above.
If you wish to allow use of your version of this file only under the terms
of the LGPL License and not to allow others to use your version of this file
under the MPL, indicate your decision by deleting the provisions above and
replace them with the notice and other provisions required by the LGPL
License. If you do not delete the provisions above, a recipient may use
your version of this file under either the MPL or the LGPL License.
For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html
**************************************************************************************************
Warning: Using Delphi XE3 syntax!
**************************************************************************************************
The Initial Developer of the Original Code:
OpenCV: open source computer vision library
Homepage: http://ocv.org
Online docs: http://docs.ocv.org
Q&A forum: http://answers.ocv.org
Dev zone: http://code.ocv.org
**************************************************************************************************
*)
unit ocv.core;
{$I OpenCV.inc}
interface
uses
ocv.mat, ocv.core.types_c;
Type
TccvSize_<T> = class
// ! various constructors
// Size_();
// Size_(_Tp _width, _Tp _height);
// Size_(const Size_ & sz);
// Size_(const CvSize & sz);
// Size_(const CvSize2D32f & sz);
// Size_(const Point_<_Tp> & pt);
// Size_ & operator = (const Size_ & sz);
// ! the area (width*height)
// _Tp area() const;
// ! conversion of another data type.
// template < typename _Tp2 > operator Size_<_Tp2>() const;
// ! conversion to the old-style OpenCV types
// operator CvSize()const;
// operator CvSize2D32f()const;
// _Tp width, height; // the width and the height
end;
TccvSize2i = TccvSize_<integer>;
TccvSize2d = TccvSize_<double>;
TccvSize = class(TccvSize2i)
public
class function Create(width, height: integer): TccvSize; overload;
procedure Free; reintroduce;
end;
function Size(const width, height: integer): TccvSize; overload;
function Size(const S: TccvSize; const width, height: integer): TccvSize; overload;
Type
TccvVec3<T> = class
end;
TccvVec3d = TccvVec3<double>;
TccvVec3b = TccvVec3<byte>;
TccvPoint<T> = class
public
function getX(): T; virtual; stdcall; abstract;
procedure setX(x: T); virtual; stdcall; abstract;
function getY(): T; virtual; stdcall; abstract;
procedure setY(y: T); virtual; stdcall; abstract;
property x: T read getX write setX;
property y: T read getY write setY;
end;
TccvPoint2i = TccvPoint<integer>;
TccvPoint = class(TccvPoint2i)
public
class function Create: TccvPoint; overload;
class function Create(_x, _y: integer): TccvPoint; overload;
procedure Free; reintroduce;
end;
function Point(const x: integer = 0; const y: integer = 0): TccvPoint; overload;
function Point(const P: TccvPoint; const x: integer = 0; const y: integer = 0): TccvPoint; overload;
Type
TccvVectorOfPoint<T> = class
public
function Size(): integer; virtual; stdcall; abstract;
end;
TccvVectorOfPoint2i = TccvVectorOfPoint<TccvPoint2i>;
TccvVectorOfPoint = TccvVectorOfPoint2i;
TccvVectorOfVectorOfPoint<T> = class
public
function Size(): integer; virtual; stdcall; abstract;
procedure push_back(Val: TccvVectorOfPoint2i); virtual; stdcall; abstract;
end;
TccvVectorOfVectorOfPoint2i = TccvVectorOfVectorOfPoint<TccvVectorOfPoint2i>;
TccvRotatedRect = class
end;
TccvScalar_<Tp> = class
public
// ! returns a scalar with all elements set to v0
procedure all(v0: Tp); virtual; stdcall; abstract;
// ! conversion to the old-style CvScalar
function CvScalar: TCvScalar; virtual; stdcall; abstract;
// ! conversion to another data type
// template<typename T2> operator Scalar_<T2>() const;
// ! per-element product
// Scalar_<_Tp> mul(const Scalar_<_Tp>& t, double scale=1 ) const;
function mul(T: TccvScalar_<Tp>; scale: double = 1): TccvScalar_<Tp>; virtual; stdcall; abstract;
// returns (v0, -v1, -v2, -v3)
function conj: TccvScalar_<Tp>; virtual; stdcall; abstract;
// returns true iff v1 == v2 == v3 == 0
function isReal: LongBool; virtual; stdcall; abstract;
//
function GetVec(const Index: integer): Tp; virtual; stdcall; abstract;
procedure SetVec(const Index: integer; const Value: Tp); virtual; stdcall; abstract;
property Vec[const Index: integer]: Tp Read GetVec write SetVec; default;
end;
TccvScalar = class(TccvScalar_<double>)
public
class function Create: TccvScalar; overload;
class function Create(v0, v1: double; v2: double = 0; v3: double = 0): TccvScalar; overload;
class function Create(const S: TCvScalar): TccvScalar; overload;
class function Create(v0: double): TccvScalar; overload;
procedure Free; reintroduce;
end;
function Scalar(const v0: double = 0; const v1: double = 0; const v2: double = 0; const v3: double = 0): TccvScalar; overload;
function Scalar(const S: TccvScalar; const v0: double = 0; const v1: double = 0; const v2: double = 0; const v3: double = 0)
: TccvScalar; overload;
(* ! draws the circle outline or a solid circle in the image
CV_EXPORTS_W void circle(CV_IN_OUT Mat& img, Point center, int radius,
const Scalar& color, int thickness=1,int lineType=8, int shift=0);
*)
procedure circle(img: TccvMat; center: TccvPoint; radius: integer; const color: TccvScalar; thickness: integer = 1; lineType: integer = 8;
shift: integer = 0); stdcall;
// ! draws the line segment (pt1, pt2) in the image
// CV_EXPORTS_W void line(CV_IN_OUT Mat& img, Point pt1, Point pt2, const Scalar& color,
// int thickness=1, int lineType=8, int shift=0);
procedure line(img: TccvMat; pt1, pt2: TccvPoint; color: TccvScalar; thickness: integer = 1; lineType: integer = 8;
shift: integer = 0); stdcall;
// ! renders text string in the image
// CV_EXPORTS_W void putText( Mat& img, const string& text, Point org,
// int fontFace, double fontScale, Scalar color,
// int thickness=1, int lineType=8,
// bool bottomLeftOrigin=false );
procedure putText(img: TccvMat; text: String; org: TccvPoint; fontFace: integer; fontScale: double; color: TccvScalar;
thickness: integer = 1; lineType: integer = 8; bottomLeftOrigin: LongBool = false); stdcall;
/// ////////////////////////////////////////////////////////////////////////
// function CreateVec3d(): TccvVec3d; stdcall; overload;
// function CreateVec3d(v0, v1, v2: Double): TccvVec3d; stdcall; overload;
// function Vec3d(v0, v1, v2: Double): TccvVec3d; stdcall;
// procedure ReleaseVec3d(ex: TccvVec3d); stdcall;
//
// function CreateVec3b(): TccvVec3b; stdcall; overload;
// function CreateVec3b(v0, v1, v2: byte): TccvVec3b; stdcall; overload;
// function Vec3b(v0, v1, v2: byte): TccvVec3b; stdcall;
// procedure ReleaseVec3b(ex: TccvVec3b); stdcall;
//
// procedure ReleasePoint2i(ex: TccvPoint2i); stdcall;
// procedure ReleaseVectorOfPoint2i(ex: TccvVectorOfPoint2i); stdcall;
// procedure ReleaseVectorOfVectorOfPoint2i(ex: TccvVectorOfVectorOfPoint2i); stdcall;
//
// procedure MSER(m: TccvMat; var ex: TccvVectorOfVectorOfPoint2i); stdcall;
implementation
uses ocv.lib;
procedure circle; stdcall; external opencv_classes_lib;
procedure line; stdcall; external opencv_classes_lib;
procedure putText; stdcall; external opencv_classes_lib;
/// ///////////////////////////////////////////////////////////
function CreateVec3d(): TccvVec3d; stdcall; external opencv_classes_lib name 'CreateVec3d'; overload;
function CreateVec3d(v0, v1, v2: double): TccvVec3d; stdcall; external opencv_classes_lib name 'CreateVec3d3'; overload;
function Vec3d(v0, v1, v2: double): TccvVec3d; stdcall; external opencv_classes_lib name 'CreateVec3d3'; overload;
procedure ReleaseVec3d(ex: TccvVec3d); stdcall; external opencv_classes_lib;
function CreateVec3b(): TccvVec3b; stdcall; external opencv_classes_lib name 'CreateVec3b'; overload;
function CreateVec3b(v0, v1, v2: byte): TccvVec3b; stdcall; external opencv_classes_lib name 'CreateVec3b3'; overload;
function Vec3b(v0, v1, v2: byte): TccvVec3b; stdcall; external opencv_classes_lib name 'CreateVec3b3'; overload;
procedure ReleaseVec3b(ex: TccvVec3b); stdcall; external opencv_classes_lib;
procedure ReleasePoint2i(ex: TccvPoint2i); stdcall; external opencv_classes_lib;
procedure ReleaseVectorOfPoint2i(ex: TccvVectorOfPoint2i); stdcall; external opencv_classes_lib;
procedure ReleaseVectorOfVectorOfPoint2i(ex: TccvVectorOfVectorOfPoint2i); stdcall; external opencv_classes_lib;
procedure MSER(m: TccvMat; var ex: TccvVectorOfVectorOfPoint2i); stdcall; external opencv_classes_lib;
function Scalar(const v0: double = 0; const v1: double = 0; const v2: double = 0; const v3: double = 0): TccvScalar; overload;
begin
Result := TccvScalar.Create(v0, v1, v2, v3);
end;
function Scalar(const S: TccvScalar; const v0: double = 0; const v1: double = 0; const v2: double = 0; const v3: double = 0)
: TccvScalar; overload;
begin
S[0] := v0;
S[1] := v1;
S[2] := v2;
S[3] := v3;
Result := S;
end;
function Point(const x: integer = 0; const y: integer = 0): TccvPoint;
begin
Result := TccvPoint.Create(x, y);
end;
function Point(const P: TccvPoint; const x: integer = 0; const y: integer = 0): TccvPoint;
begin
P.x := x;
P.y := y;
Result := P;
end;
{ TccvScalar }
class function TccvScalar.Create(v0, v1, v2, v3: double): TccvScalar;
begin
end;
class function TccvScalar.Create: TccvScalar;
begin
end;
class function TccvScalar.Create(v0: double): TccvScalar;
begin
end;
class function TccvScalar.Create(const S: TCvScalar): TccvScalar;
begin
end;
procedure TccvScalar.Free;
begin
end;
{ TccvSize }
class function TccvSize.Create(width, height: integer): TccvSize;
begin
end;
procedure TccvSize.Free;
begin
end;
function Size(const width, height: integer): TccvSize; overload;
begin
end;
function Size(const S: TccvSize; const width, height: integer): TccvSize; overload;
begin
end;
{ TccvPoint }
class function TccvPoint.Create: TccvPoint;
begin
end;
class function TccvPoint.Create(_x, _y: integer): TccvPoint;
begin
end;
procedure TccvPoint.Free;
begin
end;
end.

View File

@ -165,8 +165,7 @@ const
int step CV_DEFAULT(CV_AUTOSTEP) );
}
{$EXTERNALSYM cvInitMatHeader}
function cvInitMatHeader(mat: pCvMat; rows: Integer; cols: Integer; _type: Integer; data: Pointer = nil; step: Integer = CV_AUTOSTEP)
: pCvMat; cdecl;
function cvInitMatHeader(mat: pCvMat; rows: Integer; cols: Integer; _type: Integer; data: Pointer = nil; step: Integer = CV_AUTOSTEP): pCvMat; cdecl;
{ Allocates and initializes CvMat header and allocates data
CVAPI(CvMat*) cvCreateMat( int rows, int cols, int type );
@ -422,8 +421,7 @@ function cvPtr3D(const arr: pCvArr; idx0, idx1, idx2: Integer; cType: pInteger =
unsigned* precalc_hashval CV_DEFAULT(NULL));
}
{$EXTERNALSYM cvPtrND}
function cvPtrND(const arr: pCvArr; idx: pInteger; cType: pInteger = nil; create_node: Integer = 1; precalc_hashval: punsigned = nil)
: pCvArr; cdecl;
function cvPtrND(const arr: pCvArr; idx: pInteger; cType: pInteger = nil; create_node: Integer = 1; precalc_hashval: punsigned = nil): pCvArr; cdecl;
{ value = arr(idx0,idx1,...)
CVAPI(CvScalar) cvGet1D( const pCvArr* arr, int idx0 );
@ -529,8 +527,7 @@ function cvGetImage(const arr: pCvArr; image_header: pIplImage): pIplImage; cdec
(new_cn), (new_dims), (new_sizes))
}
{$EXTERNALSYM cvReshapeMatND}
function cvReshapeMatND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger)
: pCvArr; cdecl;
function cvReshapeMatND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger): pCvArr; cdecl;
{$EXTERNALSYM cvReshapeND}
function cvReshapeND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger): pCvArr;
{$IFDEF USE_INLINE}inline; {$ENDIF}
@ -748,8 +745,7 @@ procedure cvAbsDiff(const src1: pCvArr; const src2: pCvArr; dst: pCvArr); cdecl;
function cvGet(const mat: pCvMat; i, j: Integer): Single; {$IFDEF USE_INLINE}inline; {$ENDIF}
procedure cvCopyImage(const src: pIplImage; dst: pIplImage; const mask: pIplImage = nil); cdecl;
procedure cvCvtPixToPlane(const src: pIplImage; dst0: pIplImage; dst1: pIplImage; dst2: pIplImage; dst3: pIplImage); cdecl;
procedure cvCvtPlaneToPix(const src0: pIplImage; const src1: pIplImage; const src2: pIplImage; const src3: pIplImage;
dst: pIplImage); cdecl;
procedure cvCvtPlaneToPix(const src0: pIplImage; const src1: pIplImage; const src2: pIplImage; const src3: pIplImage; dst: pIplImage); cdecl;
{ dst(idx) = src1(idx) | src2(idx) */
CVAPI(void) cvOr( const CvArr* src1, const CvArr* src2,
@ -934,8 +930,7 @@ const
// CVAPI(void) cvGEMM( const CvArr* src1, const CvArr* src2, double alpha,
// const CvArr* src3, double beta, CvArr* dst,
// int tABC CV_DEFAULT(0));
procedure cvGEMM(const src1: pCvArr; const src2: pCvArr; alpha: double; const src3: pCvArr; beta: double; dst: pCvArr;
tABC: Integer = 0); cdecl;
procedure cvGEMM(const src1: pCvArr; const src2: pCvArr; alpha: double; const src3: pCvArr; beta: double; dst: pCvArr; tABC: Integer = 0); cdecl;
// #define cvMatMulAddEx cvGEMM
@ -1261,8 +1256,8 @@ procedure cvCvtSeqToArray(const seq: pCvSeq; elements: pCvArr; slice: TCvSlice {
int elem_size, void* elements, int total,
CvSeq* seq, CvSeqBlock* block );
*)
function cvMakeSeqHeaderForArray(seq_type: Integer; header_size: Integer; elem_size: Integer; elements: Pointer; total: Integer;
seq: pCvSeq; block: pCvSeqBlock): pCvSeq; cdecl;
function cvMakeSeqHeaderForArray(seq_type: Integer; header_size: Integer; elem_size: Integer; elements: Pointer; total: Integer; seq: pCvSeq;
block: pCvSeqBlock): pCvSeq; cdecl;
(*
Extracts sequence slice (with or without copying sequence elements)
@ -1295,8 +1290,7 @@ function cvCreateSet(set_flags: Integer; header_size: Integer; elem_size: Intege
int vtx_size, int edge_size,
CvMemStorage* storage );
*)
function cvCreateGraph(graph_flags: Integer; header_size: Integer; vtx_size: Integer; edge_size: Integer; storage: pCvMemStorage)
: pCvGraph; cdecl;
function cvCreateGraph(graph_flags: Integer; header_size: Integer; vtx_size: Integer; edge_size: Integer; storage: pCvMemStorage): pCvGraph; cdecl;
(*
Adds new vertex to the graph
@ -1329,8 +1323,8 @@ function cvGraphRemoveVtxByPtr(graph: pCvGraph; vtx: pCvGraphVtx): Integer; cdec
const CvGraphEdge* edge CV_DEFAULT(NULL),
CvGraphEdge** inserted_edge CV_DEFAULT(NULL) );
*)
function cvGraphAddEdge(graph: pCvGraph; start_idx: Integer; end_idx: Integer; const edge: pCvGraphEdge = nil;
inserted_edge: pCvGraphEdgeArray = nil): Integer; cdecl;
function cvGraphAddEdge(graph: pCvGraph; start_idx: Integer; end_idx: Integer; const edge: pCvGraphEdge = nil; inserted_edge: pCvGraphEdgeArray = nil)
: Integer; cdecl;
(*
CVAPI(int) cvGraphAddEdgeByPtr( CvGraph* graph,
CvGraphVtx* start_vtx, CvGraphVtx* end_vtx,
@ -1476,6 +1470,14 @@ function cvNextGraphItem(scanner: pCvGraphScanner): Integer; cdecl;
*)
function cvCloneGraph(const graph: pCvGraph; storage: pCvMemStorage): pCvGraph; cdecl;
(* Does look-up transformation. Elements of the source array
(that should be 8uC1 or 8sC1) are used as indexes in lutarr 256-element table
CVAPI(void) cvLUT( const CvArr* src, CvArr* dst, const CvArr* lut );
*)
procedure cvLUT(const src: pCvArr; dst: pCvArr; const lut: pCvArr); cdecl;
(*
Adds new element to the set and returns pointer to it
@ -1578,8 +1580,7 @@ const
CvScalar color, int thickness CV_DEFAULT(1),
int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0) );
}
procedure cvLine(img: pCvArr; pt1, pt2: TCvPoint; color: TCvScalar; thickness: Integer = 1; line_type: Integer = 8;
shift: Integer = 0); cdecl;
procedure cvLine(img: pCvArr; pt1, pt2: TCvPoint; color: TCvScalar; thickness: Integer = 1; line_type: Integer = 8; shift: Integer = 0); cdecl;
{ Draws a rectangle specified by a CvRect structure
procedure cvRectangleR(8: v1: ); shift CV_DEFAULT(0): Integer): Integer;
@ -1737,8 +1738,8 @@ function cvColorToScalar(packed_color: double; arrtype: Integer): TCvScalar; cde
CVAPI(int) cvEllipse2Poly( CvPoint center, CvSize axes,
int angle, int arc_start, int arc_end, CvPoint * pts, int delta );
*)
function cvEllipse2Poly(center: TCvPoint; axes: TCvSize; angle: Integer; arc_start: Integer; arc_end: Integer; pts: pCVPoint;
delta: Integer): Integer; cdecl;
function cvEllipse2Poly(center: TCvPoint; axes: TCvSize; angle: Integer; arc_start: Integer; arc_end: Integer; pts: pCVPoint; delta: Integer)
: Integer; cdecl;
{ Draws contour outlines or filled interiors on the image
CVAPI(void) cvDrawContours( pCvArr *img, CvSeq* contour,
@ -1796,8 +1797,8 @@ function cvTreeToNodeSeq(const first: Pointer; header_size: Integer; storage: pC
const
CV_KMEANS_USE_INITIAL_LABELS = 1;
function cvKMeans2(const samples: pCvArr; cluster_count: Integer; labels: pCvArr; termcrit: TCvTermCriteria; attempts: Integer = 1;
rng: pCvRNG = nil; flags: Integer = 0; _centers: pCvArr = nil; compactness: pDouble = nil): Integer; cdecl;
function cvKMeans2(const samples: pCvArr; cluster_count: Integer; labels: pCvArr; termcrit: TCvTermCriteria; attempts: Integer = 1; rng: pCvRNG = nil;
flags: Integer = 0; _centers: pCvArr = nil; compactness: pDouble = nil): Integer; cdecl;
(*
***************************************************************************************\
@ -1844,8 +1845,8 @@ type
(* typedef IplImage* (CV_STDCALL* Cv_iplCreateImageHeader)
(int,int,int,char*,char*,int,int,int,int,int,
IplROI*,IplImage*,void*,IplTileInfo *)
TCv_iplCreateImageHeader = function(A: Integer; B: Integer; C: Integer; D: pCvChar; E: pCvChar; F: Integer; g: Integer; H: Integer;
i: Integer; j: Integer; K: pIplROI; L: pIplImage; M: Pointer; N: PIplTileInfo): pIplImage; stdcall;
TCv_iplCreateImageHeader = function(A: Integer; B: Integer; C: Integer; D: pCvChar; E: pCvChar; F: Integer; g: Integer; H: Integer; i: Integer;
j: Integer; K: pIplROI; L: pIplImage; M: Pointer; N: PIplTileInfo): pIplImage; stdcall;
(* typedef void (CV_STDCALL* Cv_iplAllocateImageData)(IplImage*,int,int); *)
TCv_iplAllocateImageData = procedure(A: pIplImage; B: Integer); stdcall;
@ -1865,8 +1866,8 @@ type
Cv_iplCreateROI create_roi,
Cv_iplCloneImage clone_image );
*)
procedure cvSetIPLAllocators(create_header: TCv_iplCreateImageHeader; allocate_data: TCv_iplAllocateImageData;
deallocate: TCv_iplDeallocate; create_roi: TCv_iplCreateROI; clone_image: TCv_iplCloneImage); cdecl;
procedure cvSetIPLAllocators(create_header: TCv_iplCreateImageHeader; allocate_data: TCv_iplAllocateImageData; deallocate: TCv_iplDeallocate;
create_roi: TCv_iplCreateROI; clone_image: TCv_iplCloneImage); cdecl;
{ ****************************************************************************************
* Data Persistence *
@ -1878,8 +1879,7 @@ procedure cvSetIPLAllocators(create_header: TCv_iplCreateImageHeader; allocate_d
CVAPI(CvFileStorage*) cvOpenFileStorage( const char* filename, CvMemStorage* memstorage,
int flags, const char* encoding CV_DEFAULT(NULL) );
}
function cvOpenFileStorage(const filename: pCvChar; memstorage: pCvMemStorage; flags: Integer; const encoding: pCvChar = nil)
: pCvFileStorage; cdecl;
function cvOpenFileStorage(const filename: pCvChar; memstorage: pCvMemStorage; flags: Integer; const encoding: pCvChar = nil): pCvFileStorage; cdecl;
{ closes file storage and deallocates buffers
CVAPI(void) cvReleaseFileStorage( CvFileStorage** fs );
@ -1924,8 +1924,8 @@ function cvReadString(const node: pCvFileNode; const default_value: pCvChar = ni
// {
// return cvReadString( cvGetFileNodeByName( fs, map, name ), default_value );
// }
function cvReadStringByName(const fs: pCvFileStorage; const map: pCvFileNode; const name: pCvChar; const default_value: pCvChar = nil)
: pCvChar; {$IFDEF USE_INLINE}inline; {$ENDIF}
function cvReadStringByName(const fs: pCvFileStorage; const map: pCvFileNode; const name: pCvChar; const default_value: pCvChar = nil): pCvChar;
{$IFDEF USE_INLINE}inline; {$ENDIF}
{ decodes standard or user-defined object and returns it
CVAPI(void*) cvRead( CvFileStorage* fs, CvFileNode* node,
CvAttrList* attributes CV_DEFAULT(NULL));
@ -2022,8 +2022,7 @@ procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name:
cdecl; overload;
procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name: pCvChar = Nil; const comment: pCvChar = Nil); overload;
{$IFDEF USE_INLINE}inline; {$ENDIF}
function cvLoad(const filename: pCvChar; memstorage: pCvMemStorage = Nil; const name: pCvChar = nil; const real_name: ppCvChar = nil)
: Pointer; cdecl;
function cvLoad(const filename: pCvChar; memstorage: pCvMemStorage = Nil; const name: pCvChar = nil; const real_name: ppCvChar = nil): Pointer; cdecl;
{ *********************************** Measuring Execution Time *************************** }
@ -2087,8 +2086,7 @@ function cvSetErrMode(mode: Integer): Integer; cdecl;
writing message to stderr, terminating application etc.)
depending on the current error mode *)
// CVAPI(void) cvError( int status, const char* func_name,const char* err_msg, const char* file_name, int line );
procedure cvError(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar = nil;
line: Integer = 0); cdecl;
procedure cvError(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar = nil; line: Integer = 0); cdecl;
(*
Retrieves textual description of the error given its code
@ -2137,20 +2135,20 @@ function cvRedirectError(error_handler: TCvErrorCallback; userdata: Pointer = ni
CVAPI(int) cvNulDevReport( int status, const char* func_name, const char* err_msg,
const char* file_name, int line, void* userdata );
*)
function cvNulDevReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer;
userdata: Pointer): Integer; cdecl;
function cvNulDevReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer; userdata: Pointer)
: Integer; cdecl;
(*
CVAPI(int) cvStdErrReport( int status, const char* func_name, const char* err_msg,
const char* file_name, int line, void* userdata );
*)
function cvStdErrReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer;
userdata: Pointer): Integer; cdecl;
function cvStdErrReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer; userdata: Pointer)
: Integer; cdecl;
(*
CVAPI(int) cvGuiBoxReport( int status, const char* func_name, const char* err_msg,
const char* file_name, int line, void* userdata );
*)
function cvGuiBoxReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer;
userdata: Pointer): Integer; cdecl;
function cvGuiBoxReport(status: Integer; const func_name: pCvChar; const err_msg: pCvChar; const file_name: pCvChar; line: Integer; userdata: Pointer)
: Integer; cdecl;
implementation
@ -2350,11 +2348,11 @@ procedure cvSet(arr: pCvArr; value: TCvScalar;
procedure cvSet(mat: pCvMat; i, j: Integer; val: Single); {$IFDEF USE_INLINE}inline; {$ENDIF}
var
// type_: Integer;
// type_: Integer;
ptr: pByte;
pf: PSingle;
begin
// type_ := CV_MAT_TYPE(mat._type);
// type_ := CV_MAT_TYPE(mat._type);
assert((i < mat^.rows) and (j < mat^.cols) and (CV_MAT_TYPE(mat._type) = CV_32FC1));
ptr := mat^.data;
Inc(ptr, mat.step * i + sizeof(Single) * j);
@ -2470,8 +2468,7 @@ begin
// return !node ? default_value :
// CV_NODE_IS_INT(node->tag) ? node->data.i :
// CV_NODE_IS_REAL(node->tag) ? cvRound(node->data.f) : 0x7fffffff;
result := iif(not Assigned(node), default_value, iif(CV_NODE_IS_INT(node^.tag), node^.i, iif(CV_NODE_IS_REAL(node^.tag), node^.F,
$7FFFFFFF)));
result := iif(not Assigned(node), default_value, iif(CV_NODE_IS_INT(node^.tag), node^.i, iif(CV_NODE_IS_REAL(node^.tag), node^.F, $7FFFFFFF)));
end;
function cvReadIntByName;
@ -2518,11 +2515,11 @@ function cvGet(
const mat: pCvMat; i, j: Integer): Single; {$IFDEF USE_INLINE}inline; {$ENDIF}
var
// type_: Integer;
// type_: Integer;
ptr: pByte;
pf: PSingle;
begin
// type_ := CV_MAT_TYPE(mat^._type);
// type_ := CV_MAT_TYPE(mat^._type);
assert((i < mat^.rows) and (j < mat^.cols) and (CV_MAT_TYPE(mat^._type) = CV_32FC1));
ptr := mat^.data;
Inc(ptr, mat.step * i + sizeof(Single) * j);

462
source/ocv.editor.pas Normal file
View File

@ -0,0 +1,462 @@
(*
*****************************************************************
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.
*******************************************************************
*)
{$I OpenCV.inc}
unit ocv.editor;
interface
Uses
ocv.core.types_c;
procedure ImageToHSVPlane(const InputImage: pIplImage; var h_plane, s_plane, v_plane: pIplImage);
procedure HSVPlaneToImage(const h_plane, s_plane, v_plane: pIplImage; Var OutputImage: pIplImage);
// --------------------------------------- Íàñûùåííîñòü ------------------------------------------------------
{
Äëÿ èçìåíåíèÿ íàñûùåííîñòè èçîáðàæåíèå ïðåîáðàçóåòñÿ â ñèñòåìó öâåòíîñòè
HSV è ðàçáèâàåòñÿ íà ñëîè. Ê çíà÷åíèÿì ñëîÿ «Sature» ïðèáàâëÿåòñÿ øàã. Ñëîè îáúåäèíÿþòñÿ.
}
procedure Sature(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// ------------------------------- Ýêñïîçèöèÿ ----------------------------------
{
Èçîáðàæåíèå ïðåîáðàçóåòñÿ â HSV è ðàçáèâàåòñÿ íà ñëîè.
Äëÿ ñëîÿ «Value» âûïîëíÿåì ïðåîáðàçîâàíèå ñ ïîìîùüþ ãèñòîãðàììû,
çàäàííîé ôóíêöèåé i + sin(i * 0.01255) * step * 10.
}
procedure Expo(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// ---------------------------- Îòòåíîê -------------------------------------
{
Ïàðàìåòð îòòåíêà õàðàêòåðèçóåò íàëè÷èå â èçîáðàæåíèè çåëåíîãî è ïóðïóðíîãî öâåòà.
 ñèñòåìå öâåòíîñòè RGB ìîæíî óïðàâëÿòü çåëåíûì ñëîåì, íî ïðè ýòîì íóæíî íå çàáûâàòü
êîìïåíñèðîâàòü ïàäåíèå ÿðêîñòè äðóãèì äâóìÿ ñëîÿìè. Äëÿ ïðåîáðàçîâàíèÿ êðàñíîãî è
ñèíåãî ñëîåâ èñïîëüçóåòñÿ ïîëîæèòåëüíàÿ ãàììà-ôóíêöèÿ ýêñïîçèöèè, äëÿ çåëåíîãî îòðèöàòåëüíàÿ.
}
procedure Hue(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// ------------------------------------ Öâåòîâàÿ òåìïåðàòóðà ------------------------------
{
Èíãðåäèåíòû: òå æå, ÷òî è â îòòåíêå, íî ãèñòîãðàììû äëÿ êðàñíîãî è çåëåíîãî ïîëîæèòåëüíûå, à äëÿ ñèíåãî ñëîÿ äâîéíàÿ îòðèöàòåëüíàÿ.
Öâåòîâàÿ òåìïåðàòóðà õàðàêòåðèçóåò íàëè÷èå â èçîáðàæåíèè æåëòîãî è ñèíåãî öâåòîâ. Çíà÷èò áóäåì «êðóòèòü» ñèíèé.
}
procedure Temperature(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// ------------------------------------ Ñâåò è òåíè ------------------------------
{
Ïàðàìåòð «ñâåò» õàðàêòåðèçóåò ÿðêîñòü ñâåòëûõ îáëàñòåé èçîáðàæåíèÿ,
à ïàðàìåòð «òåíè» ÿðêîñòü òåìíûõ îáëàñòåé. Ïðåîáðàçîâûâàòü áóäåì êàíàë ÿðêîñòåé.
}
procedure White(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
procedure Shadow(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// -------------------------------- Êîíòðàñò ----------------------------------
{
Êîíòðàñò îïðåäåëÿåòñÿ â ðàçíîñòè ÿðêîñòåé.
Ò.å. äëÿ óâåëè÷åíèÿ êîíòðàñòà íàì íóæíî ðàçäâèíóòü äèàïàçîí
ÿðêîñòåé îò öåíòðà ê êðàÿì. Ïðåîáðàçîâàíèå âûïîëíÿåòñÿ äëÿ âñåõ ñëîåâ.
}
procedure Contrast(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
// -------------------------------- Ðåçêîñòü ----------------------------------
{
Ðåçêîñòü (÷åòêîñòü) îïðåäåëÿåòñÿ âûäåëåíèåì îòäåëüíûõ ýëåìåíòîâ, èõ êîíòóðîâ.
Âåëè÷èíà, îáðàòíàÿ ðåçêîñòè ðàçìûòîñòü.
 opencv äëÿ ðàçìûòèÿ èçîáðàæåíèÿ èñïîëüçóåì ôóíêöèþ blur,
ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðîâ èñõîäíîå èçîáðàæåíèå, âûõîäíîå èçîáðàæåíèå,
è ðàçìåð ìàòðèöû ðàçìûòèÿ. Îò ðàçìåðà ìàòðèöû ðàçìûòèÿ è çàâèñèò ñèëà ðàçìûòèÿ.
Ýòîò ðàçìåð äîëæåí áûòü ÷åòíûì, ÷òîáû íå óêàçûâàòü âðó÷íóþ öåíòð ìàòðèöû.
×åòêîñòü â opencv ïðîùå âñåãî ïîâûñèòü ñ ïîìîùüþ ìàòðèöû ñâåðòêè, èñïîëüçóÿ
ñïåöèàëüíóþ äëÿ ýòîãî ìàòðèöó. Ôóíêöèÿ «filter2D», êîòîðàÿ ïðèíèìàåò èñõîäíîå
èçîáðàæåíèå, ðåçóëüòèðóþùåå èçîáðàæåíèå, êîëè÷åñòâî áèò íà çíà÷åíèå ìàòðèöû
ñâåðòêè, ìàòðèöó ñâåðòêè, âûïîëíÿåò íåïîñðåäñòâåííî ïðåîáðàçîâàíèå.
Èòàê, êàê áóäåò âûãëÿäåòü ìåòîä ïîâûøåíèÿ/ïîíèæåíèÿ ÷åòêîñòè.
}
procedure Clarity(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
implementation
Uses
System.Math,
ocv.core_c,
ocv.imgproc_c,
ocv.imgproc.types_c;
// ---------------------------------------------------------------------------------------------
procedure ImageToHSVPlane(const InputImage: pIplImage; var h_plane, s_plane, v_plane: pIplImage);
Var
hsv: pIplImage;
begin
hsv := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 3);
h_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
s_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
v_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
try
cvCvtColor(InputImage, hsv, CV_BGR2HSV_FULL);
cvCvtPixToPlane(hsv, h_plane, s_plane, v_plane, nil);
finally
cvReleaseImage(hsv);
end;
end;
procedure HSVPlaneToImage(const h_plane, s_plane, v_plane: pIplImage; Var OutputImage: pIplImage);
Var
hsv: pIplImage;
begin
hsv := cvCreateImage(cvGetSize(h_plane), IPL_DEPTH_8U, 3);
OutputImage := cvCreateImage(cvGetSize(h_plane), IPL_DEPTH_8U, 3);
try
cvCvtPlaneToPix(h_plane, s_plane, v_plane, nil, hsv);
cvCvtColor(hsv, OutputImage, CV_HSV2BGR_FULL);
finally
cvReleaseImage(hsv);
end;
end;
function AddDoubleToByte(const bt: byte; const d: double): byte;
begin
result := bt;
if (result + d) > 255 then
result := 255
else if (result + d) < 0 then
result := 0
else
result := result + Trunc(d);
end;
function GetGammaExpo(const step: Integer): pIplImage;
Var
i: Integer;
begin
result := cvCreateImage(cvSize(256, 1), IPL_DEPTH_8U, 1);
for i := 0 to 255 do
result^.imageData[i] := AddDoubleToByte(i, sin(i * 0.01255) * step * 10);
end;
// --------------------------------------- Íàñûùåííîñòü ------------------------------------------------------
{
Äëÿ èçìåíåíèÿ íàñûùåííîñòè èçîáðàæåíèå ïðåîáðàçóåòñÿ â ñèñòåìó öâåòíîñòè
HSV è ðàçáèâàåòñÿ íà ñëîè. Ê çíà÷åíèÿì ñëîÿ «Sature» ïðèáàâëÿåòñÿ øàã. Ñëîè îáúåäèíÿþòñÿ.
}
procedure Sature(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane: pIplImage;
s_plane: pIplImage;
v_plane: pIplImage;
i, j: Integer;
begin
ImageToHSVPlane(InputImage, h_plane, s_plane, v_plane);
try
for i := 0 to s_plane^.width * s_plane^.height - 1 do
begin
j := s_plane^.imageData[i] + step * 5;
if j < 256 then
s_plane^.imageData[i] := j
else
s_plane^.imageData[i] := 255;
end;
HSVPlaneToImage(h_plane, s_plane, v_plane, OutputImage);
finally
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
end;
end;
// ------------------------------- Ýêñïîçèöèÿ ----------------------------------
{
Èçîáðàæåíèå ïðåîáðàçóåòñÿ â HSV è ðàçáèâàåòñÿ íà ñëîè.
Äëÿ ñëîÿ «Value» âûïîëíÿåì ïðåîáðàçîâàíèå ñ ïîìîùüþ ãèñòîãðàììû,
çàäàííîé ôóíêöèåé i + sin(i * 0.01255) * step * 10.
}
procedure Expo(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane: pIplImage;
s_plane: pIplImage;
v_plane: pIplImage;
_v_plane: pIplImage;
lut: pIplImage;
begin
ImageToHSVPlane(InputImage, h_plane, s_plane, v_plane);
_v_plane := cvClone(v_plane);
lut := GetGammaExpo(step);
try
cvLUT(v_plane, _v_plane, lut);
HSVPlaneToImage(h_plane, s_plane, _v_plane, OutputImage);
finally
cvReleaseImage(lut);
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
cvReleaseImage(_v_plane);
end;
end;
// ---------------------------- Îòòåíîê -------------------------------------
{
Ïàðàìåòð îòòåíêà õàðàêòåðèçóåò íàëè÷èå â èçîáðàæåíèè çåëåíîãî è ïóðïóðíîãî öâåòà.
 ñèñòåìå öâåòíîñòè RGB ìîæíî óïðàâëÿòü çåëåíûì ñëîåì, íî ïðè ýòîì íóæíî íå çàáûâàòü
êîìïåíñèðîâàòü ïàäåíèå ÿðêîñòè äðóãèì äâóìÿ ñëîÿìè. Äëÿ ïðåîáðàçîâàíèÿ êðàñíîãî è
ñèíåãî ñëîåâ èñïîëüçóåòñÿ ïîëîæèòåëüíàÿ ãàììà-ôóíêöèÿ ýêñïîçèöèè, äëÿ çåëåíîãî îòðèöàòåëüíàÿ.
}
procedure Hue(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane, s_plane, v_plane: pIplImage;
_h_plane, _s_plane, _v_plane: pIplImage;
lut0, lut1, lut2: pIplImage;
begin
h_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
s_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
v_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
_h_plane := cvClone(h_plane);
_s_plane := cvClone(s_plane);
_v_plane := cvClone(v_plane);
try
cvCvtPixToPlane(InputImage, h_plane, s_plane, v_plane, nil);
lut0 := GetGammaExpo(step);
lut1 := GetGammaExpo(-step);
lut2 := GetGammaExpo(step);
cvLUT(h_plane, _h_plane, lut0);
cvLUT(s_plane, _s_plane, lut1);
cvLUT(v_plane, _v_plane, lut2);
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
cvCvtPlaneToPix(_h_plane, _s_plane, _v_plane, nil, OutputImage);
finally
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
cvReleaseImage(_h_plane);
cvReleaseImage(_s_plane);
cvReleaseImage(_v_plane);
cvReleaseImage(lut0);
cvReleaseImage(lut1);
cvReleaseImage(lut2);
end;
end;
// ------------------------------------ Öâåòîâàÿ òåìïåðàòóðà ------------------------------
{
Èíãðåäèåíòû: òå æå, ÷òî è â îòòåíêå, íî ãèñòîãðàììû äëÿ êðàñíîãî è çåëåíîãî ïîëîæèòåëüíûå, à äëÿ ñèíåãî ñëîÿ äâîéíàÿ îòðèöàòåëüíàÿ.
Öâåòîâàÿ òåìïåðàòóðà õàðàêòåðèçóåò íàëè÷èå â èçîáðàæåíèè æåëòîãî è ñèíåãî öâåòîâ. Çíà÷èò áóäåì «êðóòèòü» ñèíèé.
}
procedure Temperature(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane, s_plane, v_plane: pIplImage;
_h_plane, _s_plane, _v_plane: pIplImage;
lut0, lut1, lut2: pIplImage;
begin
h_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
s_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
v_plane := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
_h_plane := cvClone(h_plane);
_s_plane := cvClone(s_plane);
_v_plane := cvClone(v_plane);
try
cvCvtPixToPlane(InputImage, h_plane, s_plane, v_plane, nil);
lut0 := GetGammaExpo(-step * 2);
lut1 := GetGammaExpo(step);
lut2 := GetGammaExpo(step);
cvLUT(h_plane, _h_plane, lut0);
cvLUT(s_plane, _s_plane, lut1);
cvLUT(v_plane, _v_plane, lut2);
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
cvCvtPlaneToPix(_h_plane, _s_plane, _v_plane, nil, OutputImage);
finally
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
cvReleaseImage(_h_plane);
cvReleaseImage(_s_plane);
cvReleaseImage(_v_plane);
cvReleaseImage(lut0);
cvReleaseImage(lut1);
cvReleaseImage(lut2);
end;
end;
// ------------------------------------ Ñâåò è òåíè ------------------------------
{
Ïàðàìåòð «ñâåò» õàðàêòåðèçóåò ÿðêîñòü ñâåòëûõ îáëàñòåé èçîáðàæåíèÿ,
à ïàðàìåòð «òåíè» ÿðêîñòü òåìíûõ îáëàñòåé. Ïðåîáðàçîâûâàòü áóäåì êàíàë ÿðêîñòåé.
}
function GetGammaLightShadow(const step: Integer; const reverse: Boolean): pIplImage;
const
M_E = 2.71828182845905;
Var
i: Integer;
d: double;
begin
result := cvCreateImage(cvSize(256, 1), IPL_DEPTH_8U, 1);
if reverse then
d := 256
else
d := 0;
for i := 0 to 255 do
result^.imageData[i] := AddDoubleToByte(i, power(0.36811145 * M_E, -power(abs(d - i), 1.7)) * 0.2 * step * abs(d - i));
end;
procedure White(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane: pIplImage;
s_plane: pIplImage;
v_plane: pIplImage;
lut: pIplImage;
_v_plane: pIplImage;
begin
ImageToHSVPlane(InputImage, h_plane, s_plane, v_plane);
_v_plane := cvClone(v_plane);
try
lut := GetGammaLightShadow(step, true);
cvLUT(v_plane, _v_plane, lut);
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
HSVPlaneToImage(h_plane, s_plane, _v_plane, OutputImage);
finally
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
cvReleaseImage(_v_plane);
cvReleaseImage(lut);
end;
end;
procedure Shadow(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
h_plane: pIplImage;
s_plane: pIplImage;
v_plane: pIplImage;
lut: pIplImage;
_v_plane: pIplImage;
begin
ImageToHSVPlane(InputImage, h_plane, s_plane, v_plane);
_v_plane := cvClone(v_plane);
try
lut := GetGammaLightShadow(step, false);
cvLUT(v_plane, _v_plane, lut);
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
HSVPlaneToImage(h_plane, s_plane, _v_plane, OutputImage);
finally
cvReleaseImage(h_plane);
cvReleaseImage(s_plane);
cvReleaseImage(v_plane);
cvReleaseImage(_v_plane);
cvReleaseImage(lut);
end;
end;
// -------------------------------- Êîíòðàñò ----------------------------------
{
Êîíòðàñò îïðåäåëÿåòñÿ â ðàçíîñòè ÿðêîñòåé.
Ò.å. äëÿ óâåëè÷åíèÿ êîíòðàñòà íàì íóæíî ðàçäâèíóòü äèàïàçîí
ÿðêîñòåé îò öåíòðà ê êðàÿì. Ïðåîáðàçîâàíèå âûïîëíÿåòñÿ äëÿ âñåõ ñëîåâ.
}
procedure Contrast(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
Var
rgb_r: pIplImage;
rgb_g: pIplImage;
rgb_b: pIplImage;
_rgb_r: pIplImage;
_rgb_g: pIplImage;
_rgb_b: pIplImage;
contrastLevel, d: double;
lut: pIplImage;
p: PByte;
i: Integer;
begin
rgb_r := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
rgb_g := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
rgb_b := cvCreateImage(cvGetSize(InputImage), IPL_DEPTH_8U, 1);
cvCvtPixToPlane(InputImage, rgb_r, rgb_g, rgb_b, nil);
_rgb_r := cvClone(rgb_r);
_rgb_g := cvClone(rgb_g);
_rgb_b := cvClone(rgb_b);
lut := cvCreateImage(cvSize(256, 1), IPL_DEPTH_8U, 1);
try
contrastLevel := (100 + step) / 100;
p := lut^.imageData;
for i := 0 to 255 do
begin
d := ((i / 255 - 0.5) * contrastLevel + 0.5) * 255;
if (d > 255) then
d := 255
else if (d < 0) then
d := 0;
p[i] := Trunc(d);
end;
cvLUT(rgb_r, _rgb_r, lut);
cvLUT(rgb_g, _rgb_g, lut);
cvLUT(rgb_b, _rgb_b, lut);
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
cvCvtPlaneToPix(_rgb_r, _rgb_g, _rgb_b, nil, OutputImage);
finally
cvReleaseImage(rgb_r);
cvReleaseImage(rgb_g);
cvReleaseImage(rgb_b);
cvReleaseImage(_rgb_r);
cvReleaseImage(_rgb_g);
cvReleaseImage(_rgb_b);
cvReleaseImage(lut);
end;
end;
// -------------------------------- Ðåçêîñòü ----------------------------------
{
Ðåçêîñòü (÷åòêîñòü) îïðåäåëÿåòñÿ âûäåëåíèåì îòäåëüíûõ ýëåìåíòîâ, èõ êîíòóðîâ.
Âåëè÷èíà, îáðàòíàÿ ðåçêîñòè ðàçìûòîñòü.
 opencv äëÿ ðàçìûòèÿ èçîáðàæåíèÿ èñïîëüçóåì ôóíêöèþ blur,
ïðèíèìàþùóþ â êà÷åñòâå ïàðàìåòðîâ èñõîäíîå èçîáðàæåíèå, âûõîäíîå èçîáðàæåíèå,
è ðàçìåð ìàòðèöû ðàçìûòèÿ. Îò ðàçìåðà ìàòðèöû ðàçìûòèÿ è çàâèñèò ñèëà ðàçìûòèÿ.
Ýòîò ðàçìåð äîëæåí áûòü ÷åòíûì, ÷òîáû íå óêàçûâàòü âðó÷íóþ öåíòð ìàòðèöû.
×åòêîñòü â opencv ïðîùå âñåãî ïîâûñèòü ñ ïîìîùüþ ìàòðèöû ñâåðòêè, èñïîëüçóÿ
ñïåöèàëüíóþ äëÿ ýòîãî ìàòðèöó. Ôóíêöèÿ «filter2D», êîòîðàÿ ïðèíèìàåò èñõîäíîå
èçîáðàæåíèå, ðåçóëüòèðóþùåå èçîáðàæåíèå, êîëè÷åñòâî áèò íà çíà÷åíèå ìàòðèöû
ñâåðòêè, ìàòðèöó ñâåðòêè, âûïîëíÿåò íåïîñðåäñòâåííî ïðåîáðàçîâàíèå.
Èòàê, êàê áóäåò âûãëÿäåòü ìåòîä ïîâûøåíèÿ/ïîíèæåíèÿ ÷åòêîñòè.
}
procedure Clarity(const step: Integer; const InputImage: pIplImage; Var OutputImage: pIplImage);
var
matr: array [0 .. 9] of single;
kernel_matrix: pCvMat;
begin
OutputImage := cvCreateImage(cvGetSize(InputImage), InputImage^.depth, InputImage^.nChannels);
if (step < 0) then
cvSmooth(InputImage, OutputImage, cv_blur, -step * 2 + 1, step * 2 + 1, 0, 0)
else
begin
kernel_matrix := cvCreateMat(3, 3, CV_32FC1);
PSingle(kernel_matrix^.Data)[0] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[1] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[2] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[3] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[4] := 1.3 + 0.4 * step;
PSingle(kernel_matrix^.Data)[5] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[6] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[7] := -0.0375 - 0.05 * step;
PSingle(kernel_matrix^.Data)[8] := -0.0375 - 0.05 * step;
cvFilter2D(InputImage, OutputImage, kernel_matrix);
end;
end;
end.

View File

@ -1,584 +0,0 @@
(*
*****************************************************************
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.
*******************************************************************
*)
unit ocv.features2d;
{$I OpenCV.inc}
interface
Uses
// {$IFDEF MSWINDOWS}
// Winapi.Windows,
// {$ENDIF MSWINDOWS}
ocv.core.types_c,
ocv.cclasses,
ocv.mat;
// nonfree
Type
pKeyPoint = ^TKeyPoint;
TKeyPoint = record
x: Single;
y: Single;
size: Single; // !< diameter of the meaningful keypoint neighborhood
angle: Single; // !< computed orientation of the keypoint (-1 if not applicable);
// !< it's in [0,360) degrees and measured relative to
// !< image coordinate system, ie in clockwise.
response: Single;
// !< the response by which the most strong keypoints have been selected. Can be used for the further sorting or subsampling
octave: Integer; // !< octave (pyramid layer) from which the keypoint has been extracted
class_id: Integer; // !< object class (if the keypoints need to be clustered by an object they belong to)
end;
TCVectorKeyPoint = class
public
function size(): size_t; virtual; stdcall; abstract;
procedure push_back(const Val: TKeyPoint); virtual; stdcall; abstract;
function at(i: Integer): pKeyPoint; virtual; stdcall; abstract;
function Vector(): Pointer; virtual; stdcall; abstract;
// ---------------------
class function Create: TCVectorKeyPoint;
procedure Free; reintroduce;
end;
TSURF = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
procedure compute(image: TccvMat; keypoints: TCVectorKeyPoint; Var descriptors: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(hessianThreshold: double = 400; nOctaves: Integer = 4; nOctaveLayers: Integer = 2; extended: boolean = true;
upright: boolean = false): TSURF; overload;
procedure Free; reintroduce;
end;
TSurfFeatureDetector = TSURF;
TSurfDescriptorExtractor = TSURF;
TSIFT = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
procedure compute(image: TccvMat; keypoints: TCVectorKeyPoint; Var descriptors: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(nfeatures: Integer = 0; nOctaveLayers: Integer = 3; contrastThreshold: double = 0.04; edgeThreshold: double = 10;
sigma: double = 1.6): TSIFT; overload;
procedure Free; reintroduce;
end;
TSiftFeatureDetector = TSIFT;
TSiftDescriptorExtractor = TSIFT;
// features2d
const
kBytes = 32;
HARRIS_SCORE = 0;
FAST_SCORE = 1;
Type
TBRISK = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
procedure compute(image: TccvMat; keypoints: TCVectorKeyPoint; Var descriptors: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(thresh: Integer = 30; octaves: Integer = 3; patternScale: Single = 1.0): TBRISK; overload;
procedure Free; reintroduce;
end;
TBRISKFeatureDetector = TBRISK;
TBRISKDescriptorExtractor = TBRISK;
TORB = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
procedure compute(image: TccvMat; keypoints: TCVectorKeyPoint; Var descriptors: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(nfeatures: Integer = 500; scaleFactor: Single = 1.2; nlevels: Integer = 8; edgeThreshold: Integer = 31;
firstLevel: Integer = 0; WTA_K: Integer = 2; scoreType: Integer = HARRIS_SCORE; patchSize: Integer = 31): TORB; overload;
procedure Free; reintroduce;
end;
TORBFeatureDetector = TORB;
TORBDescriptorExtractor = TORB;
TFREAK = class
public
procedure compute(image: TccvMat; keypoints: TCVectorKeyPoint; Var descriptors: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(orientationNormalized: boolean = true; scaleNormalized: boolean = true; patternScale: Single = 22.0;
nOctaves: Integer = 4): TFREAK; overload;
procedure Free; reintroduce;
end;
TFREAKDescriptorExtractor = TFREAK;
TMSER = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(_delta: Integer = 5; _min_area: Integer = 60; _max_area: Integer = 14400; _max_variation: double = 0.25;
_min_diversity: double = 0.2; _max_evolution: Integer = 200; _area_threshold: double = 1.01; _min_margin: double = 0.003;
_edge_blur_size: Integer = 5): TMSER; overload;
procedure Free; reintroduce;
end;
TMSERFeatureDetector = TMSER;
TStarDetector = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(_maxSize: Integer = 45; _responseThreshold: Integer = 30; _lineThresholdProjected: Integer = 10;
_lineThresholdBinarized: Integer = 8; _suppressNonmaxSize: Integer = 5): TStarDetector; overload;
procedure Free; reintroduce;
end;
TStarFeatureDetector = TStarDetector;
TFastFeatureDetector = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(threshold: Integer = 10; nonmaxSuppression: boolean = true): TFastFeatureDetector; overload;
procedure Free; reintroduce;
end;
TGFTTDetector = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(maxCorners: Integer = 1000; qualityLevel: double = 0.01; minDistance: double = 1; blockSize: Integer = 3;
useHarrisDetector: boolean = false; k: double = 0.04): TGFTTDetector; overload;
procedure Free; reintroduce;
end;
TGFTTFeatureDetector = TGFTTDetector;
TGoodFeaturesToTrackDetector = TGFTTDetector;
TSimpleBlobDetectorParams = record
thresholdStep: Single;
minThreshold: Single;
maxThreshold: Single;
minRepeatability: size_t;
minDistBetweenBlobs: Single;
filterByColor: boolean;
blobColor: uchar;
filterByArea: boolean;
minArea: Single;
maxArea: Single;
filterByCircularity: boolean;
minCircularity: Single;
maxCircularity: Single;
filterByInertia: boolean;
minInertiaRatio: Single;
maxInertiaRatio: Single;
filterByConvexity: boolean;
minConvexity: Single;
maxConvexity: Single;
// -------------------------------
procedure SetDefault;
end;
TSimpleBlobDetector = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create: TSimpleBlobDetector; overload;
class function Create(SimpleBlobDetectorParams: TSimpleBlobDetectorParams): TSimpleBlobDetector; overload;
procedure Free; reintroduce;
end;
TDenseFeatureDetector = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(initFeatureScale: Single = 1; featureScaleLevels: Integer = 1; featureScaleMul: Single = 0.1;
initXyStep: Integer = 6; initImgBound: Integer = 0; varyXyStepWithScale: boolean = true; varyImgBoundWithScale: boolean = false)
: TDenseFeatureDetector; overload;
procedure Free; reintroduce;
end;
TBriefDescriptorExtractor = class
public
procedure detect(image: TccvMat; keypoints: TCVectorKeyPoint; mask: TccvMat = nil); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create(bytes: Integer = 32): TBriefDescriptorExtractor; overload;
procedure Free; reintroduce;
end;
pDMatch = ^TDMatch;
TDMatch = record
queryIdx: Integer; // query descriptor index
trainIdx: Integer; // train descriptor index
imgIdx: Integer; // train image index
distance: Single;
end;
TCVectorDMatch = class
public
function size(): size_t; virtual; stdcall; abstract;
procedure push_back(const Val: TDMatch); virtual; stdcall; abstract;
function at(i: Integer): pDMatch; virtual; stdcall; abstract;
function Vector(): Pointer; virtual; stdcall; abstract;
// ---------------------
class function Create: TCVectorDMatch;
procedure Free; reintroduce;
end;
const
NORM_INF = 1;
NORM_L1 = 2;
NORM_L2 = 4;
NORM_L2SQR = 5;
NORM_HAMMING = 6;
NORM_HAMMING2 = 7;
NORM_TYPE_MASK = 7;
NORM_RELATIVE = 8;
NORM_MINMAX = 32;
type
TBFMatcher = class
public
procedure match(queryDescriptors: TccvMat; trainDescriptors: TccvMat; matces: TCVectorDMatch; mask: TccvMat = Nil); virtual;
stdcall; abstract;
// ---------------------
class function Create(normType: Integer = NORM_L2; crossCheck: boolean = false): TBFMatcher;
procedure Free; reintroduce;
end;
TFlannBasedMatcher = class
public
procedure match(queryDescriptors: TccvMat; trainDescriptors: TccvMat; matces: TCVectorDMatch; mask: TccvMat = Nil); virtual;
stdcall; abstract;
// ---------------------
class function Create: TFlannBasedMatcher;
procedure Free; reintroduce;
end;
procedure DrawMatches(img1: TccvMat; keypoints1: TCVectorKeyPoint; img2: TccvMat; keypoints2: TCVectorKeyPoint; matches1to2: TCVectorDMatch;
Var outImg: TccvMat); stdcall;
implementation
uses
ocv.lib, System.Math;
function CreateSURF(hessianThreshold: double; nOctaves: Integer = 4; nOctaveLayers: Integer = 2; extended: boolean = true;
upright: boolean = false): TSURF; stdcall; external opencv_classes_lib;
procedure ReleaseSURF(ex: TSURF); stdcall; external opencv_classes_lib;
function CreateSIFT(nfeatures: Integer = 0; nOctaveLayers: Integer = 3; contrastThreshold: double = 0.04; edgeThreshold: double = 10;
sigma: double = 1.6): TSIFT; stdcall; external opencv_classes_lib;
procedure ReleaseSIFT(ex: TSIFT); stdcall; external opencv_classes_lib;
function CreateCVectorKeyPoint: TCVectorKeyPoint; stdcall; external opencv_classes_lib;
procedure ReleaseCVectorKeyPoint(ex: TCVectorKeyPoint); stdcall; external opencv_classes_lib;
function CreateCVectorDMatch(): TCVectorDMatch; stdcall; external opencv_classes_lib;
procedure ReleaseCVectorDMatch(ex: TCVectorDMatch); stdcall; external opencv_classes_lib;
function CreateBFMatcher(normType: Integer = NORM_L2; crossCheck: boolean = false): TBFMatcher; stdcall; external opencv_classes_lib;
procedure ReleaseBFMatcher(ex: TBFMatcher); stdcall; external opencv_classes_lib;
procedure DrawMatches; stdcall; external opencv_classes_lib;
function CreateBRISK(thresh: Integer = 30; octaves: Integer = 3; patternScale: Single = 1.0): TBRISK; stdcall; external opencv_classes_lib;
procedure ReleaseBRISK(ex: TBRISK); stdcall; external opencv_classes_lib;
function CreateORB(nfeatures: Integer = 500; scaleFactor: Single = 1.2; nlevels: Integer = 8; edgeThreshold: Integer = 31;
firstLevel: Integer = 0; WTA_K: Integer = 2; scoreType: Integer = HARRIS_SCORE; patchSize: Integer = 31): TORB; stdcall;
external opencv_classes_lib;
procedure ReleaseORB(ex: TORB); stdcall; external opencv_classes_lib;
function CreateFREAK(orientationNormalized: boolean = true; scaleNormalized: boolean = true; patternScale: Single = 22.0;
nOctaves: Integer = 4): TFREAK; stdcall; external opencv_classes_lib;
procedure ReleaseFREAK(ex: TFREAK); stdcall; external opencv_classes_lib;
function CreateMSER(_delta: Integer = 5; _min_area: Integer = 60; _max_area: Integer = 14400; _max_variation: double = 0.25;
_min_diversity: double = 0.2; _max_evolution: Integer = 200; _area_threshold: double = 1.01; _min_margin: double = 0.003;
_edge_blur_size: Integer = 5): TMSER; stdcall; external opencv_classes_lib;
procedure ReleaseMSER(ex: TMSER); stdcall; external opencv_classes_lib;
function CreateStarDetector(_maxSize: Integer = 45; _responseThreshold: Integer = 30; _lineThresholdProjected: Integer = 10;
_lineThresholdBinarized: Integer = 8; _suppressNonmaxSize: Integer = 5): TStarDetector; stdcall; external opencv_classes_lib;
procedure ReleaseStarDetector(ex: TStarDetector); stdcall; external opencv_classes_lib;
function CreateFastFeatureDetector(threshold: Integer = 10; nonmaxSuppression: boolean = true): TFastFeatureDetector; stdcall;
external opencv_classes_lib;
procedure ReleaseFastFeatureDetector(ex: TFastFeatureDetector); stdcall; external opencv_classes_lib;
function CreateGFTTDetector(maxCorners: Integer = 1000; qualityLevel: double = 0.01; minDistance: double = 1; blockSize: Integer = 3;
useHarrisDetector: boolean = false; k: double = 0.04): TGFTTDetector; stdcall; external opencv_classes_lib;
procedure ReleaseGFTTDetector(ex: TGFTTDetector); stdcall; external opencv_classes_lib;
function CreateSimpleBlobDetector(SimpleBlobDetectorParams: TSimpleBlobDetectorParams): TSimpleBlobDetector; stdcall;
external opencv_classes_lib;
function CreateSimpleBlobDetectorDefault(): TSimpleBlobDetector; stdcall; external opencv_classes_lib;
procedure ReleaseSimpleBlobDetector(ex: TSimpleBlobDetector); stdcall; external opencv_classes_lib;
function CreateDenseFeatureDetector(initFeatureScale: Single = 1; featureScaleLevels: Integer = 1; featureScaleMul: Single = 0.1;
initXyStep: Integer = 6; initImgBound: Integer = 0; varyXyStepWithScale: boolean = true; varyImgBoundWithScale: boolean = false)
: TDenseFeatureDetector; stdcall; external opencv_classes_lib;
procedure ReleaseDenseFeatureDetector(ex: TDenseFeatureDetector); stdcall; external opencv_classes_lib;
function CreateBriefDescriptorExtractor(bytes: Integer = 32): TBriefDescriptorExtractor; stdcall; external opencv_classes_lib;
procedure ReleaseBriefDescriptorExtractor(ex: TBriefDescriptorExtractor); stdcall; external opencv_classes_lib;
function CreateFlannBasedMatcher(): TFlannBasedMatcher; stdcall; external opencv_classes_lib;
procedure ReleaseFlannBasedMatcher(ex: TFlannBasedMatcher); stdcall; external opencv_classes_lib;
{ TSURF }
class function TSURF.Create(hessianThreshold: double; nOctaves, nOctaveLayers: Integer; extended, upright: boolean): TSURF;
begin
Result := CreateSURF(hessianThreshold, nOctaves, nOctaveLayers, extended, upright);
end;
procedure TSURF.Free;
begin
ReleaseSURF(Self);
end;
{ TCVectorKeyPoint }
class function TCVectorKeyPoint.Create: TCVectorKeyPoint;
begin
Result := CreateCVectorKeyPoint;
end;
procedure TCVectorKeyPoint.Free;
begin
ReleaseCVectorKeyPoint(Self);
end;
{ TCVectorDMatch }
class function TCVectorDMatch.Create: TCVectorDMatch;
begin
Result := CreateCVectorDMatch;
end;
procedure TCVectorDMatch.Free;
begin
ReleaseCVectorDMatch(Self);
end;
{ TBFMatcher }
class function TBFMatcher.Create(normType: Integer = NORM_L2; crossCheck: boolean = false): TBFMatcher;
begin
Result := CreateBFMatcher(normType, crossCheck);
end;
procedure TBFMatcher.Free;
begin
ReleaseBFMatcher(Self);
end;
{ TSIFT }
class function TSIFT.Create(nfeatures, nOctaveLayers: Integer; contrastThreshold, edgeThreshold, sigma: double): TSIFT;
begin
Result := CreateSIFT(nfeatures, nOctaveLayers, contrastThreshold, edgeThreshold, sigma);
end;
procedure TSIFT.Free;
begin
ReleaseSIFT(Self);
end;
{ TBRISK }
class function TBRISK.Create(thresh, octaves: Integer; patternScale: Single): TBRISK;
begin
Result := CreateBRISK(thresh, octaves, patternScale);
end;
procedure TBRISK.Free;
begin
ReleaseBRISK(Self);
end;
{ TORB }
class function TORB.Create(nfeatures: Integer; scaleFactor: Single; nlevels, edgeThreshold, firstLevel, WTA_K, scoreType,
patchSize: Integer): TORB;
begin
Result := CreateORB(nfeatures, scaleFactor, nlevels, edgeThreshold, firstLevel, WTA_K, scoreType, patchSize);
end;
procedure TORB.Free;
begin
ReleaseORB(Self);
end;
{ TFREAK }
class function TFREAK.Create(orientationNormalized, scaleNormalized: boolean; patternScale: Single; nOctaves: Integer): TFREAK;
begin
Result := CreateFREAK(orientationNormalized, scaleNormalized, patternScale, nOctaves);
end;
procedure TFREAK.Free;
begin
ReleaseFREAK(Self);
end;
{ TMSER }
class function TMSER.Create(_delta, _min_area, _max_area: Integer; _max_variation, _min_diversity: double; _max_evolution: Integer;
_area_threshold, _min_margin: double; _edge_blur_size: Integer): TMSER;
begin
Result := CreateMSER(_delta, _min_area, _max_area, _max_variation, _min_diversity, _max_evolution, _area_threshold, _min_margin,
_edge_blur_size);
end;
procedure TMSER.Free;
begin
ReleaseMSER(Self);
end;
{ TStarDetector }
class function TStarDetector.Create(_maxSize, _responseThreshold, _lineThresholdProjected, _lineThresholdBinarized,
_suppressNonmaxSize: Integer): TStarDetector;
begin
Result := CreateStarDetector(_maxSize, _responseThreshold, _lineThresholdProjected, _lineThresholdBinarized, _suppressNonmaxSize);
end;
procedure TStarDetector.Free;
begin
ReleaseStarDetector(Self);
end;
{ TFastFeatureDetector }
class function TFastFeatureDetector.Create(threshold: Integer; nonmaxSuppression: boolean): TFastFeatureDetector;
begin
Result := CreateFastFeatureDetector(threshold, nonmaxSuppression);
end;
procedure TFastFeatureDetector.Free;
begin
ReleaseFastFeatureDetector(Self);
end;
{ TGFTTDetector }
class function TGFTTDetector.Create(maxCorners: Integer; qualityLevel, minDistance: double; blockSize: Integer; useHarrisDetector: boolean;
k: double): TGFTTDetector;
begin
Result := CreateGFTTDetector(maxCorners, qualityLevel, minDistance, blockSize, useHarrisDetector, k);
end;
procedure TGFTTDetector.Free;
begin
ReleaseGFTTDetector(Self);
end;
{ TSimpleBlobDetectorParams }
procedure TSimpleBlobDetectorParams.SetDefault;
begin
thresholdStep := 10;
minThreshold := 50;
maxThreshold := 220;
minRepeatability := 2;
minDistBetweenBlobs := 10;
filterByColor := true;
blobColor := 0;
filterByArea := true;
minArea := 25;
maxArea := 5000;
filterByCircularity := false;
minCircularity := 0.8;
maxCircularity := MaxSingle;
filterByInertia := true;
// minInertiaRatio := 0.6;
minInertiaRatio := 0.1;
maxInertiaRatio := MaxSingle;
filterByConvexity := true;
// minConvexity := 0.8;
minConvexity := 0.95;
maxConvexity := MaxSingle;
end;
{ TSimpleBlobDetector }
class function TSimpleBlobDetector.Create: TSimpleBlobDetector;
begin
Result := CreateSimpleBlobDetectorDefault;
end;
class function TSimpleBlobDetector.Create(SimpleBlobDetectorParams: TSimpleBlobDetectorParams): TSimpleBlobDetector;
begin
Result := CreateSimpleBlobDetector(SimpleBlobDetectorParams);
end;
procedure TSimpleBlobDetector.Free;
begin
ReleaseSimpleBlobDetector(Self);
end;
{ TDenseFeatureDetector }
class function TDenseFeatureDetector.Create(initFeatureScale: Single; featureScaleLevels: Integer; featureScaleMul: Single;
initXyStep, initImgBound: Integer; varyXyStepWithScale, varyImgBoundWithScale: boolean): TDenseFeatureDetector;
begin
Result := CreateDenseFeatureDetector(initFeatureScale, featureScaleLevels, featureScaleMul, initXyStep, initImgBound, varyXyStepWithScale,
varyImgBoundWithScale);
end;
procedure TDenseFeatureDetector.Free;
begin
ReleaseDenseFeatureDetector(Self);
end;
{ TBriefDescriptorExtractor }
class function TBriefDescriptorExtractor.Create(bytes: Integer): TBriefDescriptorExtractor;
begin
Result := CreateBriefDescriptorExtractor(bytes);
end;
procedure TBriefDescriptorExtractor.Free;
begin
ReleaseBriefDescriptorExtractor(Self);
end;
{ TFlannBasedMatcher }
class function TFlannBasedMatcher.Create: TFlannBasedMatcher;
begin
Result := CreateFlannBasedMatcher;
end;
procedure TFlannBasedMatcher.Free;
begin
ReleaseFlannBasedMatcher(Self);
end;
end.

View File

@ -1,252 +0,0 @@
(*
**************************************************************************************************
Project Delphi-OpenCV
**************************************************************************************************
Contributor:
Laentir Valetov
email:laex@bk.ru
Mikhail Grigorev
email:sleuthound@gmail.com
**************************************************************************************************
You may retrieve the latest version of this file at the GitHub,
located at git://github.com/Laex/Delphi-OpenCV.git
**************************************************************************************************
License:
The contents of this file are 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/
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.
Alternatively, the contents of this file may be used under the terms of the
GNU Lesser General Public License (the "LGPL License"), in which case the
provisions of the LGPL License are applicable instead of those above.
If you wish to allow use of your version of this file only under the terms
of the LGPL License and not to allow others to use your version of this file
under the MPL, indicate your decision by deleting the provisions above and
replace them with the notice and other provisions required by the LGPL
License. If you do not delete the provisions above, a recipient may use
your version of this file under either the MPL or the LGPL License.
For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html
**************************************************************************************************
Warning: Using Delphi XE3 syntax!
**************************************************************************************************
The Initial Developer of the Original Code:
OpenCV: open source computer vision library
Homepage: http://ocv.org
Online docs: http://docs.ocv.org
Q&A forum: http://answers.ocv.org
Dev zone: http://code.ocv.org
**************************************************************************************************
Original file:
opencv\modules\highgui\include\opencv2\highgui.hpp
*************************************************************************************************
*)
unit ocv.highgui;
{$I OpenCV.inc}
interface
uses
//{$IFDEF MSWINDOWS}
// Winapi.Windows,
//{$ENDIF MSWINDOWS}
ocv.mat,
ocv.core.types_c,
ocv.highgui_c;
type
// Attention!
// The sequence of function declarations interface must match the
// sequence of function declarations in the project "opencv_classes" (C++)
TccvVideoCapture = class
function open(device: Integer): boolean; overload; virtual; stdcall; abstract;
function openfile(filename: pAnsiChar): boolean; overload; virtual; stdcall; abstract;
function isOpened(): boolean; virtual; stdcall; abstract;
procedure release(); virtual; stdcall; abstract;
function grab(): boolean; virtual; stdcall; abstract;
function retrieve(Var image: TccvMat; flag: Integer): boolean; virtual; stdcall; abstract;
function read(Var image: TccvMat): boolean; virtual; stdcall; abstract;
function setValue(propId: Integer; value: double): boolean; virtual; stdcall; abstract;
function getValue(propId: Integer): double; virtual; stdcall; abstract;
// ---------------------------
class function Create: TccvVideoCapture; overload;
class function Create(device: Integer): TccvVideoCapture; overload;
class function Create(filename: pAnsiChar): TccvVideoCapture; overload;
procedure Free; reintroduce;
end;
// Flags for namedWindow
const
WINDOW_NORMAL = $00000000;
// the user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size
WINDOW_AUTOSIZE = $00000001; // the user cannot resize the window, the size is constrainted by the image displayed
WINDOW_OPENGL = $00001000; // window with opengl support
WINDOW_FULLSCREEN = 1; // change the window to fullscreen
WINDOW_FREERATIO = $00000100; // the image expends as much as it can (no ratio constraint)
WINDOW_KEEPRATIO = $00000000; // the ratio of the image is respected
// CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
procedure namedWindow(const winname: String; const flags: Integer = WINDOW_AUTOSIZE);
// CV_EXPORTS_W void destroyWindow(const String& winname);
procedure destroyWindow(const winname: String);
// CV_EXPORTS_W void destroyAllWindows();
procedure destroyAllWindows();
// CV_EXPORTS_W int startWindowThread();
function startWindowThread(): Integer;
// CV_EXPORTS_W int waitKey(int delay = 0);
function waitKey(const delay: Integer = 0): Integer;
// CV_EXPORTS_W void imshow(const String& winname, InputArray mat);
procedure imshow(const winname: String; const mat: TccvMat);
// CV_EXPORTS_W void resizeWindow(const String& winname, int width, int height);
procedure resizeWindow(const winname: String; const width, height: Integer);
// CV_EXPORTS_W void moveWindow(const String& winname, int x, int y);
procedure moveWindow(const winname: String; const x, y: Integer);
// CV_EXPORTS_W void setWindowProperty(const String& winname, int prop_id, double prop_value);
procedure setWindowProperty(const winname: String; const prop_id: Integer; const prop_value: double);
// CV_EXPORTS_W double getWindowProperty(const String& winname, int prop_id);
function getWindowProperty(const winname: String; const prop_id: Integer): double;
// CV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,
// int* value, int count,
// TrackbarCallback onChange = 0,
// void* userdata = 0);
function createTrackbar(const trackbarname: String; const winname: String; value: PInteger; count: Integer;
onChange: CvTrackbarCallback2 = nil; userdata: Pointer = nil): Integer;
// CV_EXPORTS_W Mat imread( const string& filename, int flags=1 );
function imread(const filename: string; flag: Integer = 1): TccvMat;
// CV_EXPORTS_W boolean imwrite( const string& filename, InputArray img, const vector<int>& params=vector<int>());
// function imwrite(const filename: String; const img: TccvMat): boolean;
type
TIplImageRecordHelper = record helper for TIplImage
function InitFromMat(const mat: TccvMat): TIplImage;
end;
implementation
uses
ocv.lib,
ocv.utils,
ocv.core_c;
function CreateVideoCapture: TccvVideoCapture; stdcall; external opencv_classes_lib name 'CreateVideoCapture'; overload;
function CreateVideoCapture(device: Integer): TccvVideoCapture; stdcall;
external opencv_classes_lib name 'CreateVideoCaptureDevice'; overload;
function CreateVideoCapture(filename: pAnsiChar): TccvVideoCapture; stdcall;
external opencv_classes_lib name 'CreateVideoCaptureFileName'; overload;
procedure ReleaseVideoCapture(ex: TccvVideoCapture); stdcall; external opencv_classes_lib;
// function _imread(const filename: pCvChar; flag: Integer): TccvMat; external opencv_classes_lib name '_imread';
// function _imwrite(const filename: pCvChar; const img: TccvMat): boolean; external opencv_classes_lib name '_imwrite';
function imread(const filename: string; flag: Integer): TccvMat;
begin
// Result := _imread(c_str(filename), flag);
Result := TccvMat.Create(cvLoadImage(pAnsiChar(AnsiString(filename)), flag));
end;
// function imwrite(const filename: String; const img: TccvMat): boolean;
// begin
// Result := _imwrite(c_str(filename), img);
// end;
procedure namedWindow(const winname: String; const flags: Integer = WINDOW_AUTOSIZE);
begin
cvNamedWindow(c_str(winname), flags);
end;
procedure destroyWindow(const winname: String);
begin
cvDestroyWindow(c_str(winname));
end;
procedure destroyAllWindows();
begin
cvDestroyAllWindows();
end;
function startWindowThread(): Integer;
begin
Result := cvStartWindowThread();
end;
function waitKey(const delay: Integer = 0): Integer;
begin
Result := cvWaitKey(delay);
end;
procedure imshow(const winname: String; const mat: TccvMat);
Var
IplImage: TIplImage;
begin
IplImage.InitFromMat(mat);
cvShowImage(c_str(winname), @IplImage);
end;
procedure resizeWindow(const winname: String; const width, height: Integer);
begin
cvResizeWindow(c_str(winname), width, height);
end;
procedure moveWindow(const winname: String; const x, y: Integer);
begin
cvMoveWindow(c_str(winname), x, y);
end;
procedure setWindowProperty(const winname: String; const prop_id: Integer; const prop_value: double);
begin
cvSetWindowProperty(c_str(winname), prop_id, prop_value);
end;
function getWindowProperty(const winname: String; const prop_id: Integer): double;
begin
Result := cvGetWindowProperty(c_str(winname), prop_id);
end;
function createTrackbar(const trackbarname: String; const winname: String; value: PInteger; count: Integer;
onChange: CvTrackbarCallback2 = nil; userdata: Pointer = nil): Integer;
begin
Result := cvCreateTrackbar2(c_str(trackbarname), c_str(winname), value, count, onChange, userdata);
end;
{ TIplImageRecordHelper }
function TIplImageRecordHelper.InitFromMat(const mat: TccvMat): TIplImage;
begin
Assert(mat.dims <= 2);
cvInitImageHeader(@Self, CvSize(mat.cols, mat.rows), cvIplDepth(mat.flags), mat.channels);
cvSetData(@Self, mat.data, mat.step1);
end;
{ TocvVideoCapture }
class function TccvVideoCapture.Create: TccvVideoCapture;
begin
Result := CreateVideoCapture;
end;
class function TccvVideoCapture.Create(device: Integer): TccvVideoCapture;
begin
Result := CreateVideoCapture(device);
end;
class function TccvVideoCapture.Create(filename: pAnsiChar): TccvVideoCapture;
begin
Result := CreateVideoCapture(filename);
end;
procedure TccvVideoCapture.Free;
begin
ReleaseVideoCapture(Self);
end;
end.

View File

@ -61,13 +61,13 @@ uses
(* For font *)
const
CV_FONT_LIGHT = 25; // QFont::Light;
CV_FONT_NORMAL = 50; // QFont::Normal;
CV_FONT_LIGHT = 25; // QFont::Light;
CV_FONT_NORMAL = 50; // QFont::Normal;
CV_FONT_DEMIBOLD = 63; // QFont::DemiBold;
CV_FONT_BOLD = 75; // QFont::Bold;
CV_FONT_BLACK = 87; // QFont::Black;
CV_STYLE_NORMAL = 0; // QFont::StyleNormal;
CV_STYLE_ITALIC = 1; // QFont::StyleItalic;
CV_FONT_BOLD = 75; // QFont::Bold;
CV_FONT_BLACK = 87; // QFont::Black;
CV_STYLE_NORMAL = 0; // QFont::StyleNormal;
CV_STYLE_ITALIC = 1; // QFont::StyleItalic;
CV_STYLE_OBLIQUE = 2; // QFont::StyleOblique;
// for color cvScalar(blue_component, green_component, red\_component[, alpha_component])
@ -121,8 +121,8 @@ Type
const
(* enum {CV_PUSH_BUTTON = 0, CV_CHECKBOX = 1, CV_RADIOBOX = 2}; *)
CV_PUSH_BUTTON = 0;
CV_CHECKBOX = 1;
CV_RADIOBOX = 2;
CV_CHECKBOX = 1;
CV_RADIOBOX = 2;
(*
CVAPI(int) cvCreateButton( const char* button_name CV_DEFAULT(NULL),CvButtonCallback on_change CV_DEFAULT(NULL), void* userdata CV_DEFAULT(NULL) , int button_type CV_DEFAULT(CV_PUSH_BUTTON), int initial_button_state CV_DEFAULT(0));
*)
@ -140,10 +140,10 @@ function cvStartWindowThread: Integer; cdecl;
// --------- YV ---------
// These 3 flags are used by cvSet/GetWindowProperty;
const
CV_WND_PROP_FULLSCREEN = 0; // to change/get window's fullscreen property
CV_WND_PROP_AUTOSIZE = 1; // to change/get window's autosize property
CV_WND_PROP_FULLSCREEN = 0; // to change/get window's fullscreen property
CV_WND_PROP_AUTOSIZE = 1; // to change/get window's autosize property
CV_WND_PROP_ASPECTRATIO = 2; // to change/get window's aspectratio property
CV_WND_PROP_OPENGL = 3; // to change/get window's opengl support
CV_WND_PROP_OPENGL = 3; // to change/get window's opengl support
// These 2 flags are used by cvNamedWindow and cvSet/GetWindowProperty;
CV_WINDOW_NORMAL = $00000000;
// the user can resize the window (no raint) / also use to switch a fullscreen window to a normal size
@ -152,11 +152,11 @@ const
CV_WINDOW_OPENGL = $00001000; // window with opengl support
// Those flags are only for Qt;
CV_GUI_EXPANDED = $00000000; // status bar and tool bar
CV_GUI_NORMAL = $00000010; // old fashious way
CV_GUI_NORMAL = $00000010; // old fashious way
// These 3 flags are used by cvNamedWindow and cvSet/GetWindowProperty;
CV_WINDOW_FULLSCREEN = 1; // change the window to fullscreen
CV_WINDOW_FREERATIO = $00000100; // the image expends as much as it can (no ratio raint)
CV_WINDOW_KEEPRATIO = $00000000; // the ration image is respected.;
CV_WINDOW_FREERATIO = $00000100; // the image expends as much as it can (no ratio raint)
CV_WINDOW_KEEPRATIO = $00000000; // the ration image is respected.;
(* create window *)
function cvNamedWindow(const name: pCvChar; flags: Integer = CV_WINDOW_AUTOSIZE): Integer; cdecl;
@ -198,17 +198,17 @@ type
TCvTrackbarCallback = procedure(pos: Integer); cdecl;
(* create trackbar and display it on top of given window, set callback *)
function cvCreateTrackbar(const trackbar_name: pCvChar; const window_name: pCvChar; value: PInteger; count: Integer;
on_change: TCvTrackbarCallback): Integer; cdecl;
function cvCreateTrackbar(const trackbar_name: pCvChar; const window_name: pCvChar; value: PInteger; count: Integer; on_change: TCvTrackbarCallback)
: Integer; cdecl;
type
CvTrackbarCallback2 = procedure(pos: Integer; userdata: Pointer); cdecl;
TCvTrackbarCallback2 = procedure(pos: Integer; userdata: Pointer); cdecl;
// CVAPI(int) cvCreateTrackbar2( const char* trackbar_name, const char* window_name,
// int* value, int count, CvTrackbarCallback2 on_change,
// void* userdata CV_DEFAULT(0));
function cvCreateTrackbar2(const trackbar_name: pCvChar; const window_name: pCvChar; value: PInteger; count: Integer;
on_change: CvTrackbarCallback2; userdata: Pointer = nil): Integer; cdecl;
function cvCreateTrackbar2(const trackbar_name: pCvChar; const window_name: pCvChar; value: PInteger; count: Integer; on_change: TCvTrackbarCallback2;
userdata: Pointer = nil): Integer; cdecl;
// * retrieve or set trackbar position */
// CVAPI(int) cvGetTrackbarPos( const char* trackbar_name, const char* window_name );
@ -217,22 +217,22 @@ function cvGetTrackbarPos(const trackbar_name: pCvChar; const window_name: pCvCh
procedure cvSetTrackbarPos(const trackbar_name: pCvChar; const window_name: pCvChar; pos: Integer); cdecl;
const
CV_EVENT_MOUSEMOVE = 0;
CV_EVENT_LBUTTONDOWN = 1;
CV_EVENT_RBUTTONDOWN = 2;
CV_EVENT_MBUTTONDOWN = 3;
CV_EVENT_LBUTTONUP = 4;
CV_EVENT_RBUTTONUP = 5;
CV_EVENT_MBUTTONUP = 6;
CV_EVENT_MOUSEMOVE = 0;
CV_EVENT_LBUTTONDOWN = 1;
CV_EVENT_RBUTTONDOWN = 2;
CV_EVENT_MBUTTONDOWN = 3;
CV_EVENT_LBUTTONUP = 4;
CV_EVENT_RBUTTONUP = 5;
CV_EVENT_MBUTTONUP = 6;
CV_EVENT_LBUTTONDBLCLK = 7;
CV_EVENT_RBUTTONDBLCLK = 8;
CV_EVENT_MBUTTONDBLCLK = 9;
CV_EVENT_FLAG_LBUTTON = 1;
CV_EVENT_FLAG_RBUTTON = 2;
CV_EVENT_FLAG_MBUTTON = 4;
CV_EVENT_FLAG_CTRLKEY = 8;
CV_EVENT_FLAG_LBUTTON = 1;
CV_EVENT_FLAG_RBUTTON = 2;
CV_EVENT_FLAG_MBUTTON = 4;
CV_EVENT_FLAG_CTRLKEY = 8;
CV_EVENT_FLAG_SHIFTKEY = 16;
CV_EVENT_FLAG_ALTKEY = 32;
CV_EVENT_FLAG_ALTKEY = 32;
type
CvMouseCallback = procedure(event: Integer; x: Integer; y: Integer; flags: Integer; param: Pointer); cdecl;
@ -274,15 +274,15 @@ function cvLoadImage(const filename: pCvChar; iscolor: Integer = CV_LOAD_IMAGE_U
function cvLoadImageM(const filename: pCvChar; iscolor: Integer = CV_LOAD_IMAGE_COLOR): pCvMat; cdecl;
const
CV_IMWRITE_JPEG_QUALITY = 1;
CV_IMWRITE_PNG_COMPRESSION = 16;
CV_IMWRITE_PNG_STRATEGY = 17;
CV_IMWRITE_PNG_STRATEGY_DEFAULT = 0;
CV_IMWRITE_PNG_STRATEGY_FILTERED = 1;
CV_IMWRITE_JPEG_QUALITY = 1;
CV_IMWRITE_PNG_COMPRESSION = 16;
CV_IMWRITE_PNG_STRATEGY = 17;
CV_IMWRITE_PNG_STRATEGY_DEFAULT = 0;
CV_IMWRITE_PNG_STRATEGY_FILTERED = 1;
CV_IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY = 2;
CV_IMWRITE_PNG_STRATEGY_RLE = 3;
CV_IMWRITE_PNG_STRATEGY_FIXED = 4;
CV_IMWRITE_PXM_BINARY = 32;
CV_IMWRITE_PNG_STRATEGY_RLE = 3;
CV_IMWRITE_PNG_STRATEGY_FIXED = 4;
CV_IMWRITE_PXM_BINARY = 32;
(* save image to file *)
// CVAPI(Integer)cvSaveImage(PCVChar filename, CvArr * image,
@ -318,7 +318,7 @@ const
CV_CVTIMG_FLIP =1,
CV_CVTIMG_SWAP_RB =2
}; *)
CV_CVTIMG_FLIP = 1;
CV_CVTIMG_FLIP = 1;
CV_CVTIMG_SWAP_RB = 2;
(*
utility function: convert one image to another with optional vertical flip
@ -362,38 +362,36 @@ type
function cvCreateFileCapture(const filename: pCvChar): pCvCapture; cdecl;
const
CV_CAP_ANY = 0; // autodetect
CV_CAP_CAM_0 = CV_CAP_ANY;
CV_CAP_CAM_1 = 1;
CV_CAP_CAM_2 = 2;
CV_CAP_CAM_3 = 3;
CV_CAP_CAM_4 = 4;
CV_CAP_CAM_5 = 5;
CV_CAP_MIL = 100; // MIL proprietary drivers
CV_CAP_VFW = 200; // platform native
CV_CAP_V4L = 200;
CV_CAP_V4L2 = 200;
CV_CAP_ANY = 0; // autodetect
CV_CAP_CAM_0 = CV_CAP_ANY;
CV_CAP_CAM_1 = 1;
CV_CAP_CAM_2 = 2;
CV_CAP_CAM_3 = 3;
CV_CAP_CAM_4 = 4;
CV_CAP_CAM_5 = 5;
CV_CAP_MIL = 100; // MIL proprietary drivers
CV_CAP_VFW = 200; // platform native
CV_CAP_V4L = 200;
CV_CAP_V4L2 = 200;
CV_CAP_FIREWARE = 300; // IEEE 1394 drivers
CV_CAP_FIREWIRE = 300;
CV_CAP_IEEE1394 = 300;
CV_CAP_DC1394 = 300;
CV_CAP_CMU1394 = 300;
CV_CAP_STEREO = 400;
// TYZX proprietary drivers
CV_CAP_TYZX = 400;
CV_TYZX_LEFT = 400;
CV_CAP_DC1394 = 300;
CV_CAP_CMU1394 = 300;
CV_CAP_STEREO = 400; // TYZX proprietary drivers
CV_CAP_TYZX = 400;
CV_TYZX_LEFT = 400;
CV_TYZX_RIGHT = 401;
CV_TYZX_COLOR = 402;
CV_TYZX_Z = 403;
CV_CAP_QT = 500;
// QuickTime
CV_CAP_UNICAP = 600; // Unicap drivers
CV_CAP_DSHOW = 700; // DirectShow (via videoInput)
CV_CAP_PVAPI = 800; // PvAPI; Prosilica GigE SDK
CV_CAP_OPENNI = 900; // OpenNI (for Kinect)
CV_CAP_OPENNI_ASUS = 910; // OpenNI (for Asus Xtion)
CV_CAP_ANDROID = 1000; // Android
CV_CAP_XIAPI = 1100; // XIMEA Camera API
CV_TYZX_Z = 403;
CV_CAP_QT = 500; // QuickTime
CV_CAP_UNICAP = 600; // Unicap drivers
CV_CAP_DSHOW = 700; // DirectShow (via videoInput)
CV_CAP_PVAPI = 800; // PvAPI; Prosilica GigE SDK
CV_CAP_OPENNI = 900; // OpenNI (for Kinect)
CV_CAP_OPENNI_ASUS = 910; // OpenNI (for Asus Xtion)
CV_CAP_ANDROID = 1000; // Android
CV_CAP_XIAPI = 1100; // XIMEA Camera API
CV_CAP_AVFOUNDATION = 1200;
// AVFoundation framework for iOS (OS X Lion will have the same API);
@ -435,49 +433,49 @@ const
// turn the feature off (not controlled manually nor automatically)
CV_CAP_PROP_DC1394_MODE_MANUAL = -3;
// set automatically when a value of the feature is set by the user
CV_CAP_PROP_DC1394_MODE_AUTO = -2;
CV_CAP_PROP_DC1394_MODE_AUTO = -2;
CV_CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO = -1;
CV_CAP_PROP_POS_MSEC = 0;
CV_CAP_PROP_POS_FRAMES = 1;
CV_CAP_PROP_POS_AVI_RATIO = 2;
CV_CAP_PROP_FRAME_WIDTH = 3;
CV_CAP_PROP_FRAME_HEIGHT = 4;
CV_CAP_PROP_FPS = 5;
CV_CAP_PROP_FOURCC = 6;
CV_CAP_PROP_FRAME_COUNT = 7;
CV_CAP_PROP_FORMAT = 8;
CV_CAP_PROP_MODE = 9;
CV_CAP_PROP_BRIGHTNESS = 10;
CV_CAP_PROP_CONTRAST = 11;
CV_CAP_PROP_SATURATION = 12;
CV_CAP_PROP_HUE = 13;
CV_CAP_PROP_GAIN = 14;
CV_CAP_PROP_EXPOSURE = 15;
CV_CAP_PROP_CONVERT_RGB = 16;
CV_CAP_PROP_WHITE_BALANCE_BLUE_U = 17;
CV_CAP_PROP_RECTIFICATION = 18;
CV_CAP_PROP_MONOCROME = 19;
CV_CAP_PROP_SHARPNESS = 20;
CV_CAP_PROP_AUTO_EXPOSURE = 21; // exposure control done by camera;
CV_CAP_PROP_POS_MSEC = 0;
CV_CAP_PROP_POS_FRAMES = 1;
CV_CAP_PROP_POS_AVI_RATIO = 2;
CV_CAP_PROP_FRAME_WIDTH = 3;
CV_CAP_PROP_FRAME_HEIGHT = 4;
CV_CAP_PROP_FPS = 5;
CV_CAP_PROP_FOURCC = 6;
CV_CAP_PROP_FRAME_COUNT = 7;
CV_CAP_PROP_FORMAT = 8;
CV_CAP_PROP_MODE = 9;
CV_CAP_PROP_BRIGHTNESS = 10;
CV_CAP_PROP_CONTRAST = 11;
CV_CAP_PROP_SATURATION = 12;
CV_CAP_PROP_HUE = 13;
CV_CAP_PROP_GAIN = 14;
CV_CAP_PROP_EXPOSURE = 15;
CV_CAP_PROP_CONVERT_RGB = 16;
CV_CAP_PROP_WHITE_BALANCE_BLUE_U = 17;
CV_CAP_PROP_RECTIFICATION = 18;
CV_CAP_PROP_MONOCROME = 19;
CV_CAP_PROP_SHARPNESS = 20;
CV_CAP_PROP_AUTO_EXPOSURE = 21; // exposure control done by camera;
// user can adjust refernce level;
// using this feature;
CV_CAP_PROP_GAMMA = 22;
CV_CAP_PROP_TEMPERATURE = 23;
CV_CAP_PROP_TRIGGER = 24;
CV_CAP_PROP_TRIGGER_DELAY = 25;
CV_CAP_PROP_WHITE_BALANCE_RED_V = 26;
CV_CAP_PROP_ZOOM = 27;
CV_CAP_PROP_FOCUS = 28;
CV_CAP_PROP_GUID = 29;
CV_CAP_PROP_ISO_SPEED = 30;
CV_CAP_PROP_MAX_DC1394 = 31;
CV_CAP_PROP_BACKLIGHT = 32;
CV_CAP_PROP_PAN = 33;
CV_CAP_PROP_TILT = 34;
CV_CAP_PROP_ROLL = 35;
CV_CAP_PROP_IRIS = 36;
CV_CAP_PROP_SETTINGS = 37;
CV_CAP_PROP_AUTOGRAB = 1024; // property for highgui class CvCapture_Android only
CV_CAP_PROP_GAMMA = 22;
CV_CAP_PROP_TEMPERATURE = 23;
CV_CAP_PROP_TRIGGER = 24;
CV_CAP_PROP_TRIGGER_DELAY = 25;
CV_CAP_PROP_WHITE_BALANCE_RED_V = 26;
CV_CAP_PROP_ZOOM = 27;
CV_CAP_PROP_FOCUS = 28;
CV_CAP_PROP_GUID = 29;
CV_CAP_PROP_ISO_SPEED = 30;
CV_CAP_PROP_MAX_DC1394 = 31;
CV_CAP_PROP_BACKLIGHT = 32;
CV_CAP_PROP_PAN = 33;
CV_CAP_PROP_TILT = 34;
CV_CAP_PROP_ROLL = 35;
CV_CAP_PROP_IRIS = 36;
CV_CAP_PROP_SETTINGS = 37;
CV_CAP_PROP_AUTOGRAB = 1024; // property for highgui class CvCapture_Android only
CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING = 1025; // readonly; tricky property; returns cpnst char* indeed
CV_CAP_PROP_PREVIEW_FORMAT = 1026; // readonly; tricky property; returns cpnst char* indeed
// OpenNI map generators;
@ -485,25 +483,25 @@ const
CV_CAP_OPENNI_IMAGE_GENERATOR = 1 shl 30;
CV_CAP_OPENNI_GENERATORS_MASK = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_OPENNI_IMAGE_GENERATOR;
// Properties of cameras available through OpenNI interfaces;
CV_CAP_PROP_OPENNI_OUTPUT_MODE = 100;
CV_CAP_PROP_OPENNI_OUTPUT_MODE = 100;
CV_CAP_PROP_OPENNI_FRAME_MAX_DEPTH = 101; // in mm
CV_CAP_PROP_OPENNI_BASELINE = 102; // in mm
CV_CAP_PROP_OPENNI_FOCAL_LENGTH = 103; // in pixels
CV_CAP_PROP_OPENNI_REGISTRATION = 104; // flag
CV_CAP_PROP_OPENNI_BASELINE = 102; // in mm
CV_CAP_PROP_OPENNI_FOCAL_LENGTH = 103; // in pixels
CV_CAP_PROP_OPENNI_REGISTRATION = 104; // flag
CV_CAP_PROP_OPENNI_REGISTRATION_ON = CV_CAP_PROP_OPENNI_REGISTRATION;
// flag that synchronizes the remapping depth map to image map
// by changing depth generator's view point (if the flag is "on") or;
// sets this view point to its normal one (if the flag is "off").;
CV_CAP_PROP_OPENNI_APPROX_FRAME_SYNC = 105;
CV_CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106;
CV_CAP_PROP_OPENNI_CIRCLE_BUFFER = 107;
CV_CAP_PROP_OPENNI_MAX_TIME_DURATION = 108;
CV_CAP_PROP_OPENNI_GENERATOR_PRESENT = 109;
CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT;
CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_OUTPUT_MODE;
CV_CAP_OPENNI_DEPTH_GENERATOR_BASELINE = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_BASELINE;
CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_FOCAL_LENGTH;
CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_REGISTRATION;
CV_CAP_PROP_OPENNI_APPROX_FRAME_SYNC = 105;
CV_CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106;
CV_CAP_PROP_OPENNI_CIRCLE_BUFFER = 107;
CV_CAP_PROP_OPENNI_MAX_TIME_DURATION = 108;
CV_CAP_PROP_OPENNI_GENERATOR_PRESENT = 109;
CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT;
CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_OUTPUT_MODE;
CV_CAP_OPENNI_DEPTH_GENERATOR_BASELINE = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_BASELINE;
CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_FOCAL_LENGTH;
CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_REGISTRATION;
CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON = CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION;
// Properties of cameras available through GStreamer interface;
CV_CAP_GSTREAMER_QUEUE_LENGTH = 200; // default is 1
@ -511,24 +509,24 @@ const
// ip for anable multicast master mode. 0 for disable multicast
// Properties of cameras available through XIMEA SDK interface;
CV_CAP_PROP_XI_DOWNSAMPLING = 400; // Change image resolution by binning or skipping.
CV_CAP_PROP_XI_DATA_FORMAT = 401; // Output data format.
CV_CAP_PROP_XI_OFFSET_X = 402;
CV_CAP_PROP_XI_DATA_FORMAT = 401; // Output data format.
CV_CAP_PROP_XI_OFFSET_X = 402;
// Horizontal offset from the origin to the area of interest (in pixels).
CV_CAP_PROP_XI_OFFSET_Y = 403;
// Vertical offset from the origin to the area of interest (in pixels).
CV_CAP_PROP_XI_TRG_SOURCE = 404; // Defines source of trigger.
CV_CAP_PROP_XI_TRG_SOURCE = 404; // Defines source of trigger.
CV_CAP_PROP_XI_TRG_SOFTWARE = 405;
// Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE.
CV_CAP_PROP_XI_GPI_SELECTOR = 406; // Selects general purpose input
CV_CAP_PROP_XI_GPI_MODE = 407; // Set general purpose input mode
CV_CAP_PROP_XI_GPI_LEVEL = 408; // Get general purpose level
CV_CAP_PROP_XI_GPI_MODE = 407; // Set general purpose input mode
CV_CAP_PROP_XI_GPI_LEVEL = 408; // Get general purpose level
CV_CAP_PROP_XI_GPO_SELECTOR = 409; // Selects general purpose output
CV_CAP_PROP_XI_GPO_MODE = 410; // Set general purpose output mode
CV_CAP_PROP_XI_GPO_MODE = 410; // Set general purpose output mode
CV_CAP_PROP_XI_LED_SELECTOR = 411; // Selects camera signalling LED
CV_CAP_PROP_XI_LED_MODE = 412; // Define camera signalling LED functionality
CV_CAP_PROP_XI_MANUAL_WB = 413; // Calculates White Balance(must be called during acquisition)
CV_CAP_PROP_XI_AUTO_WB = 414; // Automatic white balance
CV_CAP_PROP_XI_AEAG = 415; // Automatic exposure/gain
CV_CAP_PROP_XI_LED_MODE = 412; // Define camera signalling LED functionality
CV_CAP_PROP_XI_MANUAL_WB = 413; // Calculates White Balance(must be called during acquisition)
CV_CAP_PROP_XI_AUTO_WB = 414; // Automatic white balance
CV_CAP_PROP_XI_AEAG = 415; // Automatic exposure/gain
CV_CAP_PROP_XI_EXP_PRIORITY = 416; // Exposure priority (0.5 - exposure 50%; gain 50%).
CV_CAP_PROP_XI_AE_MAX_LIMIT = 417;
// Maximum limit of exposure in AEAG procedure CV_CAP_PROP_XI_AG_MAX_LIMIT = 418; // Maximum limit of gain in AEAG procedure
@ -536,67 +534,67 @@ const
// Average intensity of output signal AEAG should achieve(in %)
CV_CAP_PROP_XI_TIMEOUT = 420; // Image capture timeout in milliseconds
// Properties for Android cameras;
CV_CAP_PROP_ANDROID_FLASH_MODE = 8001;
CV_CAP_PROP_ANDROID_FOCUS_MODE = 8002;
CV_CAP_PROP_ANDROID_WHITE_BALANCE = 8003;
CV_CAP_PROP_ANDROID_ANTIBANDING = 8004;
CV_CAP_PROP_ANDROID_FOCAL_LENGTH = 8005;
CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_NEAR = 8006;
CV_CAP_PROP_ANDROID_FLASH_MODE = 8001;
CV_CAP_PROP_ANDROID_FOCUS_MODE = 8002;
CV_CAP_PROP_ANDROID_WHITE_BALANCE = 8003;
CV_CAP_PROP_ANDROID_ANTIBANDING = 8004;
CV_CAP_PROP_ANDROID_FOCAL_LENGTH = 8005;
CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_NEAR = 8006;
CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_OPTIMAL = 8007;
CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_FAR = 8008;
CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_FAR = 8008;
// Properties of cameras available through AVFOUNDATION interface;
CV_CAP_PROP_IOS_DEVICE_FOCUS = 9001;
CV_CAP_PROP_IOS_DEVICE_EXPOSURE = 9002;
CV_CAP_PROP_IOS_DEVICE_FLASH = 9003;
CV_CAP_PROP_IOS_DEVICE_FOCUS = 9001;
CV_CAP_PROP_IOS_DEVICE_EXPOSURE = 9002;
CV_CAP_PROP_IOS_DEVICE_FLASH = 9003;
CV_CAP_PROP_IOS_DEVICE_WHITEBALANCE = 9004;
CV_CAP_PROP_IOS_DEVICE_TORCH = 9005;
CV_CAP_PROP_IOS_DEVICE_TORCH = 9005;
// Data given from depth generator.;
CV_CAP_OPENNI_DEPTH_MAP = 0; // Depth values in mm (CV_16UC1)
CV_CAP_OPENNI_POINT_CLOUD_MAP = 1; // XYZ in meters (CV_32FC3)
CV_CAP_OPENNI_DISPARITY_MAP = 2; // Disparity in pixels (CV_8UC1)
CV_CAP_OPENNI_DEPTH_MAP = 0; // Depth values in mm (CV_16UC1)
CV_CAP_OPENNI_POINT_CLOUD_MAP = 1; // XYZ in meters (CV_32FC3)
CV_CAP_OPENNI_DISPARITY_MAP = 2; // Disparity in pixels (CV_8UC1)
CV_CAP_OPENNI_DISPARITY_MAP_32F = 3; // Disparity in pixels (CV_32FC1)
CV_CAP_OPENNI_VALID_DEPTH_MASK = 4; // CV_8UC1
CV_CAP_OPENNI_VALID_DEPTH_MASK = 4; // CV_8UC1
// Data given from RGB image generator.;
CV_CAP_OPENNI_BGR_IMAGE = 5;
CV_CAP_OPENNI_BGR_IMAGE = 5;
CV_CAP_OPENNI_GRAY_IMAGE = 6;
// Supported output modes of OpenNI image generator
CV_CAP_OPENNI_VGA_30HZ = 0;
CV_CAP_OPENNI_VGA_30HZ = 0;
CV_CAP_OPENNI_SXGA_15HZ = 1;
CV_CAP_OPENNI_SXGA_30HZ = 2;
// supported by Android camera output formats
CV_CAP_ANDROID_COLOR_FRAME_BGR = 0; // BGR
CV_CAP_ANDROID_COLOR_FRAME = CV_CAP_ANDROID_COLOR_FRAME_BGR;
CV_CAP_ANDROID_GREY_FRAME = 1; // Y
CV_CAP_ANDROID_COLOR_FRAME_RGB = 2;
CV_CAP_ANDROID_COLOR_FRAME_BGR = 0; // BGR
CV_CAP_ANDROID_COLOR_FRAME = CV_CAP_ANDROID_COLOR_FRAME_BGR;
CV_CAP_ANDROID_GREY_FRAME = 1; // Y
CV_CAP_ANDROID_COLOR_FRAME_RGB = 2;
CV_CAP_ANDROID_COLOR_FRAME_BGRA = 3;
CV_CAP_ANDROID_COLOR_FRAME_RGBA = 4;
// supported Android camera flash modes
CV_CAP_ANDROID_FLASH_MODE_AUTO = 0;
CV_CAP_ANDROID_FLASH_MODE_OFF = 0;
CV_CAP_ANDROID_FLASH_MODE_ON = 1;
CV_CAP_ANDROID_FLASH_MODE_AUTO = 0;
CV_CAP_ANDROID_FLASH_MODE_OFF = 0;
CV_CAP_ANDROID_FLASH_MODE_ON = 1;
CV_CAP_ANDROID_FLASH_MODE_RED_EYE = 2;
CV_CAP_ANDROID_FLASH_MODE_TORCH = 3;
CV_CAP_ANDROID_FLASH_MODE_TORCH = 3;
// supported Android camera focus modes
CV_CAP_ANDROID_FOCUS_MODE_AUTO = 0;
CV_CAP_ANDROID_FOCUS_MODE_AUTO = 0;
CV_CAP_ANDROID_FOCUS_MODE_CONTINUOUS_VIDEO = 0;
CV_CAP_ANDROID_FOCUS_MODE_EDOF = 1;
CV_CAP_ANDROID_FOCUS_MODE_FIXED = 2;
CV_CAP_ANDROID_FOCUS_MODE_INFINITY = 3;
CV_CAP_ANDROID_FOCUS_MODE_MACRO = 4;
CV_CAP_ANDROID_FOCUS_MODE_EDOF = 1;
CV_CAP_ANDROID_FOCUS_MODE_FIXED = 2;
CV_CAP_ANDROID_FOCUS_MODE_INFINITY = 3;
CV_CAP_ANDROID_FOCUS_MODE_MACRO = 4;
// supported Android camera white balance modes
CV_CAP_ANDROID_WHITE_BALANCE_AUTO = 0;
CV_CAP_ANDROID_WHITE_BALANCE_CLOUDY_DAYLIGHT = 0;
CV_CAP_ANDROID_WHITE_BALANCE_DAYLIGHT = 1;
CV_CAP_ANDROID_WHITE_BALANCE_FLUORESCENT = 2;
CV_CAP_ANDROID_WHITE_BALANCE_INCANDESCENT = 3;
CV_CAP_ANDROID_WHITE_BALANCE_SHADE = 4;
CV_CAP_ANDROID_WHITE_BALANCE_TWILIGHT = 5;
CV_CAP_ANDROID_WHITE_BALANCE_AUTO = 0;
CV_CAP_ANDROID_WHITE_BALANCE_CLOUDY_DAYLIGHT = 0;
CV_CAP_ANDROID_WHITE_BALANCE_DAYLIGHT = 1;
CV_CAP_ANDROID_WHITE_BALANCE_FLUORESCENT = 2;
CV_CAP_ANDROID_WHITE_BALANCE_INCANDESCENT = 3;
CV_CAP_ANDROID_WHITE_BALANCE_SHADE = 4;
CV_CAP_ANDROID_WHITE_BALANCE_TWILIGHT = 5;
CV_CAP_ANDROID_WHITE_BALANCE_WARM_FLUORESCENT = 6;
// supported Android camera antibanding modes
CV_CAP_ANDROID_ANTIBANDING_50HZ = 0;
CV_CAP_ANDROID_ANTIBANDING_60HZ = 0;
CV_CAP_ANDROID_ANTIBANDING_AUTO = 1;
CV_CAP_ANDROID_ANTIBANDING_OFF = 2;
CV_CAP_ANDROID_ANTIBANDING_OFF = 2;
(* retrieve or set capture properties *)
function cvGetCaptureProperty(capture: pCvCapture; property_id: Integer): Double; cdecl;
@ -781,3 +779,4 @@ procedure cvSetPreprocessFuncWin32_; external highgui_lib;
procedure cvSetPostprocessFuncWin32_; external highgui_lib;
end.

View File

@ -1,316 +0,0 @@
unit ocv.imgproc;
interface
uses
ocv.core,
ocv.core.types_c,
ocv.mat;
const
BORDER_REPLICATE = IPL_BORDER_REPLICATE;
BORDER_CONSTANT = IPL_BORDER_CONSTANT;
BORDER_REFLECT = IPL_BORDER_REFLECT;
BORDER_WRAP = IPL_BORDER_WRAP;
BORDER_REFLECT_101 = IPL_BORDER_REFLECT_101;
BORDER_REFLECT101 = BORDER_REFLECT_101;
BORDER_TRANSPARENT = IPL_BORDER_TRANSPARENT;
BORDER_DEFAULT = BORDER_REFLECT_101;
BORDER_ISOLATED = 16;
COLOR_BGR2BGRA = 0;
COLOR_RGB2RGBA = COLOR_BGR2BGRA;
COLOR_BGRA2BGR = 1;
COLOR_RGBA2RGB = COLOR_BGRA2BGR;
COLOR_BGR2RGBA = 2;
COLOR_RGB2BGRA = COLOR_BGR2RGBA;
COLOR_RGBA2BGR = 3;
COLOR_BGRA2RGB = COLOR_RGBA2BGR;
COLOR_BGR2RGB = 4;
COLOR_RGB2BGR = COLOR_BGR2RGB;
COLOR_BGRA2RGBA = 5;
COLOR_RGBA2BGRA = COLOR_BGRA2RGBA;
COLOR_BGR2GRAY = 6;
COLOR_RGB2GRAY = 7;
COLOR_GRAY2BGR = 8;
COLOR_GRAY2RGB = COLOR_GRAY2BGR;
COLOR_GRAY2BGRA = 9;
COLOR_GRAY2RGBA = COLOR_GRAY2BGRA;
COLOR_BGRA2GRAY = 10;
COLOR_RGBA2GRAY = 11;
COLOR_BGR2BGR565 = 12;
COLOR_RGB2BGR565 = 13;
COLOR_BGR5652BGR = 14;
COLOR_BGR5652RGB = 15;
COLOR_BGRA2BGR565 = 16;
COLOR_RGBA2BGR565 = 17;
COLOR_BGR5652BGRA = 18;
COLOR_BGR5652RGBA = 19;
COLOR_GRAY2BGR565 = 20;
COLOR_BGR5652GRAY = 21;
COLOR_BGR2BGR555 = 22;
COLOR_RGB2BGR555 = 23;
COLOR_BGR5552BGR = 24;
COLOR_BGR5552RGB = 25;
COLOR_BGRA2BGR555 = 26;
COLOR_RGBA2BGR555 = 27;
COLOR_BGR5552BGRA = 28;
COLOR_BGR5552RGBA = 29;
COLOR_GRAY2BGR555 = 30;
COLOR_BGR5552GRAY = 31;
COLOR_BGR2XYZ = 32;
COLOR_RGB2XYZ = 33;
COLOR_XYZ2BGR = 34;
COLOR_XYZ2RGB = 35;
COLOR_BGR2YCrCb = 36;
COLOR_RGB2YCrCb = 37;
COLOR_YCrCb2BGR = 38;
COLOR_YCrCb2RGB = 39;
COLOR_BGR2HSV = 40;
COLOR_RGB2HSV = 41;
COLOR_BGR2Lab = 44;
COLOR_RGB2Lab = 45;
COLOR_BayerBG2BGR = 46;
COLOR_BayerGB2BGR = 47;
COLOR_BayerRG2BGR = 48;
COLOR_BayerGR2BGR = 49;
COLOR_BayerBG2RGB = COLOR_BayerRG2BGR;
COLOR_BayerGB2RGB = COLOR_BayerGR2BGR;
COLOR_BayerRG2RGB = COLOR_BayerBG2BGR;
COLOR_BayerGR2RGB = COLOR_BayerGB2BGR;
COLOR_BGR2Luv = 50;
COLOR_RGB2Luv = 51;
COLOR_BGR2HLS = 52;
COLOR_RGB2HLS = 53;
COLOR_HSV2BGR = 54;
COLOR_HSV2RGB = 55;
COLOR_Lab2BGR = 56;
COLOR_Lab2RGB = 57;
COLOR_Luv2BGR = 58;
COLOR_Luv2RGB = 59;
COLOR_HLS2BGR = 60;
COLOR_HLS2RGB = 61;
COLOR_BayerBG2BGR_VNG = 62;
COLOR_BayerGB2BGR_VNG = 63;
COLOR_BayerRG2BGR_VNG = 64;
COLOR_BayerGR2BGR_VNG = 65;
COLOR_BayerBG2RGB_VNG = COLOR_BayerRG2BGR_VNG;
COLOR_BayerGB2RGB_VNG = COLOR_BayerGR2BGR_VNG;
COLOR_BayerRG2RGB_VNG = COLOR_BayerBG2BGR_VNG;
COLOR_BayerGR2RGB_VNG = COLOR_BayerGB2BGR_VNG;
COLOR_BGR2HSV_FULL = 66;
COLOR_RGB2HSV_FULL = 67;
COLOR_BGR2HLS_FULL = 68;
COLOR_RGB2HLS_FULL = 69;
COLOR_HSV2BGR_FULL = 70;
COLOR_HSV2RGB_FULL = 71;
COLOR_HLS2BGR_FULL = 72;
COLOR_HLS2RGB_FULL = 73;
COLOR_LBGR2Lab = 74;
COLOR_LRGB2Lab = 75;
COLOR_LBGR2Luv = 76;
COLOR_LRGB2Luv = 77;
COLOR_Lab2LBGR = 78;
COLOR_Lab2LRGB = 79;
COLOR_Luv2LBGR = 80;
COLOR_Luv2LRGB = 81;
COLOR_BGR2YUV = 82;
COLOR_RGB2YUV = 83;
COLOR_YUV2BGR = 84;
COLOR_YUV2RGB = 85;
COLOR_BayerBG2GRAY = 86;
COLOR_BayerGB2GRAY = 87;
COLOR_BayerRG2GRAY = 88;
COLOR_BayerGR2GRAY = 89;
// YUV 4:2:0 formats family
COLOR_YUV2RGB_NV12 = 90;
COLOR_YUV2BGR_NV12 = 91;
COLOR_YUV2RGB_NV21 = 92;
COLOR_YUV2BGR_NV21 = 93;
COLOR_YUV420sp2RGB = COLOR_YUV2RGB_NV21;
COLOR_YUV420sp2BGR = COLOR_YUV2BGR_NV21;
COLOR_YUV2RGBA_NV12 = 94;
COLOR_YUV2BGRA_NV12 = 95;
COLOR_YUV2RGBA_NV21 = 96;
COLOR_YUV2BGRA_NV21 = 97;
COLOR_YUV420sp2RGBA = COLOR_YUV2RGBA_NV21;
COLOR_YUV420sp2BGRA = COLOR_YUV2BGRA_NV21;
COLOR_YUV2RGB_YV12 = 98;
COLOR_YUV2BGR_YV12 = 99;
COLOR_YUV2RGB_IYUV = 100;
COLOR_YUV2BGR_IYUV = 101;
COLOR_YUV2RGB_I420 = COLOR_YUV2RGB_IYUV;
COLOR_YUV2BGR_I420 = COLOR_YUV2BGR_IYUV;
COLOR_YUV420p2RGB = COLOR_YUV2RGB_YV12;
COLOR_YUV420p2BGR = COLOR_YUV2BGR_YV12;
COLOR_YUV2RGBA_YV12 = 102;
COLOR_YUV2BGRA_YV12 = 103;
COLOR_YUV2RGBA_IYUV = 104;
COLOR_YUV2BGRA_IYUV = 105;
COLOR_YUV2RGBA_I420 = COLOR_YUV2RGBA_IYUV;
COLOR_YUV2BGRA_I420 = COLOR_YUV2BGRA_IYUV;
COLOR_YUV420p2RGBA = COLOR_YUV2RGBA_YV12;
COLOR_YUV420p2BGRA = COLOR_YUV2BGRA_YV12;
COLOR_YUV2GRAY_420 = 106;
COLOR_YUV2GRAY_NV21 = COLOR_YUV2GRAY_420;
COLOR_YUV2GRAY_NV12 = COLOR_YUV2GRAY_420;
COLOR_YUV2GRAY_YV12 = COLOR_YUV2GRAY_420;
COLOR_YUV2GRAY_IYUV = COLOR_YUV2GRAY_420;
COLOR_YUV2GRAY_I420 = COLOR_YUV2GRAY_420;
COLOR_YUV420sp2GRAY = COLOR_YUV2GRAY_420;
COLOR_YUV420p2GRAY = COLOR_YUV2GRAY_420;
// YUV 4:2:2 formats family
COLOR_YUV2RGB_UYVY = 107;
COLOR_YUV2BGR_UYVY = 108;
// COLOR_YUV2RGB_VYUY = 109;
// COLOR_YUV2BGR_VYUY = 110;
COLOR_YUV2RGB_Y422 = COLOR_YUV2RGB_UYVY;
COLOR_YUV2BGR_Y422 = COLOR_YUV2BGR_UYVY;
COLOR_YUV2RGB_UYNV = COLOR_YUV2RGB_UYVY;
COLOR_YUV2BGR_UYNV = COLOR_YUV2BGR_UYVY;
COLOR_YUV2RGBA_UYVY = 111;
COLOR_YUV2BGRA_UYVY = 112;
// COLOR_YUV2RGBA_VYUY = 113;
// COLOR_YUV2BGRA_VYUY = 114;
COLOR_YUV2RGBA_Y422 = COLOR_YUV2RGBA_UYVY;
COLOR_YUV2BGRA_Y422 = COLOR_YUV2BGRA_UYVY;
COLOR_YUV2RGBA_UYNV = COLOR_YUV2RGBA_UYVY;
COLOR_YUV2BGRA_UYNV = COLOR_YUV2BGRA_UYVY;
COLOR_YUV2RGB_YUY2 = 115;
COLOR_YUV2BGR_YUY2 = 116;
COLOR_YUV2RGB_YVYU = 117;
COLOR_YUV2BGR_YVYU = 118;
COLOR_YUV2RGB_YUYV = COLOR_YUV2RGB_YUY2;
COLOR_YUV2BGR_YUYV = COLOR_YUV2BGR_YUY2;
COLOR_YUV2RGB_YUNV = COLOR_YUV2RGB_YUY2;
COLOR_YUV2BGR_YUNV = COLOR_YUV2BGR_YUY2;
COLOR_YUV2RGBA_YUY2 = 119;
COLOR_YUV2BGRA_YUY2 = 120;
COLOR_YUV2RGBA_YVYU = 121;
COLOR_YUV2BGRA_YVYU = 122;
COLOR_YUV2RGBA_YUYV = COLOR_YUV2RGBA_YUY2;
COLOR_YUV2BGRA_YUYV = COLOR_YUV2BGRA_YUY2;
COLOR_YUV2RGBA_YUNV = COLOR_YUV2RGBA_YUY2;
COLOR_YUV2BGRA_YUNV = COLOR_YUV2BGRA_YUY2;
COLOR_YUV2GRAY_UYVY = 123;
COLOR_YUV2GRAY_YUY2 = 124;
// COLOR_YUV2GRAY_VYUY = COLOR_YUV2GRAY_UYVY;
COLOR_YUV2GRAY_Y422 = COLOR_YUV2GRAY_UYVY;
COLOR_YUV2GRAY_UYNV = COLOR_YUV2GRAY_UYVY;
COLOR_YUV2GRAY_YVYU = COLOR_YUV2GRAY_YUY2;
COLOR_YUV2GRAY_YUYV = COLOR_YUV2GRAY_YUY2;
COLOR_YUV2GRAY_YUNV = COLOR_YUV2GRAY_YUY2;
// alpha premultiplication
COLOR_RGBA2mRGBA = 125;
COLOR_mRGBA2RGBA = 126;
COLOR_RGB2YUV_I420 = 127;
COLOR_BGR2YUV_I420 = 128;
COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420;
COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420;
COLOR_RGBA2YUV_I420 = 129;
COLOR_BGRA2YUV_I420 = 130;
COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420;
COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420;
COLOR_RGB2YUV_YV12 = 131;
COLOR_BGR2YUV_YV12 = 132;
COLOR_RGBA2YUV_YV12 = 133;
COLOR_BGRA2YUV_YV12 = 134;
COLOR_COLORCVT_MAX = 135;
// ! converts image from one color space to another
// CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn=0 );
procedure cvtColor(src: TccvMat; Var dst: TccvMat; code: Integer; dstCn: Integer = 0); stdcall;
Const
MORPH_RECT = 0;
MORPH_CROSS = 1;
MORPH_ELLIPSE = 2;
// ! returns structuring element of the specified shape and size
// CV_EXPORTS_W Mat getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1));
function getStructuringElement(shape: Integer; ksize: TccvSize; anchor: TccvPoint { Point(-1,-1) } ): TccvMat;
stdcall; overload;
function getStructuringElement(shape: Integer; ksize: TccvSize): TccvMat; overload;
// ! returns "magic" border value for erosion and dilation. It is automatically transformed to Scalar::all(-DBL_MAX) for dilation.
// static inline Scalar morphologyDefaultBorderValue() { return Scalar::all(DBL_MAX); }
function morphologyDefaultBorderValue: TccvScalar;
implementation
uses ocv.lib;
Var
_morphologyDefaultBorderValue: TccvScalar = nil;
// static inline Scalar morphologyDefaultBorderValue() { return Scalar::all(DBL_MAX); }
function morphologyDefaultBorderValue: TccvScalar;
begin
if not Assigned(_morphologyDefaultBorderValue) then
_morphologyDefaultBorderValue := TccvScalar.Create(0, 0);
Result := _morphologyDefaultBorderValue;
end;
procedure cvtColor; external opencv_classes_lib;
function getStructuringElement(shape: Integer; ksize: TccvSize; anchor: TccvPoint { Point(-1,-1) } ): TccvMat; stdcall;
external opencv_classes_lib;
function getStructuringElement(shape: Integer; ksize: TccvSize): TccvMat;
Var
anchor: TccvPoint;
begin
anchor := TccvPoint.Create(-1, -1);
Result := getStructuringElement(shape, ksize, anchor);
anchor.Free;
end;
initialization
finalization
if Assigned(_morphologyDefaultBorderValue) then
_morphologyDefaultBorderValue.Free;
end.

View File

@ -35,29 +35,29 @@
*)
unit ocv.lib;
{$I OpenCV.inc}
unit ocv.lib;
interface
const
{$IFDEF DelphiOCVVersion_29}
CV_VERSION_EPOCH = '2';
CV_VERSION_MAJOR = '4';
CV_VERSION_MINOR = '11';
CV_VERSION_EPOCH = '2';
CV_VERSION_MAJOR = '4';
CV_VERSION_MINOR = '11';
CV_VERSION_REVISION = '0';
{$ELSEIF DEFINED(DelphiOCVVersion_30)}
CV_VERSION_EPOCH = '3';
CV_VERSION_MAJOR = '0';
CV_VERSION_MINOR = '0';
CV_VERSION_EPOCH = '3';
CV_VERSION_MAJOR = '0';
CV_VERSION_MINOR = '0';
CV_VERSION_REVISION = '0';
{$ENDIF}
CV_VERSION = CV_VERSION_EPOCH + '.' + CV_VERSION_MAJOR + '.' + CV_VERSION_MINOR + '.' + CV_VERSION_REVISION;
// * old style version constants*/
CV_MAJOR_VERSION = CV_VERSION_EPOCH;
CV_MINOR_VERSION = CV_VERSION_MAJOR;
CV_MAJOR_VERSION = CV_VERSION_EPOCH;
CV_MINOR_VERSION = CV_VERSION_MAJOR;
CV_SUBMINOR_VERSION = CV_VERSION_MINOR;
CV_VERSION_DLL = CV_VERSION_EPOCH + CV_VERSION_MAJOR + CV_VERSION_MINOR;
@ -254,8 +254,87 @@ opencv_photo_lib = {$IFDEF MSWINDOWS}
'libopencv_photo.so';
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$IFDEF SAFELOADLIB}
function ocvLoadLibrary(const Name: String): Cardinal;
function ocvFreeLibrary(const LibHandle: Cardinal; const Remove: Boolean = true): Boolean;
function ocvGetProcAddress(const ProcName: String; const LibHandle: Cardinal = 0; const Check: Boolean = true): Pointer;
{$ENDIF}
implementation
{$IFDEF SAFELOADLIB}
Uses
Winapi.Windows,
System.Generics.Collections,
ocv.utils;
Type
TOCVLibHandles = TDictionary<String, Cardinal>;
Var
OCVLibHandles: TOCVLibHandles;
function ocvLoadLibrary(const Name: String): Cardinal;
begin
if not OCVLibHandles.TryGetValue(Name, Result) then
begin
Result := LoadLibrary(LPCWSTR(Name));
OCVLibHandles.Add(Name, Result);
end;
end;
function ocvFreeLibrary(const LibHandle: Cardinal; const Remove: Boolean): Boolean;
Var
P: TPair<String, Cardinal>;
begin
if LibHandle = 0 then
Result := False
else
begin
Result := FreeLibrary(LibHandle);
if Remove and OCVLibHandles.ContainsValue(LibHandle) then
for P in OCVLibHandles do
if P.Value = LibHandle then
begin
OCVLibHandles.Remove(P.Key);
Break;
end;
end;
end;
function ocvGetProcAddress(const ProcName: String; const LibHandle: Cardinal; const Check: Boolean): Pointer;
begin
if LibHandle = 0 then
Result := nil
else
begin
Result := GetProcAddress(LibHandle, LPCSTR(ProcName));
end;
Assert(Assigned(Result), 'Can not load proc ' + ProcName);
end;
procedure ocvFreeLibraries;
Var
P: TPair<String, Cardinal>;
begin
for P in OCVLibHandles do
ocvFreeLibrary(P.Value, False);
OCVLibHandles.Clear;
end;
initialization
OCVLibHandles := TOCVLibHandles.Create;
finalization
ocvFreeLibraries;
OCVLibHandles.Free;
{$ENDIF}
end.

View File

@ -1,106 +0,0 @@
(*
*****************************************************************
Delphi-OpenCV Demo
Copyright (C) 2013 Project Delphi-OpenCV
****************************************************************
Contributor:
Laentir Valetov
email:laex@bk.ru
Mikhail Grigorev
email:sleuthound@gmail.com
****************************************************************
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.
*******************************************************************
*)
unit ocv.mat;
{$I OpenCV.inc}
interface
uses
ocv.core.types_c,
ocv.core_c,
ocv.highgui_c;
Type
TccvMat = class
public
// similar to CV_ELEM_SIZE(cvmat->type)
function elemSize(): size_t; virtual; stdcall; abstract;
// ! returns the size of element channel in bytes.
function elemSize1(): size_t; virtual; stdcall; abstract;
// ! returns element type, similar to CV_MAT_TYPE(cvmat->type)
function _type: Integer; virtual; stdcall; abstract;
// ! returns element type, similar to CV_MAT_DEPTH(cvmat->type)
function depth: Integer; virtual; stdcall; abstract;
// ! returns element type, similar to CV_MAT_CN(cvmat->type)
function channels: Integer; virtual; stdcall; abstract;
// ! returns step/elemSize1()
function step1(i: Integer = 0): size_t; virtual; stdcall; abstract;
// ! returns true if matrix data is NULL
function empty: LongBool; virtual; stdcall; abstract;
// ! returns the total number of matrix elements
function total: size_t; virtual; stdcall; abstract;
// * ! includes several bit - fields: - the magic signature - continuity flag - depth - number of channels * /
function flags: Integer; virtual; stdcall; abstract;
// ! the matrix dimensionality, >= 2
function dims: Integer; virtual; stdcall; abstract;
// ! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
function rows: Integer; virtual; stdcall; abstract;
function cols: Integer; virtual; stdcall; abstract;
// ! pointer to the data
function data: pByte; virtual; stdcall; abstract;
procedure copyTo(Var m: TccvMat); virtual; stdcall; abstract;
// ------------------------------------------------
class function Create: TccvMat; overload;
class function Create(rows, cols, _type: Integer): TccvMat; overload;
class function Create(image: pcvImage): TccvMat; overload;
procedure Free; reintroduce;
end;
implementation
uses ocv.lib;
function CreateMat(rows, cols, _type: Integer): TccvMat; stdcall; external opencv_classes_lib name 'CreateMatRCT'; overload;
function CreateMat(m: pIplImage): TccvMat; stdcall; external opencv_classes_lib name 'CreateMatFromImage'; overload;
function CreateMat: TccvMat; stdcall; external opencv_classes_lib name 'CreateMat'; overload;
procedure ReleaseMat(ex: TccvMat); stdcall; external opencv_classes_lib;
{ TocvMat }
class function TccvMat.Create: TccvMat;
begin
Result := CreateMat;
end;
class function TccvMat.Create(rows, cols, _type: Integer): TccvMat;
begin
Result := CreateMat(rows, cols, _type);
end;
class function TccvMat.Create(image: pcvImage): TccvMat;
begin
Result := CreateMat(image);
end;
procedure TccvMat.Free;
begin
ReleaseMat(Self);
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -46,22 +46,28 @@
*************************************************************************************************
*)
{$I OpenCV.inc}
unit ocv.nonfree;
interface
//uses windows;
{$IFNDEF DelphiOCVVersion_30}
function initModule_nonfree(): LongBool; cdecl;
{$ENDIF}
implementation
uses ocv.lib;
{$IFNDEF DelphiOCVVersion_30}
function initModule_nonfree; external nonfree_lib index 894;
{$ENDIF}
initialization
{$IFNDEF DelphiOCVVersion_30}
initModule_nonfree;
{$ENDIF}
end.

View File

@ -1,99 +0,0 @@
(*
*****************************************************************
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.
*******************************************************************
*)
unit ocv.objdetect;
{$I OpenCV.inc}
interface
Uses
//{$IFDEF MSWINDOWS}
// Winapi.Windows,
//{$ENDIF MSWINDOWS}
ocv.Mat,
ocv.cclasses,
ocv.core.types_c;
const
CV_HAAR_DO_CANNY_PRUNING = 1;
CV_HAAR_SCALE_IMAGE = 2;
CV_HAAR_FIND_BIGGEST_OBJECT = 4;
CV_HAAR_DO_ROUGH_SEARCH = 8;
Type
TccvCascadeClassifier = class
public
function empty(): bytebool; virtual; stdcall; abstract;
function load(const FileName: PAnsiChar): bytebool; virtual; stdcall; abstract;
procedure detectMultiScale(image: TccvMat; objects: TCVectorRect; scaleFactor: Double { = 1.1 };
minNeighbors: integer { = 3 }; flags: integer { = 0 }; minSize: TCvSize { = CvSize() };
maxSize: TCvSize { = CvSize()) } ); overload; virtual; stdcall; abstract;
procedure detectMultiScaleLevel(image: TccvMat; objects: TCVectorRect; rejectLevels: TCVectorInt;
levelWeights: TCVectorDouble; scaleFactor: Double { = 1.1 }; minNeighbors: integer { = 3 };
flags: integer { = 0 }; minSize: TCvSize { = CvSize() }; maxSize: TCvSize { = CvSize()) };
outputRejectLevels: bytebool { = false } ); overload; virtual; stdcall; abstract;
function isOldFormatCascade(): bytebool; virtual; stdcall; abstract;
// function getOriginalWindowSize(): TCvSize; virtual; stdcall; abstract;
// function getFeatureType(): integer; virtual; stdcall; abstract;
// function setImage(image: TccvMat): bytebool; virtual; stdcall; abstract;
// --------------------------------------------
class function Create: TccvCascadeClassifier; overload;
class function Create(const FileName: PAnsiChar): TccvCascadeClassifier; overload;
class function Create(const FileName: String): TccvCascadeClassifier; overload;
procedure Free; reintroduce;
end;
implementation
uses ocv.lib;
function CreateCascadeClassifier: TccvCascadeClassifier; stdcall; external opencv_classes_lib;
function CreateCascadeClassifierFromFile(const FileName: PAnsiChar): TccvCascadeClassifier; stdcall;
external opencv_classes_lib;
procedure ReleaseCascadeClassifier(ex: TccvCascadeClassifier); stdcall; external opencv_classes_lib;
{ TccvCascadeClassifier }
class function TccvCascadeClassifier.Create: TccvCascadeClassifier;
begin
Result := CreateCascadeClassifier;
end;
class function TccvCascadeClassifier.Create(const FileName: PAnsiChar): TccvCascadeClassifier;
begin
Result := CreateCascadeClassifierFromFile(FileName);
end;
class function TccvCascadeClassifier.Create(const FileName: String): TccvCascadeClassifier;
begin
Result := CreateCascadeClassifierFromFile(PAnsiChar(@AnsiString(FileName)[1]));
end;
procedure TccvCascadeClassifier.Free;
begin
ReleaseCascadeClassifier(Self);
end;
end.

View File

@ -69,14 +69,15 @@ uses ocv.core_c, ocv.core.types_c;
/// ****************************************************************************************\
// * Haar-like Object Detection functions *
// \****************************************************************************************/
//
// #define CV_HAAR_MAGIC_VAL 0x42500000
// #define CV_TYPE_NAME_HAAR "opencv-haar-classifier"
//
// #define CV_IS_HAAR_CLASSIFIER( haar ) \
// ((haar) != NULL && \
// (((const CvHaarClassifierCascade*)(haar))->flags & CV_MAGIC_MASK)==CV_HAAR_MAGIC_VAL)
const
// #define CV_HAAR_MAGIC_VAL 0x42500000
CV_HAAR_MAGIC_VAL = $42500000;
// #define CV_TYPE_NAME_HAAR "opencv-haar-classifier"
CV_TYPE_NAME_HAAR = 'opencv-haar-classifier';
// #define CV_IS_HAAR_CLASSIFIER( haar ) \
// ((haar) != NULL && \
// (((const CvHaarClassifierCascade*)(haar))->flags & CV_MAGIC_MASK)==CV_HAAR_MAGIC_VAL)
// #define CV_HAAR_FEATURE_MAX 3
CV_HAAR_FEATURE_MAX = 3;
@ -145,22 +146,25 @@ Type
// CvRect rect;
// int neighbors;
// } CvAvgComp;
TCvAvgComp = record
rect: TCvRect;
neighbors: Integer;
end;
// Loads haar classifier cascade from a directory.
// It is obsolete: convert your cascade to xml and use cvLoad instead
// CVAPI(CvHaarClassifierCascade*) cvLoadHaarClassifierCascade(
// const char* directory, CvSize orig_window_size);
function cvLoadHaarClassifierCascade(const directory: PAnsiChar; orig_window_size: TCvSize)
: pCvHaarClassifierCascade; cdecl;
function cvLoadHaarClassifierCascade(const directory: PAnsiChar; orig_window_size: TCvSize): pCvHaarClassifierCascade; cdecl;
// CVAPI(void) cvReleaseHaarClassifierCascade( CvHaarClassifierCascade** cascade );
procedure cvReleaseHaarClassifierCascade(Var cascade: pCvHaarClassifierCascade); cdecl;
Const
CV_HAAR_DO_CANNY_PRUNING = 1;
CV_HAAR_SCALE_IMAGE = 2;
CV_HAAR_DO_CANNY_PRUNING = 1;
CV_HAAR_SCALE_IMAGE = 2;
CV_HAAR_FIND_BIGGEST_OBJECT = 4;
CV_HAAR_DO_ROUGH_SEARCH = 8;
CV_HAAR_DO_ROUGH_SEARCH = 8;
// CVAPI(CvSeq*) cvHaarDetectObjects( const CvArr* image,
// CvHaarClassifierCascade* cascade, CvMemStorage* storage,
@ -169,9 +173,9 @@ Const
// CvSize min_size CV_DEFAULT(cvSize(0,0)), CvSize max_size CV_DEFAULT(cvSize(0,0)));
// CVAPI(CvSeq*)
function cvHaarDetectObjects(const image: pCvArr; cascade: pCvHaarClassifierCascade; storage: pCvMemStorage;
scale_factor: Double { 1.1 }; min_neighbors: Integer { 3 }; flags: Integer { 0 };
min_size: TCvSize { CV_DEFAULT(cvSize(0,0)) }; max_size: TCvSize { CV_DEFAULT(cvSize(0,0)) } ): pCvSeq; cdecl;
function cvHaarDetectObjects(const image: pCvArr; cascade: pCvHaarClassifierCascade; storage: pCvMemStorage; scale_factor: Double { 1.1 };
min_neighbors: Integer { 3 }; flags: Integer { 0 }; min_size: TCvSize { CV_DEFAULT(cvSize(0,0)) }; max_size: TCvSize { CV_DEFAULT(cvSize(0,0)) } )
: pCvSeq; cdecl;
(*
sets images for haar classifier cascade
@ -180,22 +184,20 @@ function cvHaarDetectObjects(const image: pCvArr; cascade: pCvHaarClassifierCasc
const CvArr* sum, const CvArr* sqsum,
const CvArr* tilted_sum, double scale );
*)
procedure cvSetImagesForHaarClassifierCascade(cascade: pCvHaarClassifierCascade; const sum: pCvArr; const sqsum: pCvArr;
const tilted_sum: pCvArr; scale: Double); cdecl;
procedure cvSetImagesForHaarClassifierCascade(cascade: pCvHaarClassifierCascade; const sum: pCvArr; const sqsum: pCvArr; const tilted_sum: pCvArr;
scale: Double); cdecl;
(*
runs the cascade on the specified window
*)
(*
CVAPI(int) cvRunHaarClassifierCascade( const CvHaarClassifierCascade* cascade,
CvPoint pt, int start_stage CV_DEFAULT(0));
*)
function cvRunHaarClassifierCascade(const cascade: pCvHaarClassifierCascade; pt: TCvPoint; start_stage: Integer = 0)
: Integer; cdecl;
function cvRunHaarClassifierCascade(const cascade: pCvHaarClassifierCascade; pt: TCvPoint; start_stage: Integer = 0): Integer; cdecl;
/// ****************************************************************************************\
// * Latent SVM Object Detection functions *
// \****************************************************************************************/
// ****************************************************************************************
// * Latent SVM Object Detection functions *
// ****************************************************************************************
// DataType: STRUCT position
/// / Structure describes the position of the filter in the feature pyramid
@ -284,68 +286,72 @@ Type
// CVAPI(CvLatentSvmDetector*) cvLoadLatentSvmDetector(const char* filename);
function cvLoadLatentSvmDetector(const filename: pCVChar): pCvLatentSvmDetector; cdecl;
// release memory allocated for CvLatentSvmDetector structure
//
// API
// void cvReleaseLatentSvmDetector(CvLatentSvmDetector** detector);
// INPUT
// detector - CvLatentSvmDetector structure to be released
// OUTPUT
(*
release memory allocated for CvLatentSvmDetector structure
// CVAPI(void) cvReleaseLatentSvmDetector(CvLatentSvmDetector** detector);
API
void cvReleaseLatentSvmDetector(CvLatentSvmDetector** detector);
INPUT
detector - CvLatentSvmDetector structure to be released
OUTPUT
CVAPI(void) cvReleaseLatentSvmDetector(CvLatentSvmDetector** detector);
*)
procedure cvReleaseLatentSvmDetector(Var detector: pCvLatentSvmDetector); cdecl;
(*
find rectangular regions in the given image that are likely
to contain objects and corresponding confidence levels
// find rectangular regions in the given image that are likely
// to contain objects and corresponding confidence levels
//
// CvSeq* cvLatentSvmDetectObjects(const IplImage* image,
// CvLatentSvmDetector* detector,
// CvMemStorage* storage,
// float overlap_threshold = 0.5f,
// int numThreads = -1);
// INPUT
// image - image to detect objects in
// detector - Latent SVM detector in internal representation
// storage - memory storage to store the resultant sequence
// of the object candidate rectangles
// overlap_threshold - threshold for the non-maximum suppression algorithm
// = 0.5f [here will be the reference to original paper]
// OUTPUT
// sequence of detected objects (bounding boxes and confidence levels stored in CvObjectDetection structures)
CvSeq* cvLatentSvmDetectObjects(const IplImage* image,
CvLatentSvmDetector* detector,
CvMemStorage* storage,
float overlap_threshold = 0.5f,
int numThreads = -1);
INPUT
image - image to detect objects in
detector - Latent SVM detector in internal representation
storage - memory storage to store the resultant sequence
of the object candidate rectangles
overlap_threshold - threshold for the non-maximum suppression algorithm
= 0.5f [here will be the reference to original paper]
OUTPUT
sequence of detected objects (bounding boxes and confidence levels stored in CvObjectDetection structures)
// CVAPI(CvSeq*) cvLatentSvmDetectObjects(IplImage* image,
// CvLatentSvmDetector* detector,
// CvMemStorage* storage,
// float overlap_threshold CV_DEFAULT(0.5f),
// int numThreads CV_DEFAULT(-1));
function cvLatentSvmDetectObjects(image: pIplImage; detector: pCvLatentSvmDetector; storage: pCvMemStorage;
overlap_threshold: single = 0.5; numThreads: Integer = -1): pCvSeq; cdecl;
CVAPI(CvSeq* ) cvLatentSvmDetectObjects(IplImage* image,
CvLatentSvmDetector* detector,
CvMemStorage* storage,
float overlap_threshold CV_DEFAULT(0.5f),
int numThreads CV_DEFAULT(-1));
*)
function cvLatentSvmDetectObjects(image: pIplImage; detector: pCvLatentSvmDetector; storage: pCvMemStorage; overlap_threshold: single = 0.5;
numThreads: Integer = -1): pCvSeq; cdecl;
// #ifdef __cplusplus
// }
//
// CV_EXPORTS CvSeq* cvHaarDetectObjectsForROC( const CvArr* image,
// CvHaarClassifierCascade* cascade, CvMemStorage* storage,
// std::vector<int>& rejectLevels, std::vector<double>& levelWeightds,
// double scale_factor = 1.1,
// int min_neighbors = 3, int flags = 0,
// CvSize min_size = cvSize(0, 0), CvSize max_size = cvSize(0, 0),
// bool outputRejectLevels = false );
//
// struct CvDataMatrixCode
// {
// char msg[4];
// CvMat* original;
// CvMat* corners;
// };
//
// CV_EXPORTS std::deque<CvDataMatrixCode> cvFindDataMatrix(CvMat *im);
//
// #endif
//
//
// #endif /* __OPENCV_OBJDETECT_C_H__ */
(*
#ifdef __cplusplus
}
CV_EXPORTS CvSeq* cvHaarDetectObjectsForROC( const CvArr* image,
CvHaarClassifierCascade* cascade, CvMemStorage* storage,
std::vector<int>& rejectLevels, std::vector<double>& levelWeightds,
double scale_factor = 1.1,
int min_neighbors = 3, int flags = 0,
CvSize min_size = cvSize(0, 0), CvSize max_size = cvSize(0, 0),
bool outputRejectLevels = false );
*)
(*
struct CvDataMatrixCode
{
char msg[4];
CvMat* original;
CvMat* corners;
};
// CV_EXPORTS std::deque<CvDataMatrixCode> cvFindDataMatrix(CvMat *im);
#endif
*)
implementation

View File

@ -45,20 +45,8 @@
opencv\modules\photo\include\opencv2\photo\photo_c.h
*************************************************************************************************
*)
//
{$I OpenCV.inc}
//
{$IFDEF DEBUG}
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O-,P+,Q+,R+,S-,T-,U-,V+,W+,X+,Y+,Z1}
{$ELSE}
{$A8,B-,C-,D-,E-,F-,G+,H+,I+,J-,K-,L-,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-,Z1}
{$ENDIF}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
unit ocv.photo_c;
interface
@ -69,28 +57,58 @@ const
(*
Inpainting algorithms
*)
(* enum
{
CV_INPAINT_NS =0,
CV_INPAINT_TELEA =1
}; *)
CV_INPAINT_NS = 0;
CV_INPAINT_NS = 0;
CV_INPAINT_TELEA = 1;
(*
Inpaints the selected region in the image
*)
(*
CVAPI(void) cvInpaint( const CvArr* src, const CvArr* inpaint_mask,
CvArr* dst, double inpaintRange, int flags );
*)
procedure cvInpaint(const src: pCvArr; const inpaint_mask: pCvArr; dst: pCvArr; inpaintRange: double;
flags: Integer); cdecl;
{$IFDEF SAFELOADLIB}
Type
TcvInpaint = procedure(const src: pCvArr; const inpaint_mask: pCvArr; dst: pCvArr; inpaintRange: double; flags: Integer); cdecl;
Var
cvInpaint: TcvInpaint = nil;
{$ELSE}
procedure cvInpaint(const src: pCvArr; const inpaint_mask: pCvArr; dst: pCvArr; inpaintRange: double; flags: Integer); cdecl;
{$ENDIF}
implementation
uses ocv.lib;
{$IFDEF SAFELOADLIB}
Var
PhotoDLL: Cardinal;
procedure Init_opencv_photo_lib;
begin
PhotoDLL := ocvLoadLibrary(opencv_photo_lib);
Assert(PhotoDLL <> 0, 'Can not init ' + opencv_photo_lib);
cvInpaint := ocvGetProcAddress('cvInpaint', PhotoDLL);
end;
{$ELSE}
procedure cvInpaint; external opencv_photo_lib;
{$ENDIF}
initialization
{$IFDEF SAFELOADLIB}
Init_opencv_photo_lib;
{$ENDIF}
finalization
{$IFDEF SAFELOADLIB}
{$ENDIF}
end.

View File

@ -46,23 +46,7 @@
*************************************************************************************************
*)
//
{$I OpenCV.inc}
//
{$IFDEF DEBUG}
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O-,P+,Q+,R+,S-,T-,U-,V+,W+,X+,Y+,Z1}
{$ELSE}
{$A8,B-,C-,D-,E-,F-,G+,H+,I+,J-,K-,L-,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-,Z1}
{$ENDIF}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_PLATFORM OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_CAST OFF}
//
{$I OpenCV.inc}
//
unit ocv.tracking_c;
interface
@ -75,9 +59,9 @@ uses ocv.core.types_c, ocv.imgproc.types_c;
// ************************************ optical flow ***************************************
const
CV_LKFLOW_PYR_A_READY = 1;
CV_LKFLOW_PYR_B_READY = 2;
CV_LKFLOW_INITIAL_GUESSES = 4;
CV_LKFLOW_PYR_A_READY = 1;
CV_LKFLOW_PYR_B_READY = 2;
CV_LKFLOW_INITIAL_GUESSES = 4;
CV_LKFLOW_GET_MIN_EIGENVALS = 8;
(*
@ -99,11 +83,22 @@ const
CvTermCriteria criteria,
int flags );
*)
{$IFDEF SAFELOADLIB}
Type
TcvCalcOpticalFlowPyrLK = procedure(const prev: pIplImage; const curr: pIplImage; prev_pyr: pIplImage; curr_pyr: pIplImage;
const prev_features: pCvPoint2D32f; curr_features: pCvPoint2D32f; count: Integer; win_size: TCvSize; level: Integer; status: pCVChar;
track_error: PSingle; criteria: TCvTermCriteria; flags: Integer); cdecl;
Var
cvCalcOpticalFlowPyrLK: TcvCalcOpticalFlowPyrLK;
{$ELSE}
{$EXTERNALSYM cvCalcOpticalFlowPyrLK}
procedure cvCalcOpticalFlowPyrLK(const prev: pIplImage; const curr: pIplImage; prev_pyr: pIplImage; curr_pyr: pIplImage;
const prev_features: pCvPoint2D32f; curr_features: pCvPoint2D32f; count: Integer; win_size: TCvSize; level: Integer;
status: pCVChar; track_error: PSingle; criteria: TCvTermCriteria; flags: Integer); cdecl;
const prev_features: pCvPoint2D32f; curr_features: pCvPoint2D32f; count: Integer; win_size: TCvSize; level: Integer; status: pCVChar;
track_error: PSingle; criteria: TCvTermCriteria; flags: Integer); cdecl;
{$ENDIF}
(* Modification of a previous sparse optical flow algorithm to calculate
affine flow
@ -116,23 +111,38 @@ procedure cvCalcOpticalFlowPyrLK(const prev: pIplImage; const curr: pIplImage; p
char* status, float* track_error,
CvTermCriteria criteria, int flags );
*)
{$EXTERNALSYM cvCalcAffineFlowPyrLK}
procedure cvCalcAffineFlowPyrLK(const prev: pCvArr; const curr: pCvArr; prev_pyr: pCvArr; curr_pyr: pCvArr;
const prev_features: pCvPoint2D32f; var curr_features: TCvPoint2D32f; var matrices: Single; count: Integer;
win_size: TCvSize; level: Integer; status: pCVChar; var track_error: Single; criteria: TCvTermCriteria;
flags: Integer); cdecl;
{$IFDEF SAFELOADLIB}
Type
TcvCalcAffineFlowPyrLK = procedure(const prev: pCvArr; const curr: pCvArr; prev_pyr: pCvArr; curr_pyr: pCvArr; const prev_features: pCvPoint2D32f;
var curr_features: TCvPoint2D32f; var matrices: Single; count: Integer; win_size: TCvSize; level: Integer; status: pCVChar;
var track_error: Single; criteria: TCvTermCriteria; flags: Integer); cdecl;
Var
cvCalcAffineFlowPyrLK: TcvCalcAffineFlowPyrLK;
{$ELSE}
{$EXTERNALSYM cvCalcAffineFlowPyrLK}
procedure cvCalcAffineFlowPyrLK(const prev: pCvArr; const curr: pCvArr; prev_pyr: pCvArr; curr_pyr: pCvArr; const prev_features: pCvPoint2D32f;
var curr_features: TCvPoint2D32f; var matrices: Single; count: Integer; win_size: TCvSize; level: Integer; status: pCVChar; var track_error: Single;
criteria: TCvTermCriteria; flags: Integer); cdecl;
{$ENDIF}
(*
Estimate rigid transformation between 2 images or 2 point sets
CVAPI(int) cvEstimateRigidTransform( const CvArr* A, const CvArr* B,
CvMat* M, int full_affine );
*)
{$IFDEF SAFELOADLIB}
Type
TcvEstimateRigidTransform = function(const A: pCvArr; const B: pCvArr; var M: TCvMat; full_affine: Integer): Integer; cdecl;
var
cvEstimateRigidTransform: TcvEstimateRigidTransform;
{$ELSE}
{$EXTERNALSYM cvEstimateRigidTransform}
function cvEstimateRigidTransform(const A: pCvArr; const B: pCvArr; var M: TCvMat; full_affine: Integer)
: Integer; cdecl;
function cvEstimateRigidTransform(const A: pCvArr; const B: pCvArr; var M: TCvMat; full_affine: Integer): Integer; cdecl;
{$ENDIF}
(*
Estimate optical flow for each pixel using the two-frame G. Farneback algorithm
@ -141,10 +151,19 @@ function cvEstimateRigidTransform(const A: pCvArr; const B: pCvArr; var M: TCvMa
int winsize, int iterations, int poly_n,
double poly_sigma, int flags );
*)
{$EXTERNALSYM cvCalcOpticalFlowFarneback}
procedure cvCalcOpticalFlowFarneback(const prev: pCvMat; const next: pCvMat; flow: pCvMat; pyr_scale: double;
levels: Integer; winsize: Integer; iterations: Integer; poly_n: Integer; poly_sigma: double; flags: Integer); cdecl;
{$IFDEF SAFELOADLIB}
type
TcvCalcOpticalFlowFarneback = procedure(const prev: pCvMat; const next: pCvMat; flow: pCvMat; pyr_scale: double; levels: Integer; winsize: Integer;
iterations: Integer; poly_n: Integer; poly_sigma: double; flags: Integer); cdecl;
var
cvCalcOpticalFlowFarneback: TcvCalcOpticalFlowFarneback;
{$ELSE}
{$EXTERNALSYM cvCalcOpticalFlowFarneback}
procedure cvCalcOpticalFlowFarneback(const prev: pCvMat; const next: pCvMat; flow: pCvMat; pyr_scale: double; levels: Integer; winsize: Integer;
iterations: Integer; poly_n: Integer; poly_sigma: double; flags: Integer); cdecl;
{$ENDIF}
(* ******************************** motion templates ************************************ *)
(* *****************************************************************************************
@ -163,9 +182,17 @@ procedure cvCalcOpticalFlowFarneback(const prev: pCvMat; const next: pCvMat; flo
CVAPI(void) cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi,
double timestamp, double duration );
*)
{$IFDEF SAFELOADLIB}
Type
TcvUpdateMotionHistory = procedure(const silhouette: pCvArr; mhi: pCvArr; timestamp: double; duration: double); cdecl;
var
cvUpdateMotionHistory: TcvUpdateMotionHistory;
{$ELSE}
{$EXTERNALSYM cvUpdateMotionHistory}
procedure cvUpdateMotionHistory(const silhouette: pCvArr; mhi: pCvArr; timestamp: double; duration: double); cdecl;
{$ENDIF}
(*
Calculates gradient of the motion history image and fills
a mask indicating where the gradient is valid
@ -174,10 +201,19 @@ procedure cvUpdateMotionHistory(const silhouette: pCvArr; mhi: pCvArr; timestamp
double delta1, double delta2,
int aperture_size CV_DEFAULT(3));
*)
{$IFDEF SAFELOADLIB}
Type
TcvCalcMotionGradient = procedure(const mhi: pCvArr; mask: pCvArr; orientation: pCvArr; delta1: double; delta2: double;
aperture_size: Integer = 3); cdecl;
var
cvCalcMotionGradient: TcvCalcMotionGradient;
{$ELSE}
{$EXTERNALSYM cvCalcMotionGradient}
procedure cvCalcMotionGradient(const mhi: pCvArr; mask: pCvArr; orientation: pCvArr; delta1: double; delta2: double;
aperture_size: Integer = 3); cdecl;
{$ENDIF}
(* Calculates average motion direction within a selected motion region
(region can be selected by setting ROIs and/or by composing a valid gradient mask
with the region mask)
@ -186,10 +222,19 @@ procedure cvCalcMotionGradient(const mhi: pCvArr; mask: pCvArr; orientation: pCv
const CvArr* mhi, double timestamp,
double duration );
*)
{$EXTERNALSYM cvCalcGlobalOrientation}
function cvCalcGlobalOrientation(const orientation: pCvArr; const mask: pCvArr; const mhi: pCvArr; timestamp: double;
duration: double): double; cdecl;
{$IFDEF SAFELOADLIB}
type
TcvCalcGlobalOrientation = function(const orientation: pCvArr; const mask: pCvArr; const mhi: pCvArr; timestamp: double; duration: double)
: double; cdecl;
var
cvCalcGlobalOrientation: TcvCalcGlobalOrientation;
{$ELSE}
{$EXTERNALSYM cvCalcGlobalOrientation}
function cvCalcGlobalOrientation(const orientation: pCvArr; const mask: pCvArr; const mhi: pCvArr; timestamp: double; duration: double)
: double; cdecl;
{$ENDIF}
(* Splits a motion history image into a few parts corresponding to separate independent motions
(e.g. left hand, right hand)
@ -197,10 +242,17 @@ function cvCalcGlobalOrientation(const orientation: pCvArr; const mask: pCvArr;
CvMemStorage* storage,
double timestamp, double seg_thresh );
*)
{$EXTERNALSYM cvSegmentMotion}
function cvSegmentMotion(const mhi: pCvArr; seg_mask: pCvArr; storage: pCvMemStorage; timestamp: double;
seg_thresh: double): pCvSeq; cdecl;
{$IFDEF SAFELOADLIB}
type
TcvSegmentMotion = function(const mhi: pCvArr; seg_mask: pCvArr; storage: pCvMemStorage; timestamp: double; seg_thresh: double): pCvSeq; cdecl;
var
cvSegmentMotion: TcvSegmentMotion;
{$ELSE}
{$EXTERNALSYM cvSegmentMotion}
function cvSegmentMotion(const mhi: pCvArr; seg_mask: pCvArr; storage: pCvMemStorage; timestamp: double; seg_thresh: double): pCvSeq; cdecl;
{$ENDIF}
(* ****************************************************************************************
* Tracking *
*************************************************************************************** *)
@ -213,19 +265,36 @@ function cvSegmentMotion(const mhi: pCvArr; seg_mask: pCvArr; storage: pCvMemSto
CvTermCriteria criteria, CvConnectedComp* comp,
CvBox2D* box CV_DEFAULT(NULL) );
*)
{$EXTERNALSYM cvCamShift}
function cvCamShift(const prob_image: pIplImage; window: TCvRect; criteria: TCvTermCriteria; comp: pCvConnectedComp;
box: pCvBox2D = nil): Integer; cdecl;
{$IFDEF SAFELOADLIB}
type
TcvCamShift = function(const prob_image: pIplImage; window: TCvRect; criteria: TCvTermCriteria; comp: pCvConnectedComp; box: pCvBox2D = nil)
: Integer; cdecl;
var
cvCamShift: TcvCamShift;
{$ELSE}
{$EXTERNALSYM cvCamShift}
function cvCamShift(const prob_image: pIplImage; window: TCvRect; criteria: TCvTermCriteria; comp: pCvConnectedComp; box: pCvBox2D = nil)
: Integer; cdecl;
{$ENDIF}
(* Implements MeanShift algorithm - determines object position
from the object histogram back project
CVAPI(int) cvMeanShift( const CvArr* prob_image, CvRect window,
CvTermCriteria criteria, CvConnectedComp* comp );
*)
{$IFDEF SAFELOADLIB}
type
TcvMeanShift = function(const prob_image: pCvArr; window: TCvRect; criteria: TCvTermCriteria; var comp: TCvConnectedComp): Integer; cdecl;
var
cvMeanShift: TcvMeanShift;
{$ELSE}
{$EXTERNALSYM cvMeanShift}
function cvMeanShift(const prob_image: pCvArr; window: TCvRect; criteria: TCvTermCriteria; var comp: TCvConnectedComp)
: Integer; cdecl;
function cvMeanShift(const prob_image: pCvArr; window: TCvRect; criteria: TCvTermCriteria; var comp: TCvConnectedComp): Integer; cdecl;
{$ENDIF}
(*
standard Kalman filter (in G. Welch' and G. Bishop's notation):
@ -244,7 +313,7 @@ Type
CP: Integer; (* number of control vector dimensions *)
(* backward compatibility fields *)
//{$IFDEF 1}
// {$IFDEF 1}
PosterState: PSingle; (* =state_pre->data.fl *)
PriorState: PSingle; (* =state_post->data.fl *)
DynamMatr: PSingle; (* =transition_matrix->data.fl *)
@ -256,7 +325,7 @@ Type
PosterErrorCovariance: PSingle; (* =error_cov_post->data.fl *)
_Temp1: PSingle; (* temp1->data.fl *)
_Temp2: PSingle; (* temp2->data.fl *)
//{$ENDIF}
// {$ENDIF}
state_pre: pCvMat; (* predicted state (x'(k)):
x(k)=A*x(k-1)+B*u(k) *)
state_post: pCvMat; (* corrected state (x(k)):
@ -286,50 +355,120 @@ Type
CVAPI(CvKalman* ) cvCreateKalman( int dynam_params, int measure_params,
int control_params CV_DEFAULT(0));
*)
{$IFDEF SAFELOADLIB}
type
TcvCreateKalman = function(dynam_params: Integer; measure_params: Integer; control_params: Integer = 0): pCvKalman; cdecl;
var
cvCreateKalman: TcvCreateKalman;
{$ELSE}
{$EXTERNALSYM cvCreateKalman}
function cvCreateKalman(dynam_params: Integer; measure_params: Integer; control_params: Integer = 0): pCvKalman; cdecl;
{$ENDIF}
(*
Releases Kalman filter state
CVAPI(void) cvReleaseKalman( CvKalman** kalman);
*)
{$IFDEF SAFELOADLIB}
type
TcvReleaseKalman = procedure(var kalman: pCvKalman); cdecl;
var
cvReleaseKalman: TcvReleaseKalman;
{$ELSE}
{$EXTERNALSYM cvReleaseKalman}
procedure cvReleaseKalman(var kalman: pCvKalman); cdecl;
{$ENDIF}
(*
Updates Kalman filter by time (predicts future state of the system)
CVAPI(const CvMat* cvKalmanPredict( CvKalman* kalman,
const CvMat* control CV_DEFAULT(NULL));
*)
{$IFDEF SAFELOADLIB}
type
TcvKalmanPredict = function(var kalman: TCvKalman; const control: pCvMat = nil): pCvMat; cdecl;
var
cvKalmanPredict: TcvKalmanPredict;
{$ELSE}
{$EXTERNALSYM cvKalmanPredict}
function cvKalmanPredict(var kalman: TCvKalman; const control: pCvMat = nil): pCvMat; cdecl;
{$ENDIF}
(* Updates Kalman filter by measurement
(corrects state of the system and internal matrices)
CVAPI(const CvMat* ) cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement );
*)
{$IFDEF SAFELOADLIB}
type
TcvKalmanCorrect = function(var kalman: TCvKalman; const measurement: pCvMat): pCvMat; cdecl;
var
cvKalmanCorrect: TcvKalmanCorrect;
{$ELSE}
{$EXTERNALSYM cvKalmanCorrect}
function cvKalmanCorrect(var kalman: TCvKalman; const measurement: pCvMat): pCvMat; cdecl;
Type
TcvKalmanPredict = function(var kalman: TCvKalman; const control: pCvMat = nil): pCvMat; cdecl;
TcvKalmanCorrect = function(var kalman: TCvKalman; const measurement: pCvMat): pCvMat; cdecl;
{$ENDIF}
Var
{$EXTERNALSYM cvKalmanUpdateByTime}
cvKalmanUpdateByTime: TcvKalmanPredict = cvKalmanPredict;
cvKalmanUpdateByTime: TcvKalmanPredict {$IFNDEF SAFELOADLIB} = cvKalmanPredict {$ENDIF};
{$EXTERNALSYM cvKalmanUpdateByMeasurement}
cvKalmanUpdateByMeasurement: TcvKalmanCorrect = cvKalmanCorrect;
cvKalmanUpdateByMeasurement: TcvKalmanCorrect{$IFNDEF SAFELOADLIB} = cvKalmanCorrect{$ENDIF};
implementation
uses
ocv.lib;
{$IFDEF SAFELOADLIB}
Var
TrackingDLL: Cardinal;
procedure Init_opencv_Tracking_lib;
begin
TrackingDLL := ocvLoadLibrary(opencv_photo_lib);
Assert(TrackingDLL <> 0, 'Can not init ' + tracking_lib);
cvCalcOpticalFlowPyrLK := ocvGetProcAddress('cvCalcOpticalFlowPyrLK', TrackingDLL);
cvCalcAffineFlowPyrLK := ocvGetProcAddress('cvCalcAffineFlowPyrLK', TrackingDLL);
cvEstimateRigidTransform := ocvGetProcAddress('cvEstimateRigidTransform', TrackingDLL);
cvCalcOpticalFlowFarneback := ocvGetProcAddress('cvCalcOpticalFlowFarneback', TrackingDLL);
cvUpdateMotionHistory := ocvGetProcAddress('cvUpdateMotionHistory', TrackingDLL);
cvCalcMotionGradient := ocvGetProcAddress('cvCalcMotionGradient', TrackingDLL);
cvCalcGlobalOrientation := ocvGetProcAddress('cvCalcGlobalOrientation', TrackingDLL);
cvSegmentMotion := ocvGetProcAddress('cvSegmentMotion', TrackingDLL);
cvCamShift := ocvGetProcAddress('cvCamShift', TrackingDLL);
cvMeanShift := ocvGetProcAddress('cvMeanShift', TrackingDLL);
cvCreateKalman := ocvGetProcAddress('cvCreateKalman', TrackingDLL);
cvReleaseKalman := ocvGetProcAddress('cvReleaseKalman', TrackingDLL);
cvKalmanPredict := ocvGetProcAddress('cvKalmanPredict', TrackingDLL);
cvKalmanCorrect := ocvGetProcAddress('cvKalmanCorrect', TrackingDLL);
cvKalmanUpdateByTime := cvKalmanPredict;
cvKalmanUpdateByMeasurement := cvKalmanCorrect;
end;
initialization
{$IFDEF SAFELOADLIB}
Init_opencv_Tracking_lib;
{$ENDIF}
finalization
{$ELSE}
function cvCamShift; external tracking_lib;
procedure cvCalcOpticalFlowPyrLK; external tracking_lib;
procedure cvCalcOpticalFlowFarneback; external tracking_lib;
@ -345,5 +484,6 @@ function cvCreateKalman; external tracking_lib;
function cvKalmanPredict; external tracking_lib;
function cvKalmanCorrect; external tracking_lib;
procedure cvReleaseKalman; external tracking_lib;
{$ENDIF}
end.

View File

@ -0,0 +1,32 @@
========================================================================
БИБЛИОТЕКА ДИНАМИЧЕСКОЙ КОМПОНОВКИ. Обзор проекта opencv_classes
========================================================================
Эта библиотека DLL opencv_classes создана автоматически с помощью мастера приложений.
В этом файле представлена сводка содержимого всех файлов, входящих в состав приложения opencv_classes.
opencv_classes.vcxproj
Это основной файл проекта VC++, создаваемый с помощью мастера приложений. Он содержит данные о версии языка Visual C++, использованной для создания файла, а также сведения о платформах, конфигурациях и функциях проекта, выбранных с помощью мастера приложений.
opencv_classes.vcxproj.filters
Это файл фильтров для проектов VC++, созданный с помощью мастера приложений. Он содержит сведения о сопоставлениях между файлами в вашем проекте и фильтрами. Эти сопоставления используются в среде IDE для группировки файлов с одинаковыми расширениями в одном узле (например CPP-файлы сопоставляются с фильтром "Исходные файлы").
opencv_classes.cpp
Основной исходный файл библиотеки DLL.
При создании этой библиотеки DLL не выполняется экспорт символов. Поэтому при ее построении не создается LIB-файл. Если в этом проекте требуется определить зависимость от другого проекта, необходимо добавить код для экспорта символов из библиотеки DLL, чтобы обеспечить создание библиотеки экспорта, или задать значение «Да» для свойства «Пропустить входную библиотеку» на странице общих свойств папки «Компоновщик» в диалоговом окне «Страницы свойств» проекта.
/////////////////////////////////////////////////////////////////////////////
Другие стандартные файлы:
StdAfx.h, StdAfx.cpp
Эти файлы используются для построения файла предкомпилированного заголовка (PCH) с именем opencv_classes.pch и файла предкомпилированных типов с именем StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Прочие примечания.
С помощью комментариев «TODO:» в мастере приложений обозначаются фрагменты исходного кода, которые необходимо дополнить или изменить.
/////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,19 @@
// dllmain.cpp: îïðåäåëÿåò òî÷êó âõîäà äëÿ ïðèëîæåíèÿ DLL.
#include "stdafx.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

View File

@ -0,0 +1,158 @@
// opencv_classes.cpp: îïðåäåëÿåò ýêñïîðòèðîâàííûå ôóíêöèè äëÿ ïðèëîæåíèÿ DLL.
//
#include "stdafx.h"
#include "opencv2/core/mat.hpp"
#include "opencv2/videoio.hpp"
#include "opencv2/objdetect.hpp"
#define ICLASS_API extern "C" __declspec(dllexport)
//__stdcall
namespace cv
{
//////////////////// Mat ////////////////////
ICLASS_API Mat* __stdcall CreateMat()
{
return new Mat;
};
ICLASS_API bool __stdcall MatEmpty(Mat* e)
{
return e->empty();
}
ICLASS_API Mat* __stdcall CreateMatFromImage(IplImage* Image)
{
Mat *M = new Mat;
*M = cvarrToMat(Image);// default additional arguments: don't copy data.
//*M= Image;
return M;
}
ICLASS_API int __stdcall GetMatData(Mat* e, int index, int param)
{
switch (index)
{
case 0:
return (int)e->elemSize();
case 1:
return (int)e->elemSize1();
case 2:
return (int)e->type();
case 3:
return (int)e->depth();
case 4:
return (int)e->channels();
case 5:
return (int)e->step1(param);
case 6:
return (int)e->total();
case 7:
return (int)e->flags;
case 8:
return (int)e->dims;
case 9:
return (int)e->rows;
case 10:
return (int)e->cols;
case 11:
return (int)e->data;
}
};
ICLASS_API void __stdcall DestroyMat(Mat* e)
{
delete e;
};
//////////////////// VidoCapture ////////////////////
ICLASS_API VideoCapture* __stdcall CreateVideoCapture()
{
return new VideoCapture;
};
ICLASS_API bool __stdcall VideoCaptureOpen(VideoCapture* e, int CamNumber)
{
return e->open(CamNumber);
};
ICLASS_API bool __stdcall VideoCaptureOpenFileName(VideoCapture* e, char* FileName)
{
return e->open(FileName);
};
ICLASS_API bool __stdcall VideoCaptureisOpened(VideoCapture* e)
{
return e->isOpened();
};
ICLASS_API bool __stdcall VideoCaptureRead(VideoCapture* e, Mat** M)
{
Mat *_M = new Mat;
bool r=e->read(*_M);
*M = _M;
return r;
};
ICLASS_API bool __stdcall VideoCaptureSet(VideoCapture* e, int propId, double value)
{
return e->set(propId, value);
}
ICLASS_API double __stdcall VideoCaptureGet(VideoCapture* e, int propId)
{
return e->get(propId);
}
ICLASS_API void __stdcall DestroyVideoCapture(VideoCapture* e)
{
delete e;
};
//////////////////// CascadeClassifier ////////////////////
ICLASS_API CascadeClassifier* __stdcall CreateCascadeClassifier()
{
return new CascadeClassifier;
};
ICLASS_API void __stdcall DestroyCascadeClassifier(CascadeClassifier* e)
{
delete e;
};
ICLASS_API bool __stdcall get_CascadeClassifier_empty(CascadeClassifier* e)
{
return e->empty();
}
ICLASS_API bool __stdcall get_CascadeClassifier_load(CascadeClassifier* e, char* filename)
{
return e->load(filename);
}
ICLASS_API bool __stdcall CascadeClassifier_isOldFormatCascade(CascadeClassifier* e)
{
return e->isOldFormatCascade();
}
ICLASS_API Size* __stdcall CascadeClassifier_getOriginalWindowSize(CascadeClassifier* e)
{
Size *s = new Size(e->getOriginalWindowSize());
//*s = e->getOriginalWindowSize();
return s;
}
ICLASS_API int __stdcall CascadeClassifier_getFeatureType(CascadeClassifier* e)
{
return e->getFeatureType();
}
ICLASS_API bool __stdcall CascadeClassifier_convert(CascadeClassifier* e, char* oldcascade, char* newcascade)
{
return e->convert(oldcascade, newcascade);
}
}

View File

@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencv_classes", "opencv_classes.vcxproj", "{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Debug|Win32.ActiveCfg = Debug|Win32
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Debug|Win32.Build.0 = Debug|Win32
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Debug|x64.ActiveCfg = Debug|x64
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Debug|x64.Build.0 = Debug|x64
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Release|Win32.ActiveCfg = Release|Win32
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Release|Win32.Build.0 = Release|Win32
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Release|x64.ActiveCfg = Release|x64
{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,190 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{78DEF71B-AE48-44A1-9BEF-F517051EBF8F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>opencv_classes</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<TargetExt>300d.dll</TargetExt>
<OutDir>..\..\bin\win32\</OutDir>
<IncludePath>D:\opencv3\build\include\;$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv3\build\x86\vc12\lib\;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IncludePath>D:\opencv3\build\include\;$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv3\build\x86\vc12\lib\;$(LibraryPath)</LibraryPath>
<LinkIncremental>true</LinkIncremental>
<TargetExt>300d.dll</TargetExt>
<OutDir>..\..\bin\win64\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\bin\win32\</OutDir>
<TargetExt>300.dll</TargetExt>
<IncludePath>D:\opencv3\build\include\;$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv3\build\x86\vc12\lib\;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>300.dll</TargetExt>
<IncludePath>D:\opencv3\build\include\;$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv3\build\x86\vc12\lib\;$(LibraryPath)</LibraryPath>
<LinkIncremental>false</LinkIncremental>
<OutDir>..\..\bin\win64\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;OPENCV_CLASSES_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;OPENCV_CLASSES_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opencv_ts300d.lib;opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENCV_CLASSES_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENCV_CLASSES_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>opencv_ts300.lib;opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsManaged>
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</CompileAsManaged>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="opencv_classes.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Файлы исходного кода">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Заголовочные файлы">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Файлы ресурсов">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Заголовочные файлы</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>Заголовочные файлы</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Файлы исходного кода</Filter>
</ClCompile>
<ClCompile Include="opencv_classes.cpp">
<Filter>Файлы исходного кода</Filter>
</ClCompile>
<ClCompile Include="dllmain.cpp">
<Filter>Файлы исходного кода</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@ -0,0 +1,8 @@
// stdafx.cpp: исходный файл, содержащий только стандартные включаемые модули
// opencv_classes.pch будет предкомпилированным заголовком
// stdafx.obj будет содержать предварительно откомпилированные сведения о типе
#include "stdafx.h"
// TODO: Установите ссылки на любые требующиеся дополнительные заголовки в файле STDAFX.H
// , а не в данном файле

View File

@ -0,0 +1,16 @@
// stdafx.h: включаемый файл для стандартных системных включаемых файлов
// или включаемых файлов для конкретного проекта, которые часто используются, но
// не часто изменяются
//
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
// Файлы заголовков Windows:
#include <windows.h>
// TODO: Установите здесь ссылки на дополнительные заголовки, требующиеся для программы

View File

@ -0,0 +1,8 @@
#pragma once
// Включение SDKDDKVer.h обеспечивает определение самой последней доступной платформы Windows.
// Если требуется выполнить сборку приложения для предыдущей версии Windows, включите WinSDKVer.h и
// задайте для макроса _WIN32_WINNT значение поддерживаемой платформы перед включением SDKDDKVer.h.
#include <SDKDDKVer.h>