mirror of
https://github.com/Laex/Delphi-OpenCV.git
synced 2024-11-15 07:45:53 +01:00
Samples, fixed SAFELOAD_DLL, update OPENCV API
Signed-off-by: Laentir Valetov <laex@bk.ru>
This commit is contained in:
parent
917c22b6f7
commit
5805bd513c
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{DF744E81-26D1-44A1-826E-85DC20070C2F}</ProjectGuid>
|
||||
<ProjectVersion>18.0</ProjectVersion>
|
||||
<ProjectVersion>18.1</ProjectVersion>
|
||||
<FrameworkType>FMX</FrameworkType>
|
||||
<MainSource>cFMXCameraCapture.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
@ -346,7 +346,7 @@
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp210.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="2">
|
||||
<Deployment Version="3">
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Overwrite>true</Overwrite>
|
||||
@ -367,18 +367,38 @@
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgsqlite3.dylib" Class="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
<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>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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">
|
||||
@ -430,19 +450,22 @@
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="ProjectOutput">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Platform Name="Linux64">
|
||||
<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>
|
||||
@ -472,12 +495,7 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\x86</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File"/>
|
||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
@ -581,11 +599,11 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSEntitlements">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -609,7 +627,7 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXEntitlements">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -732,33 +750,19 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.dll;.bpl</Extensions>
|
||||
</Platform>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{37904A06-4ABD-411B-8C02-CCC73D6B4098}</ProjectGuid>
|
||||
<ProjectVersion>18.0</ProjectVersion>
|
||||
<ProjectVersion>18.1</ProjectVersion>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<MainSource>cMatchTemplate.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
@ -155,13 +155,28 @@
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp200.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="2">
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<Deployment Version="3">
|
||||
<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">
|
||||
@ -213,19 +228,22 @@
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="ProjectOutput">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Platform Name="Linux64">
|
||||
<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>
|
||||
@ -255,12 +273,7 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\x86</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File"/>
|
||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
@ -364,11 +377,11 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSEntitlements">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -392,7 +405,7 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXEntitlements">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -515,33 +528,19 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.dll;.bpl</Extensions>
|
||||
</Platform>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{E56078FF-356A-459E-9A21-AD24F8DD0A4A}</ProjectGuid>
|
||||
<ProjectVersion>18.0</ProjectVersion>
|
||||
<ProjectVersion>18.1</ProjectVersion>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<MainSource>cObjectColorTracking.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
@ -120,7 +120,7 @@
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp210.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="2">
|
||||
<Deployment Version="3">
|
||||
<DeployFile LocalName="Win32\Debug\cObjectColorTracking.exe" Configuration="Debug" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>cObjectColorTracking.exe</RemoteName>
|
||||
@ -133,12 +133,27 @@
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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">
|
||||
@ -190,19 +205,22 @@
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="ProjectOutput">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Platform Name="Linux64">
|
||||
<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>
|
||||
@ -232,12 +250,7 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\x86</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File"/>
|
||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
@ -341,11 +354,11 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSEntitlements">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -369,7 +382,7 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXEntitlements">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -492,33 +505,19 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.dll;.bpl</Extensions>
|
||||
</Platform>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
|
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{15F13174-963C-4D40-A658-9AF254D2590C}</ProjectGuid>
|
||||
<ProjectVersion>18.0</ProjectVersion>
|
||||
<ProjectVersion>18.1</ProjectVersion>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<MainSource>cVideoWriter.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
@ -116,13 +116,28 @@
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp200.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="2">
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<Deployment Version="3">
|
||||
<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">
|
||||
@ -174,19 +189,22 @@
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="ProjectOutput">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Platform Name="Linux64">
|
||||
<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>
|
||||
@ -216,12 +234,7 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\x86</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File"/>
|
||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
@ -325,11 +338,11 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSEntitlements">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -353,7 +366,7 @@
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXEntitlements">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>../</RemoteDir>
|
||||
<RemoteDir>..\</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
@ -476,33 +489,19 @@
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.dll;.bpl</Extensions>
|
||||
</Platform>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules">
|
||||
<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="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
|
Binary file not shown.
301
samples/LearningOpenCV_Code/ch7_ex7_3_expanded.dpr
Normal file
301
samples/LearningOpenCV_Code/ch7_ex7_3_expanded.dpr
Normal file
@ -0,0 +1,301 @@
|
||||
(*
|
||||
*****************************************************************
|
||||
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.
|
||||
*******************************************************************
|
||||
*)
|
||||
|
||||
(* *************** License:**************************
|
||||
Oct. 3, 2008
|
||||
Right to use this code in any way you want without warrenty, support or any guarentee of it working.
|
||||
|
||||
BOOK: It would be nice if you cited it:
|
||||
Learning OpenCV: Computer Vision with the OpenCV Library
|
||||
by Gary Bradski and Adrian Kaehler
|
||||
Published by O'Reilly Media, October 3, 2008
|
||||
|
||||
AVAILABLE AT:
|
||||
http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134
|
||||
Or: http://oreilly.com/catalog/9780596516130/
|
||||
ISBN-10: 0596516134 or: ISBN-13: 978-0596516130
|
||||
|
||||
OTHER OPENCV SITES:
|
||||
* The source code is on sourceforge at:
|
||||
http://sourceforge.net/projects/opencvlibrary/
|
||||
* The OpenCV wiki page (As of Oct 1, 2008 this is down for changing over servers, but should come back):
|
||||
http://opencvlibrary.sourceforge.net/
|
||||
* An active user group is at:
|
||||
http://tech.groups.yahoo.com/group/OpenCV/
|
||||
* The minutes of weekly OpenCV development meetings are at:
|
||||
http://pr.willowgarage.com/wiki/OpenCV
|
||||
**************************************************
|
||||
*)
|
||||
|
||||
program ch7_ex7_3_expanded;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
{$POINTERMATH ON}
|
||||
{$R *.res}
|
||||
|
||||
uses
|
||||
Winapi.Windows,
|
||||
System.SysUtils,
|
||||
System.Character,
|
||||
ocv.utils,
|
||||
ocv.core_c,
|
||||
ocv.highgui_c,
|
||||
ocv.core.types_c,
|
||||
ocv.imgproc.types_c,
|
||||
ocv.imgproc_c,
|
||||
ocv.tracking_c,
|
||||
ocv.compat;
|
||||
|
||||
procedure help();
|
||||
begin
|
||||
WriteLn('Call is:');
|
||||
WriteLn('ch7_ex7_3_expanded modelImage0 testImage1 testImage2 badImage3');
|
||||
WriteLn(' Note that the model image is split in half. Top half(0) makes model. It''s then tested');
|
||||
WriteLn(' against its lower half(0), testImages 1 and 2 in different lighting and different object 3');
|
||||
end;
|
||||
|
||||
// Compare 3 images histograms together,
|
||||
// the first is divided in half along y to test its other half
|
||||
// Call is:
|
||||
// ch7HistCmp modelImage0 testImage1 testImage2 badImage3
|
||||
// Note that the model image is split in half. Top half(0) makes model. It's then tested
|
||||
// against its lower half(0), testImages 1 and 2 in different lighting and different object 3
|
||||
//
|
||||
|
||||
Var
|
||||
src:array[0..4] of pIplImage;
|
||||
tmp:pIplImage;
|
||||
i:integer;
|
||||
size:TCvSize;
|
||||
width ,height ,halfheight :Integer;
|
||||
widthStep :Integer;
|
||||
p, sp:PByte;
|
||||
|
||||
hsv, h_plane,s_plane,v_plane:array[0..4] of pIplImage;
|
||||
,*planes[5][2];
|
||||
IplImage* hist_img[5];
|
||||
CvHistogram* hist[5];
|
||||
int h_bins = 8, s_bins = 8;
|
||||
int hist_size[] = begin h_bins, s_bins end;;
|
||||
float h_ranges[] = begin 0, 180 end;; // hue is [0,180]
|
||||
float s_ranges[] = begin 0, 255 end;;
|
||||
float* ranges[] = begin h_ranges, s_ranges end;;
|
||||
int scale = 10;
|
||||
|
||||
|
||||
begin
|
||||
try
|
||||
if ParamCount=5 then
|
||||
begin
|
||||
tmp := cvLoadImage(ParamStr(1).AsPAnsiChar, 1);
|
||||
if not Assigned(tmp) then
|
||||
begin //We're going to split this one in half
|
||||
WriteLn('Error on reading image 1, ',ParamStr(1));
|
||||
help();
|
||||
Halt(-1);
|
||||
end;
|
||||
//Parse the first image into two image halves divided halfway on y
|
||||
WriteLn('Getting size [[',tmp^.width,'] [',tmp^.height,']]');
|
||||
size := cvGetSize(tmp);
|
||||
WriteLn('Get size ',size.width,' ',size.height);
|
||||
width := size.width;
|
||||
height := size.height;
|
||||
halfheight := height shr 1;
|
||||
src[0] := cvCreateImage(cvSize(width,halfheight), 8, 3);
|
||||
src[1] := cvCreateImage(cvSize(width,halfheight), 8, 3);
|
||||
if src[0]^.widthStep <> tmp^.widthStep then
|
||||
begin
|
||||
WriteLn('Error, Withstep of alloated src doesn''t equal withStep of loaded image [',src[0]^.widthStep,' vs ',tmp^.widthStep,']'
|
||||
);
|
||||
help();
|
||||
Halt(-2);
|
||||
end;
|
||||
widthStep := tmp^.widthStep;
|
||||
p := tmp^.imageData;
|
||||
sp := src[0]^.imageData;
|
||||
for i:=0 to widthStep*halfheight-1 do
|
||||
begin//Top half
|
||||
sp^ = p^;
|
||||
Inc(sp);
|
||||
Inc(p);
|
||||
end;
|
||||
sp := src[1]^.imageData;
|
||||
for i:=0 to widthStep*halfheight-1 do
|
||||
begin//Bottom half
|
||||
sp^ = p^;
|
||||
Inc(sp);
|
||||
Inc(p);
|
||||
end;
|
||||
//LOAD THE OTHER THREE IMAGES
|
||||
for i := 2 to 4 do
|
||||
begin
|
||||
src[i]:=cvLoadImage(ParamStr(i).AsPAnsiChar, 1);
|
||||
if not Assigned(src[i]) then
|
||||
begin
|
||||
WriteLn('Error on reading image ',i,' ',ParamStr(i));
|
||||
help();
|
||||
Halt(-1);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Compute the HSV image, and decompose it into separate planes.
|
||||
//
|
||||
IplImage *hsv[5], *h_plane[5],*s_plane[5],*v_plane[5],*planes[5][2];
|
||||
IplImage* hist_img[5];
|
||||
CvHistogram* hist[5];
|
||||
int h_bins = 8, s_bins = 8;
|
||||
int hist_size[] = begin h_bins, s_bins end;;
|
||||
float h_ranges[] = begin 0, 180 end;; // hue is [0,180]
|
||||
float s_ranges[] = begin 0, 255 end;;
|
||||
float* ranges[] = begin h_ranges, s_ranges end;;
|
||||
int scale = 10;
|
||||
for(i = 0; i<5; ++i)begin
|
||||
hsv[i] = cvCreateImage( cvGetSize(src[i]), 8, 3 );
|
||||
cvCvtColor( src[i], hsv[i], CV_BGR2HSV );
|
||||
|
||||
h_plane[i] = cvCreateImage( cvGetSize(src[i]), 8, 1 );
|
||||
s_plane[i] = cvCreateImage( cvGetSize(src[i]), 8, 1 );
|
||||
v_plane[i] = cvCreateImage( cvGetSize(src[i]), 8, 1 );
|
||||
planes[i][0] = h_plane[i];
|
||||
planes[i][1] = s_plane[i];
|
||||
cvCvtPixToPlane( hsv[i], h_plane[i], s_plane[i], v_plane[i], 0 );
|
||||
// Build the histogram and compute its contents.
|
||||
//
|
||||
begin
|
||||
hist[i] = cvCreateHist(
|
||||
2,
|
||||
hist_size,
|
||||
CV_HIST_ARRAY,
|
||||
ranges,
|
||||
1
|
||||
);
|
||||
end;
|
||||
cvCalcHist( planes[i], hist[i], 0, 0 );
|
||||
cvNormalizeHist( hist[i], 1.0 );
|
||||
|
||||
|
||||
|
||||
// Create an image to use to visualize our histogram.
|
||||
//
|
||||
hist_img[i] = cvCreateImage(
|
||||
cvSize( h_bins * scale, s_bins * scale ),
|
||||
8,
|
||||
3
|
||||
);
|
||||
cvZero( hist_img[i] );
|
||||
|
||||
// populate our visualization with little gray squares.
|
||||
//
|
||||
float max_value = 0;
|
||||
float *fp,fval;
|
||||
cvGetMinMaxHistValue( hist[i], 0, &max_value, 0, 0 );
|
||||
|
||||
for( int h = 0; h < h_bins; h++ ) begin
|
||||
for( int s = 0; s < s_bins; s++ ) begin
|
||||
float bin_val = cvQueryHistValue_2D( hist[i], h, s );
|
||||
int intensity = cvRound( bin_val * 255 / max_value );
|
||||
cvRectangle(
|
||||
hist_img[i],
|
||||
cvPoint( h*scale, s*scale ),
|
||||
cvPoint( (h+1)*scale - 1, (s+1)*scale - 1),
|
||||
CV_RGB(intensity,intensity,intensity),
|
||||
CV_FILLED
|
||||
);
|
||||
end;
|
||||
end;
|
||||
end;//For the 5 images
|
||||
|
||||
//DISPLAY
|
||||
cvNamedWindow( 'Source0', 1 );
|
||||
cvShowImage( 'Source0', src[0] );
|
||||
cvNamedWindow( 'H-S Histogram0', 1 );
|
||||
cvShowImage( 'H-S Histogram0', hist_img[0] );
|
||||
|
||||
cvNamedWindow( 'Source1', 1 );
|
||||
cvShowImage( 'Source1', src[1] );
|
||||
cvNamedWindow( 'H-S Histogram1', 1 );
|
||||
cvShowImage( 'H-S Histogram1', hist_img[1] );
|
||||
|
||||
cvNamedWindow( 'Source2', 1 );
|
||||
cvShowImage( 'Source2', src[2] );
|
||||
cvNamedWindow( 'H-S Histogram2', 1 );
|
||||
cvShowImage( 'H-S Histogram2', hist_img[2] );
|
||||
|
||||
cvNamedWindow( 'Source3', 1 );
|
||||
cvShowImage( 'Source3', src[3] );
|
||||
cvNamedWindow( 'H-S Histogram3', 1 );
|
||||
cvShowImage( 'H-S Histogram3', hist_img[3] );
|
||||
|
||||
cvNamedWindow( 'Source4', 1 );
|
||||
cvShowImage( 'Source4', src[4] );
|
||||
cvNamedWindow( 'H-S Histogram4', 1 );
|
||||
cvShowImage( 'H-S Histogram4', hist_img[4] );
|
||||
|
||||
//Compare the histogram src0 vs 1, vs 2, vs 3, vs 4
|
||||
WriteLn('Comparison Corr Chi Intersect Bhat\n');
|
||||
for(i=1; i<5; ++i)begin//For histogram
|
||||
WriteLn('Hist[0] vs: Hist[%d]: ',i);
|
||||
for(int j=0; j<4; ++j) begin //For comparision type
|
||||
WriteLn('CmpMethod[%d]: %lf; ',j,cvCompareHist(hist[0],hist[i],j));
|
||||
end;
|
||||
WriteLn('\n');
|
||||
end;
|
||||
//Oi Vey, parse histogram to earth movers signatures
|
||||
// CvRNG rng_state = cvRNG(0xffffffff); //Tested random bins
|
||||
CvMat* sig[5];
|
||||
int numrows = h_bins*s_bins;
|
||||
int numcols = 3; //value,i,j
|
||||
for(i=0; i<5; ++i)begin
|
||||
sig[i] = cvCreateMat(numrows, 3, CV_32FC1);
|
||||
//fill it
|
||||
float sum = 0.0;
|
||||
for( int h = 0; h < h_bins; h++ ) begin
|
||||
for( int s = 0; s < s_bins; s++ ) begin
|
||||
float bin_val = cvQueryHistValue_2D( hist[i], h, s );
|
||||
cvSet2D(sig[i],h*s_bins + s,0,cvScalar(bin_val,bin_val,bin_val)); //Point weight
|
||||
cvSet2D(sig[i],h*s_bins + s,1,cvScalar(h)); //Coord 1
|
||||
cvSet2D(sig[i],h*s_bins + s,2,cvScalar(s)); //Coord 2
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
//Do EMD AND REPORT
|
||||
WriteLn('EMD: ');
|
||||
for(i=1; i<5; ++i)begin
|
||||
float emd = cvCalcEMD2(sig[0],sig[i],CV_DIST_L2);
|
||||
WriteLn('%f; \n',emd);
|
||||
end;
|
||||
WriteLn('\n');
|
||||
|
||||
cvWaitKey(0);
|
||||
end;
|
||||
else begin WriteLn('Error: Wrong number of arguments\n'); help();end;
|
||||
|
||||
|
||||
except
|
||||
on E: Exception do
|
||||
WriteLn(E.ClassName, ': ', E.Message);
|
||||
end;
|
||||
|
||||
end.
|
577
samples/LearningOpenCV_Code/ch7_ex7_3_expanded.dproj
Normal file
577
samples/LearningOpenCV_Code/ch7_ex7_3_expanded.dproj
Normal file
@ -0,0 +1,577 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{ED3E255B-A19B-4471-93E4-B3E9BE884F91}</ProjectGuid>
|
||||
<MainSource>ch7_ex7_3_expanded.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<TargetedPlatforms>1025</TargetedPlatforms>
|
||||
<AppType>Console</AppType>
|
||||
<FrameworkType>None</FrameworkType>
|
||||
<ProjectVersion>18.1</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)'=='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="'$(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>
|
||||
<Manifest_File>None</Manifest_File>
|
||||
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||
<DCC_ExeOutput>..\..\bin\$(Platform)</DCC_ExeOutput>
|
||||
<DCC_S>false</DCC_S>
|
||||
<DCC_N>false</DCC_N>
|
||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||
<VerInfo_Locale>1049</VerInfo_Locale>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_K>false</DCC_K>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
|
||||
<DCC_F>false</DCC_F>
|
||||
<SanitizedProjectName>ch7_ex7_3_expanded</SanitizedProjectName>
|
||||
<DCC_E>false</DCC_E>
|
||||
</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 & 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 & 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)'!=''">
|
||||
<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>
|
||||
<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_DebugInformation>0</DCC_DebugInformation>
|
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||
<DCC_Optimize>false</DCC_Optimize>
|
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_iOSDevice32)'!=''">
|
||||
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_iOSDevice64)'!=''">
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_iOSSimulator)'!=''">
|
||||
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<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>
|
||||
</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">ch7_ex7_3_expanded.dpr</Source>
|
||||
</Source>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k220.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
<Platforms>
|
||||
<Platform value="Android">False</Platform>
|
||||
<Platform value="iOSDevice32">False</Platform>
|
||||
<Platform value="iOSDevice64">True</Platform>
|
||||
<Platform value="iOSSimulator">False</Platform>
|
||||
<Platform value="OSX32">False</Platform>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">False</Platform>
|
||||
</Platforms>
|
||||
<Deployment Version="3">
|
||||
<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="$(BDS)\Redist\osx32\libcgsqlite3.dylib" Class="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="..\..\bin\Win32\ch7_ex7_3_expanded.exe" Configuration="Debug" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>ch7_ex7_3_expanded.exe</RemoteName>
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<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>
|
||||
<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="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Linux64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<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="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="ProjectiOSDeviceResourceRules"/>
|
||||
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<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>
|
@ -110,13 +110,13 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||
<VerInfo_Build>2</VerInfo_Build>
|
||||
<VerInfo_Build>3</VerInfo_Build>
|
||||
<DCC_MapFile>3</DCC_MapFile>
|
||||
<VerInfo_AutoIncVersion>true</VerInfo_AutoIncVersion>
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||
<DCC_ExeOutput>..\..\..\bin\$(Platform)</DCC_ExeOutput>
|
||||
<VerInfo_Keys>CompanyName=Mikhail Grigorev;FileDescription=LockWorkstation;FileVersion=1.0.0.2;InternalName=LockWorkstation;LegalCopyright=Mikhail Grigorev;LegalTrademarks=Mikhail Grigorev;OriginalFilename=LockWorkstation;ProductName=LockWorkstation;ProductVersion=1.0.0.0;Comments=www.im-history.ru</VerInfo_Keys>
|
||||
<VerInfo_Keys>CompanyName=Mikhail Grigorev;FileDescription=LockWorkstation;FileVersion=1.0.0.3;InternalName=LockWorkstation;LegalCopyright=Mikhail Grigorev;LegalTrademarks=Mikhail Grigorev;OriginalFilename=LockWorkstation;ProductName=LockWorkstation;ProductVersion=1.0.0.0;Comments=www.im-history.ru</VerInfo_Keys>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||
|
@ -15,7 +15,7 @@
|
||||
{$ENDIF}
|
||||
|
||||
{$POINTERMATH ON}
|
||||
{$DEFINE SAFELOADLIB}
|
||||
{.$DEFINE SAFELOADLIB}
|
||||
{$DEFINE USE_STUB_FOR_MISS_FUNC}
|
||||
|
||||
{$WARN SYMBOL_DEPRECATED OFF}
|
||||
|
@ -36,8 +36,8 @@ Uses
|
||||
|
||||
Type
|
||||
TInputArrayOfIplImage = TArray<pIplImage>; // InputArrayOfArrays
|
||||
TInputArrayOfMat = TArray<IMat>; // InputArrayOfArrays
|
||||
TInputArrayOfInteger = TArray<Integer>; // InputArray
|
||||
TInputArrayOfMat = TArray<IMat>; // InputArrayOfArrays
|
||||
TInputArrayOfInteger = TArray<Integer>; // InputArray
|
||||
|
||||
IFaceRecognizer = interface(IOCVCommon)
|
||||
['{199DE478-2C78-4347-B553-C062290C78D2}']
|
||||
@ -89,8 +89,8 @@ Type
|
||||
// CV_EXPORTS_W Ptr<FaceRecognizer> createFisherFaceRecognizer(int num_components = 0, double threshold = DBL_MAX);
|
||||
constructor createFisherFaceRecognizer(num_components: Integer = 0; threshold: double = DBL_MAX);
|
||||
// CV_EXPORTS_W Ptr<FaceRecognizer> createLBPHFaceRecognizer(int radius=1, int neighbors=8,int grid_x=8, int grid_y=8, double threshold = DBL_MAX);
|
||||
constructor createLBPHFaceRecognizer(radius: Integer = 1; neighbors: Integer = 8; grid_x: Integer = 8;
|
||||
grid_y: Integer = 8; threshold: double = DBL_MAX);
|
||||
constructor createLBPHFaceRecognizer(radius: Integer = 1; neighbors: Integer = 8; grid_x: Integer = 8; grid_y: Integer = 8;
|
||||
threshold: double = DBL_MAX);
|
||||
destructor Destroy; override;
|
||||
procedure train(src: TInputArrayOfIplImage; labels: TInputArrayOfInteger); overload;
|
||||
procedure train(src: TInputArrayOfMat; labels: TInputArrayOfInteger); overload;
|
||||
@ -107,7 +107,7 @@ Type
|
||||
{$IFDEF SAFELOADLIB}
|
||||
|
||||
type
|
||||
TInitModule_contrib = function():cbool; cdecl;
|
||||
TInitModule_contrib = function(): cbool; cdecl;
|
||||
|
||||
var
|
||||
InitModule_contrib: TInitModule_contrib;
|
||||
@ -117,7 +117,9 @@ function InitModule_contrib(): cbool; cdecl;
|
||||
|
||||
implementation
|
||||
|
||||
uses ocv.lib;
|
||||
uses
|
||||
ocv.utils,
|
||||
ocv.lib;
|
||||
|
||||
// CV_EXPORTS_W Ptr<FaceRecognizer> createEigenFaceRecognizer(int num_components = 0, double threshold = DBL_MAX);
|
||||
function Create_EigenFaceRecognizer(num_components: Integer = 0; threshold: double = DBL_MAX): TOpenCVClass; stdcall;
|
||||
@ -126,21 +128,17 @@ function Create_EigenFaceRecognizer(num_components: Integer = 0; threshold: doub
|
||||
function Create_FisherFaceRecognizer(num_components: Integer = 0; threshold: double = DBL_MAX): TOpenCVClass; stdcall;
|
||||
external opencv_classes_lib name '_Create_FisherFaceRecognizer@12';
|
||||
// CV_EXPORTS_W Ptr<FaceRecognizer> createLBPHFaceRecognizer(int radius=1, int neighbors=8,int grid_x=8, int grid_y=8, double threshold = DBL_MAX);
|
||||
function Create_LBPHFaceRecognizer(radius: Integer = 1; neighbors: Integer = 8; grid_x: Integer = 8;
|
||||
grid_y: Integer = 8; threshold: double = DBL_MAX): TOpenCVClass; stdcall;
|
||||
external opencv_classes_lib name '_Create_LBPHFaceRecognizer@24';
|
||||
function Create_LBPHFaceRecognizer(radius: Integer = 1; neighbors: Integer = 8; grid_x: Integer = 8; grid_y: Integer = 8; threshold: double = DBL_MAX)
|
||||
: TOpenCVClass; stdcall; external opencv_classes_lib name '_Create_LBPHFaceRecognizer@24';
|
||||
|
||||
procedure DestroyFaceRecognizer(const M: TOpenCVClass); stdcall;
|
||||
external opencv_classes_lib name '_DestroyFaceRecognizer@4';
|
||||
procedure FaceRecognizerLoad(const M: TOpenCVClass; filename: PAnsiChar); stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerLoad@8';
|
||||
procedure FaceRecognizerSave(const M: TOpenCVClass; filename: PAnsiChar); stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerSave@8';
|
||||
procedure DestroyFaceRecognizer(const M: TOpenCVClass); stdcall; external opencv_classes_lib name '_DestroyFaceRecognizer@4';
|
||||
procedure FaceRecognizerLoad(const M: TOpenCVClass; filename: PAnsiChar); stdcall; external opencv_classes_lib name '_FaceRecognizerLoad@8';
|
||||
procedure FaceRecognizerSave(const M: TOpenCVClass; filename: PAnsiChar); stdcall; external opencv_classes_lib name '_FaceRecognizerSave@8';
|
||||
|
||||
function FaceRecognizerPredict(const M: TOpenCVClass; scr: pIplImage): Integer; stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerPredict1@8'; overload;
|
||||
procedure FaceRecognizerPredict(const M: TOpenCVClass; scr: pIplImage; var _label: Integer; var confidence: double);
|
||||
stdcall; external opencv_classes_lib name '_FaceRecognizerPredict2@16'; overload;
|
||||
procedure FaceRecognizerPredict(const M: TOpenCVClass; scr: pIplImage; var _label: Integer; var confidence: double); stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerPredict2@16'; overload;
|
||||
|
||||
procedure FaceRecognizerTrain(const M: TOpenCVClass; const n: Integer; scr: Pointer; labels: Pointer); stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerTrain@16'; overload;
|
||||
@ -149,10 +147,9 @@ procedure FaceRecognizerTrainMat(const M: TOpenCVClass; const n: Integer; scr: P
|
||||
procedure FaceRecognizerUpdate(const M: TOpenCVClass; const n: Integer; scr: Pointer; labels: Pointer); stdcall;
|
||||
external opencv_classes_lib name '_FaceRecognizerUpdate@16';
|
||||
|
||||
procedure _DestroyFaceRecognizer(const E: TOpenCVClass); stdcall;
|
||||
external opencv_classes_lib name '_DestroyFaceRecognizer@4';
|
||||
procedure _DestroyFaceRecognizer(const E: TOpenCVClass); stdcall; external opencv_classes_lib name '_DestroyFaceRecognizer@4';
|
||||
|
||||
{ TFaceRecognizer }
|
||||
{ TFaceRecognizer }
|
||||
|
||||
constructor TFaceRecognizer.createEigenFaceRecognizer(num_components: Integer; threshold: double);
|
||||
begin
|
||||
@ -204,10 +201,10 @@ end;
|
||||
procedure TFaceRecognizer.train(src: TInputArrayOfMat; labels: TInputArrayOfInteger);
|
||||
Var
|
||||
src_mat: TArray<TOpenCVClass>;
|
||||
i : Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
SetLength(src_mat, Length(src));
|
||||
for i := 0 to High(src_mat) do
|
||||
for i := 0 to High(src_mat) do
|
||||
src_mat[i] := src[i]._InternalData;
|
||||
FaceRecognizerTrainMat(FData, Length(src), @src_mat[0], @labels[0]);
|
||||
end;
|
||||
|
@ -33,8 +33,7 @@ Uses
|
||||
ocv.cls.types,
|
||||
ocv.core.types_c,
|
||||
ocv.highgui_c,
|
||||
ocv.cls.core,
|
||||
ocv.cls.mat;
|
||||
ocv.cls.core;
|
||||
|
||||
const
|
||||
// Camera API
|
||||
@ -362,6 +361,7 @@ function imread(const FileName: string; flag: integer = 1): IMat;
|
||||
implementation
|
||||
|
||||
Uses
|
||||
ocv.utils,
|
||||
ocv.lib;
|
||||
|
||||
// ------------------------------ VideoCapture ------------------------------
|
||||
|
@ -46,11 +46,10 @@
|
||||
*************************************************************************************************
|
||||
*)
|
||||
|
||||
//
|
||||
{$I OpenCV.inc}
|
||||
//
|
||||
unit ocv.imgproc_c;
|
||||
|
||||
{$I OpenCV.inc}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
@ -59,13 +58,33 @@ uses
|
||||
|
||||
(* ********************** Background statistics accumulation **************************** *)
|
||||
|
||||
(* Adds image to accumulator *)
|
||||
// CVAPI(procedure)cvAcc(var Adds squared image to accumulator * )
|
||||
// CVAPI(procedure)cvSquareAcc(CvArr * image: v1: 0)): CvArr; (var sqsum: CvArr; var Adds a product of two images to accumulator * )
|
||||
// CVAPI(procedure)cvMultiplyAcc(CvArr * image1: unction mask CV_DEFAULT(v1: 0)): CvArr; (;
|
||||
// var image2: CvArr; var acc: CvArr; var Adds image to accumulator with weights: acc = acc * (1 - alpha) + image * alpha * )
|
||||
// CVAPI(procedure)cvRunningAvg(CvArr * image: unction mask CV_DEFAULT(v1: 0)): CvArr; (;
|
||||
// var acc: CvArr;alpha: Double;
|
||||
(*
|
||||
/* Adds image to accumulator */
|
||||
CVAPI(void) cvAcc( const CvArr* image, CvArr* sum,
|
||||
const CvArr* mask CV_DEFAULT(NULL) );
|
||||
*)
|
||||
procedure cvAcc(const image: PCvArr; sum: PCvArr; const mask: PCvArr = nil); cdecl;
|
||||
|
||||
(*
|
||||
/* Adds squared image to accumulator */
|
||||
CVAPI(void) cvSquareAcc( const CvArr* image, CvArr* sqsum,
|
||||
const CvArr* mask CV_DEFAULT(NULL) );
|
||||
*)
|
||||
procedure cvSquareAcc(const image: PCvArr; sqsum: PCvArr; const mask: PCvArr = nil); cdecl;
|
||||
|
||||
(*
|
||||
/* Adds a product of two images to accumulator */
|
||||
CVAPI(void) cvMultiplyAcc( const CvArr* image1, const CvArr* image2, CvArr* acc,
|
||||
const CvArr* mask CV_DEFAULT(NULL) );
|
||||
*)
|
||||
procedure cvMultiplyAcc(const image1: PCvArr; const image2: PCvArr; acc: PCvArr; const mask: PCvArr = nil); cdecl;
|
||||
|
||||
(*
|
||||
/* Adds image to accumulator with weights: acc = acc*(1-alpha) + image*alpha */
|
||||
CVAPI(void) cvRunningAvg( const CvArr* image, CvArr* acc, double alpha,
|
||||
const CvArr* mask CV_DEFAULT(NULL) );
|
||||
*)
|
||||
procedure cvRunningAvg(const image: PCvArr; acc: PCvArr; alpha: Double; const mask: PCvArr = nil); cdecl;
|
||||
|
||||
// ******************************* image Processing *******************************
|
||||
|
||||
@ -103,8 +122,8 @@ procedure cvSmooth(
|
||||
{ } smoothtype: Integer = CV_GAUSSIAN;
|
||||
{ } size1: Integer = 3;
|
||||
{ } size2: Integer = 0;
|
||||
{ } sigma1: double = 0;
|
||||
{ } sigma2: double = 0); cdecl;
|
||||
{ } sigma1: Double = 0;
|
||||
{ } sigma2: Double = 0); cdecl;
|
||||
|
||||
(*
|
||||
/* Convolves the image with the kernel */
|
||||
@ -113,9 +132,8 @@ procedure cvSmooth(
|
||||
CvPoint anchor CV_DEFAULT(cvPoint(-1,-1)));
|
||||
*)
|
||||
|
||||
procedure cvFilter2D(const src: pCvArr; dst: pCvArr; const kernel: pCvMat;
|
||||
anchor: TCvPoint { =CV_DEFAULT(cvPoint(-1,-1)) } ); cdecl; overload;
|
||||
procedure cvFilter2D(const src: pCvArr; dst: pCvArr; const kernel: pCvMat); overload;
|
||||
procedure cvFilter2D(const src: PCvArr; dst: PCvArr; const kernel: pCvMat; anchor: TCvPoint { =CV_DEFAULT(cvPoint(-1,-1)) } ); cdecl; overload;
|
||||
procedure cvFilter2D(const src: PCvArr; dst: PCvArr; const kernel: pCvMat); overload;
|
||||
|
||||
{
|
||||
Finds integral image: SUM(X,Y) = sum(x<X,y<Y)I(x,y)
|
||||
@ -162,8 +180,8 @@ procedure cvPyrUp(const src: pIplImage; dst: pIplImage; filter: Integer = CV_GAU
|
||||
int calc CV_DEFAULT(1),
|
||||
int filter CV_DEFAULT(CV_GAUSSIAN_5x5) );
|
||||
*)
|
||||
function cvCreatePyramid(const img: pCvArr; extra_layers: Integer; rate: double; const layer_sizes: pCvSize = nil;
|
||||
bufarr: pCvArr = nil; calc: Integer = 1; filter: Integer = CV_GAUSSIAN_5x5): ppCvMat; cdecl;
|
||||
function cvCreatePyramid(const img: PCvArr; extra_layers: Integer; rate: Double; const layer_sizes: pCvSize = nil; bufarr: PCvArr = nil;
|
||||
calc: Integer = 1; filter: Integer = CV_GAUSSIAN_5x5): ppCvMat; cdecl;
|
||||
(*
|
||||
Releases pyramid
|
||||
|
||||
@ -178,7 +196,7 @@ procedure cvReleasePyramid(var pyramid: ppCvMat; extra_layers: Integer); cdecl;
|
||||
double sp, double sr, int max_level CV_DEFAULT(1),
|
||||
CvTermCriteria termcrit CV_DEFAULT(cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,5,1)));
|
||||
*)
|
||||
procedure cvPyrMeanShiftFiltering(const src: pCvArr; dst: pCvArr; sp: double; sr: double; max_level: Integer { = 1 };
|
||||
procedure cvPyrMeanShiftFiltering(const src: PCvArr; dst: PCvArr; sp: Double; sr: Double; max_level: Integer { = 1 };
|
||||
termcrit: TCvTermCriteria { = CV_DEFAULT(cvTermCriteria(CV_TERMCRIT_ITER + CV_TERMCRIT_EPS, 5, 1)) } ); cdecl;
|
||||
|
||||
(*
|
||||
@ -186,7 +204,7 @@ procedure cvPyrMeanShiftFiltering(const src: pCvArr; dst: pCvArr; sp: double; sr
|
||||
|
||||
CVAPI(void) cvWatershed( const CvArr* image, CvArr* markers );
|
||||
*)
|
||||
procedure cvWatershed(const image: pCvArr; markers: pCvArr); cdecl;
|
||||
procedure cvWatershed(const image: PCvArr; markers: PCvArr); cdecl;
|
||||
|
||||
{
|
||||
/* Calculates an image derivative using generalized Sobel
|
||||
@ -200,8 +218,7 @@ procedure cvWatershed(const image: pCvArr; markers: pCvArr); cdecl;
|
||||
int yorder,
|
||||
int aperture_size CV_DEFAULT(3));
|
||||
}
|
||||
procedure cvSobel(const src: pIplImage; dst: pIplImage; xorder: Integer; yorder: Integer;
|
||||
aperture_size: Integer = 3); cdecl;
|
||||
procedure cvSobel(const src: pIplImage; dst: pIplImage; xorder: Integer; yorder: Integer; aperture_size: Integer = 3); cdecl;
|
||||
|
||||
{
|
||||
/* Calculates the image Laplacian: (d2/dx + d2/dy)I */
|
||||
@ -232,8 +249,8 @@ procedure cvResize(const src: pIplImage; dst: pIplImage; interpolation: Integer
|
||||
int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
|
||||
CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
|
||||
}
|
||||
procedure cvWarpAffine(const src: pIplImage; dst: pIplImage; const map_matrix: pCvMat;
|
||||
flags: Integer { = CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS }; fillval: TCvScalar { = cvScalarAll(0) } ); cdecl;
|
||||
procedure cvWarpAffine(const src: pIplImage; dst: pIplImage; const map_matrix: pCvMat; flags: Integer { = CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS };
|
||||
fillval: TCvScalar { = cvScalarAll(0) } ); cdecl;
|
||||
|
||||
// * Computes affine transform matrix for mapping src[i] to dst[i] (i=0,1,2) */
|
||||
// CVAPI(CvMat*) cvGetAffineTransform( const CvPoint2D32f * src,
|
||||
@ -245,7 +262,7 @@ function cvGetAffineTransform(const src: pCvPoint2D32f; const dst: pCvPoint2D32f
|
||||
(* Computes rotation_matrix matrix *)
|
||||
CVAPI(CvMat)cv2DRotationMatrix(CvPoint2D32f center, Double angle, Double scale, CvMat * map_matrix);
|
||||
}
|
||||
function cv2DRotationMatrix(center: TCvPoint2D32f; angle: double; scale: double; map_matrix: pCvMat): pCvMat; cdecl;
|
||||
function cv2DRotationMatrix(center: TCvPoint2D32f; angle: Double; scale: Double; map_matrix: pCvMat): pCvMat; cdecl;
|
||||
|
||||
{
|
||||
/* Warps image with perspective (projective) transform */
|
||||
@ -253,8 +270,8 @@ function cv2DRotationMatrix(center: TCvPoint2D32f; angle: double; scale: double;
|
||||
int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
|
||||
CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
|
||||
}
|
||||
procedure cvWarpPerspective(const src: pIplImage; dst: pIplImage; const map_matrix: pCvMat;
|
||||
flags: Integer { =CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS }; fillval: TCvScalar { =cvScalarAll(0) } ); cdecl;
|
||||
procedure cvWarpPerspective(const src: pIplImage; dst: pIplImage; const map_matrix: pCvMat; flags: Integer { =CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS };
|
||||
fillval: TCvScalar { =cvScalarAll(0) } ); cdecl;
|
||||
{
|
||||
/* Computes perspective transform matrix for mapping src[i] to dst[i] (i=0,1,2,3) */
|
||||
CVAPI(CvMat*) cvGetPerspectiveTransform( const CvPoint2D32f* src,
|
||||
@ -262,8 +279,7 @@ procedure cvWarpPerspective(const src: pIplImage; dst: pIplImage; const map_matr
|
||||
CvMat* map_matrix );
|
||||
|
||||
}
|
||||
function cvGetPerspectiveTransform(const src: pCvPoint2D32f; const dst: pCvPoint2D32f; map_matrix: pCvMat)
|
||||
: pCvMat; cdecl;
|
||||
function cvGetPerspectiveTransform(const src: pCvPoint2D32f; const dst: pCvPoint2D32f; map_matrix: pCvMat): pCvMat; cdecl;
|
||||
{
|
||||
/* Performs generic geometric transformation using the specified coordinate maps */
|
||||
CVAPI(void) cvRemap(
|
||||
@ -274,15 +290,22 @@ function cvGetPerspectiveTransform(const src: pCvPoint2D32f; const dst: pCvPoint
|
||||
int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS),
|
||||
CvScalar fillval CV_DEFAULT(cvScalarAll(0)) );
|
||||
}
|
||||
procedure cvRemap(const src: pCvArr; dst: pCvArr; const mapx: pCvArr; const mapy: pCvArr;
|
||||
flags: Integer { =CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS }; fillval: TCvScalar { =cvScalarAll(0) }
|
||||
procedure cvRemap(const src: PCvArr; dst: PCvArr; const mapx: PCvArr; const mapy: PCvArr; flags: Integer { =CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS };
|
||||
fillval: TCvScalar { =cvScalarAll(0) }
|
||||
); cdecl;
|
||||
|
||||
(*
|
||||
/* Converts mapx & mapy from floating-point to integer formats for cvRemap */
|
||||
CVAPI(void) cvConvertMaps( const CvArr* mapx, const CvArr* mapy,
|
||||
CvArr* mapxy, CvArr* mapalpha );
|
||||
*)
|
||||
procedure cvConvertMaps(const mapx: PCvArr; const mapy: PCvArr; mapxy: PCvArr; mapalpha: PCvArr); cdecl;
|
||||
|
||||
/// * Performs forward or inverse log-polar image transform */
|
||||
// CVAPI(void) cvLogPolar( const CvArr* src, CvArr* dst,
|
||||
// CvPoint2D32f center, double M,
|
||||
// int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
|
||||
procedure cvLogPolar(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f; M: double;
|
||||
procedure cvLogPolar(const src: PCvArr; dst: PCvArr; center: TCvPoint2D32f; M: Double;
|
||||
flags: Integer = CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS); cdecl;
|
||||
|
||||
/// * Performs forward or inverse linear-polar image transform */
|
||||
@ -290,7 +313,7 @@ procedure cvLogPolar(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f; M: d
|
||||
// CvPoint2D32f center, double maxRadius,
|
||||
// int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));
|
||||
|
||||
procedure cvLinearPolar(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f; maxRadius: double;
|
||||
procedure cvLinearPolar(const src: PCvArr; dst: PCvArr; center: TCvPoint2D32f; maxRadius: Double;
|
||||
flags: Integer = CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS); cdecl;
|
||||
|
||||
// * Transforms the input image to compensate lens distortion */
|
||||
@ -298,10 +321,10 @@ procedure cvLinearPolar(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f; m
|
||||
// const CvMat* camera_matrix,
|
||||
// const CvMat* distortion_coeffs,
|
||||
// const CvMat* new_camera_matrix CV_DEFAULT(0) );
|
||||
procedure cvUndistort2(const src: pCvArr; dst: pCvArr; const camera_matrix: pCvArr; const distortion_coeffs: pCvArr;
|
||||
const new_camera_matrix: pCvArr = nil); cdecl;
|
||||
procedure cvUndistort2(const src: PCvArr; dst: PCvArr; const camera_matrix: PCvArr; const distortion_coeffs: PCvArr;
|
||||
const new_camera_matrix: PCvArr = nil); cdecl;
|
||||
|
||||
{
|
||||
(*
|
||||
/* Computes transformation map from intrinsic camera parameters
|
||||
that can used by cvRemap */
|
||||
CVAPI(void) cvInitUndistortMap(
|
||||
@ -309,74 +332,85 @@ procedure cvUndistort2(const src: pCvArr; dst: pCvArr; const camera_matrix: pCvA
|
||||
const CvMat* distortion_coeffs,
|
||||
CvArr* mapx,
|
||||
CvArr* mapy );
|
||||
}
|
||||
procedure cvInitUndistortMap(const camera_matrix: pCvMat; const distortion_coeffs: pCvMat; mapx: pCvArr;
|
||||
mapy: pCvArr); cdecl;
|
||||
*)
|
||||
procedure cvInitUndistortMap(const camera_matrix: pCvMat; const distortion_coeffs: pCvMat; mapx: PCvArr; mapy: PCvArr); cdecl;
|
||||
|
||||
(*
|
||||
/* Computes undistortion+rectification map for a head of stereo camera */
|
||||
CVAPI(void) cvInitUndistortRectifyMap( const CvMat* camera_matrix,
|
||||
const CvMat* dist_coeffs,
|
||||
const CvMat *R, const CvMat* new_camera_matrix,
|
||||
CvArr* mapx, CvArr* mapy );
|
||||
*)
|
||||
|
||||
// (* Computes undistortion+rectification map for a head of stereo camera *)
|
||||
// CVAPI(
|
||||
// procedure)cvInitUndistortRectifyMap(var camera_matrix: CvMat; var dist_coeffs: vMat;
|
||||
// var = new_camera_matrix: onst CvMat; var } CvArr * mapx: {$EXTERNALSYM CvMat;
|
||||
// var mapy: CvArr);
|
||||
procedure cvInitUndistortRectifyMap(const camera_matrix: pCvMat; const dist_coeffs: pCvMat; const R: pCvMat; const new_camera_matrix: pCvMat;
|
||||
mapx: PCvArr; mapy: PCvArr); cdecl;
|
||||
|
||||
// (* Computes the original (undistorted) feature coordinates
|
||||
// from the observed (distorted) coordinates *)
|
||||
// CVAPI(void) cvUndistortPoints( const CvMat* src, CvMat* dst,
|
||||
// const CvMat* camera_matrix,
|
||||
// const CvMat* dist_coeffs,
|
||||
// const CvMat* R CV_DEFAULT(0),
|
||||
// const CvMat* P CV_DEFAULT(0));
|
||||
procedure cvUndistortPoints(const src: pCvMat; dst: pCvMat; const camera_matrix: pCvMat; const dist_coeffs: pCvMat;
|
||||
const R: pCvMat = nil; const P: pCvMat = nil); cdecl;
|
||||
(*
|
||||
/* Computes the original (undistorted) feature coordinates
|
||||
from the observed (distorted) coordinates */
|
||||
CVAPI(void) cvUndistortPoints( const CvMat* src, CvMat* dst,
|
||||
const CvMat* camera_matrix,
|
||||
const CvMat* dist_coeffs,
|
||||
const CvMat* R CV_DEFAULT(0),
|
||||
const CvMat* P CV_DEFAULT(0));
|
||||
*)
|
||||
|
||||
procedure cvUndistortPoints(const src: pCvMat; dst: pCvMat; const camera_matrix: pCvMat; const dist_coeffs: pCvMat; const R: pCvMat = nil;
|
||||
const P: pCvMat = nil); cdecl;
|
||||
|
||||
// * creates structuring element used for morphological operations */
|
||||
// CVAPI(IplConvKernel*) cvCreateStructuringElementEx(
|
||||
// int cols, int rows, int anchor_x, int anchor_y,
|
||||
// int shape, int* values CV_DEFAULT(NULL) );
|
||||
function cvCreateStructuringElementEx(cols: Integer; rows: Integer; anchor_x: Integer; anchor_y: Integer;
|
||||
shape: Integer; values: PInteger = nil): pIplConvKernel; cdecl;
|
||||
function cvCreateStructuringElementEx(cols: Integer; rows: Integer; anchor_x: Integer; anchor_y: Integer; shape: Integer; values: PInteger = nil)
|
||||
: pIplConvKernel; cdecl;
|
||||
|
||||
// (* releases structuring element *)
|
||||
// CVAPI(procedure) cvReleaseStructuringElement( element: array of IplConvKernel);
|
||||
// CVAPI(void) cvReleaseStructuringElement( IplConvKernel** element );
|
||||
procedure cvReleaseStructuringElement(Var element: pIplConvKernel); cdecl;
|
||||
|
||||
{ Performs complex morphological transformation }
|
||||
// CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst,
|
||||
// CvArr* temp, IplConvKernel* element,
|
||||
// int operation, int iterations CV_DEFAULT(1) );
|
||||
procedure cvMorphologyEx(const src: pIplImage; dst: pIplImage; temp: pIplImage; element: pIplConvKernel;
|
||||
operation: Integer; iterations: Integer = 1); cdecl;
|
||||
|
||||
// * Calculates all spatial and central moments up to the 3rd order */
|
||||
// CVAPI(void) cvMoments( const CvArr* arr, CvMoments* moments, int binary CV_DEFAULT(0));
|
||||
procedure cvMoments(const arr: pCvArr; moments: pCvMoments; binary: Integer = 0); cdecl;
|
||||
|
||||
{ erodes input image (applies minimum filter) one or more times.
|
||||
If element pointer is NULL, 3x3 rectangular element is used }
|
||||
// CVAPI(void) cvErode( const CvArr* src, CvArr* dst,
|
||||
// IplConvKernel* element CV_DEFAULT(NULL),
|
||||
// int iterations CV_DEFAULT(1) );
|
||||
procedure cvErode(const src: pIplImage; dst: pIplImage; element: pIplConvKernel = nil; iterations: Integer = 1); cdecl;
|
||||
|
||||
{ dilates input image (applies maximum filter) one or more times.
|
||||
If element pointer is NULL, 3x3 rectangular element is used }
|
||||
// CVAPI(void) cvDilate( const CvArr* src, CvArr* dst,
|
||||
// IplConvKernel* element CV_DEFAULT(NULL),
|
||||
// int iterations CV_DEFAULT(1) );
|
||||
procedure cvDilate(const src: pIplImage; dst: pIplImage; element: pIplConvKernel = nil; iterations: Integer = 1); cdecl;
|
||||
|
||||
// * Retrieve particular spatial, central or normalized central moments */
|
||||
// CVAPI(double) cvGetSpatialMoment( CvMoments* moments, int x_order, int y_order );
|
||||
function cvGetSpatialMoment(moments: pCvMoments; x_order, y_order: Integer): double; cdecl;
|
||||
// CVAPI(double) cvGetCentralMoment( CvMoments* moments, int x_order, int y_order );
|
||||
function cvGetCentralMoment(moments: pCvMoments; x_order, y_order: Integer): double; cdecl;
|
||||
(*
|
||||
CVAPI(double) cvGetNormalizedCentralMoment( CvMoments* moments,
|
||||
int x_order, int y_order );
|
||||
/* erodes input image (applies minimum filter) one or more times.
|
||||
If element pointer is NULL, 3x3 rectangular element is used */
|
||||
CVAPI(void) cvErode( const CvArr* src, CvArr* dst,
|
||||
IplConvKernel* element CV_DEFAULT(NULL),
|
||||
int iterations CV_DEFAULT(1) );
|
||||
*)
|
||||
function cvGetNormalizedCentralMoment(moments: pCvMoments; x_order: Integer; y_order: Integer): double; cdecl;
|
||||
procedure cvErode(const src: PCvArr; dst: PCvArr; element: pIplConvKernel = nil; iterations: Integer = 1); cdecl;
|
||||
|
||||
(*
|
||||
/* dilates input image (applies maximum filter) one or more times.
|
||||
If element pointer is NULL, 3x3 rectangular element is used */
|
||||
CVAPI(void) cvDilate( const CvArr* src, CvArr* dst,
|
||||
IplConvKernel* element CV_DEFAULT(NULL),
|
||||
int iterations CV_DEFAULT(1) );
|
||||
*)
|
||||
procedure cvDilate(const src: PCvArr; dst: PCvArr; element: pIplConvKernel = nil; iterations: Integer = 1); cdecl;
|
||||
|
||||
(*
|
||||
/* Performs complex morphological transformation */
|
||||
CVAPI(void) cvMorphologyEx( const CvArr* src, CvArr* dst,
|
||||
CvArr* temp, IplConvKernel* element,
|
||||
int operation, int iterations CV_DEFAULT(1) );
|
||||
*)
|
||||
procedure cvMorphologyEx(const src: pIplImage; dst: pIplImage; temp: pIplImage; element: pIplConvKernel; operation: Integer;
|
||||
iterations: Integer = 1); cdecl;
|
||||
|
||||
(*
|
||||
/* Calculates all spatial and central moments up to the 3rd order */
|
||||
CVAPI(void) cvMoments( const CvArr* arr, CvMoments* moments, int binary CV_DEFAULT(0));
|
||||
*)
|
||||
procedure cvMoments(const arr: PCvArr; moments: pCvMoments; binary: Integer = 0); cdecl;
|
||||
|
||||
(* /* Retrieve particular spatial, central or normalized central moments */
|
||||
CVAPI(double) cvGetSpatialMoment( CvMoments* moments, int x_order, int y_order ); *)
|
||||
function cvGetSpatialMoment(moments: pCvMoments; x_order, y_order: Integer): Double; cdecl;
|
||||
// CVAPI(double) cvGetCentralMoment( CvMoments* moments, int x_order, int y_order );
|
||||
function cvGetCentralMoment(moments: pCvMoments; x_order, y_order: Integer): Double; cdecl;
|
||||
// CVAPI(double) cvGetNormalizedCentralMoment( CvMoments* moments, int x_order, int y_order );
|
||||
function cvGetNormalizedCentralMoment(moments: pCvMoments; x_order: Integer; y_order: Integer): Double; cdecl;
|
||||
(*
|
||||
Calculates 7 Hu's invariants from precalculated spatial and central moments
|
||||
|
||||
@ -392,8 +426,7 @@ procedure cvGetHuMoments(moments: pCvMoments; hu_moments: pCvHuMoments); cdecl;
|
||||
CVAPI(int) cvSampleLine( const CvArr* image, CvPoint pt1, CvPoint pt2, void* buffer,
|
||||
int connectivity CV_DEFAULT(8));
|
||||
*)
|
||||
function cvSampleLine(const image: pCvArr; pt1: TCvPoint; pt2: TCvPoint; buffer: Pointer; connectivity: Integer = 8)
|
||||
: Integer; cdecl;
|
||||
function cvSampleLine(const image: PCvArr; pt1: TCvPoint; pt2: TCvPoint; buffer: Pointer; connectivity: Integer = 8): Integer; cdecl;
|
||||
(*
|
||||
Retrieves the rectangular image region with specified center from the input array.
|
||||
dst(x,y) <- src(x + center.x - dst_width/2, y + center.y - dst_height/2).
|
||||
@ -401,7 +434,7 @@ function cvSampleLine(const image: pCvArr; pt1: TCvPoint; pt2: TCvPoint; buffer:
|
||||
|
||||
CVAPI(void) cvGetRectSubPix( const CvArr* src, CvArr* dst, CvPoint2D32f center );
|
||||
*)
|
||||
procedure cvGetRectSubPix(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f); cdecl;
|
||||
procedure cvGetRectSubPix(const src: PCvArr; dst: PCvArr; center: TCvPoint2D32f); cdecl;
|
||||
(*
|
||||
Retrieves quadrangle from the input array.
|
||||
matrixarr = ( a11 a12 | b1 ) dst(x,y) <- src(A[x y]' + b)
|
||||
@ -411,7 +444,7 @@ procedure cvGetRectSubPix(const src: pCvArr; dst: pCvArr; center: TCvPoint2D32f)
|
||||
CVAPI(void) cvGetQuadrangleSubPix( const CvArr* src, CvArr* dst,
|
||||
const CvMat* map_matrix );
|
||||
*)
|
||||
procedure cvGetQuadrangleSubPix(const src: pCvArr; dst: pCvArr; const map_matrix: pCvMat); cdecl;
|
||||
procedure cvGetQuadrangleSubPix(const src: PCvArr; dst: PCvArr; const map_matrix: pCvMat); cdecl;
|
||||
(*
|
||||
Measures similarity between template and overlapped windows in the source image
|
||||
and fills the resultant image with the measurements
|
||||
@ -419,7 +452,7 @@ procedure cvGetQuadrangleSubPix(const src: pCvArr; dst: pCvArr; const map_matrix
|
||||
CVAPI(void) cvMatchTemplate( const CvArr* image, const CvArr* templ,
|
||||
CvArr* result, int method );
|
||||
*)
|
||||
procedure cvMatchTemplate(const image: pCvArr; const templ: pCvArr; result: pCvArr; method: Integer); cdecl;
|
||||
procedure cvMatchTemplate(const image: PCvArr; const templ: PCvArr; result: PCvArr; method: Integer); cdecl;
|
||||
|
||||
(*
|
||||
Computes earth mover distance between
|
||||
@ -434,9 +467,8 @@ procedure cvMatchTemplate(const image: pCvArr; const templ: pCvArr; result: pCvA
|
||||
float* lower_bound CV_DEFAULT(NULL),
|
||||
void* userdata CV_DEFAULT(NULL));
|
||||
*)
|
||||
function cvCalcEMD2(const signature1: pCvArr; const signature2: pCvArr; distance_type: Integer;
|
||||
distance_func: TCvDistanceFunction = nil; const cost_matrix: pCvArr = nil; flow: pCvArr = nil;
|
||||
lower_bound: pfloat = nil; userdata: Pointer = nil): float; cdecl;
|
||||
function cvCalcEMD2(const signature1: PCvArr; const signature2: PCvArr; distance_type: Integer; distance_func: TCvDistanceFunction = nil;
|
||||
const cost_matrix: PCvArr = nil; flow: PCvArr = nil; lower_bound: pfloat = nil; userdata: Pointer = nil): float; cdecl;
|
||||
|
||||
// ****************************************************************************************
|
||||
// * Contours retrieving *
|
||||
@ -548,9 +580,8 @@ function cvFindContours(
|
||||
// int mode CV_DEFAULT(CV_RETR_LIST),
|
||||
// int method CV_DEFAULT(CV_CHAIN_APPROX_SIMPLE),
|
||||
// CvPoint offset CV_DEFAULT(cvPoint(0,0)));
|
||||
function cvStartFindContours(image: pCvArr; storage: pCvMemStorage; header_size: Integer { =sizeof(TCvContour)) };
|
||||
mode: Integer { = CV_RETR_LIST }; method: Integer { =CV_CHAIN_APPROX_SIMPLE }; offset: TCvPoint { =cvPoint(0,0) } )
|
||||
: pCvContourScanner; cdecl;
|
||||
function cvStartFindContours(image: PCvArr; storage: pCvMemStorage; header_size: Integer { =sizeof(TCvContour)) }; mode: Integer { = CV_RETR_LIST };
|
||||
method: Integer { =CV_CHAIN_APPROX_SIMPLE }; offset: TCvPoint { =cvPoint(0,0) } ): pCvContourScanner; cdecl;
|
||||
|
||||
// * Retrieves next contour */
|
||||
// CVAPI(CvSeq*) cvFindNextContour( CvContourScanner scanner );
|
||||
@ -573,8 +604,8 @@ function cvEndFindContours(Var scanner: pCvContourScanner): pCvSeq; cdecl;
|
||||
int minimal_perimeter CV_DEFAULT(0),
|
||||
int recursive CV_DEFAULT(0));
|
||||
*)
|
||||
function cvApproxChains(src_seq: pCvSeq; storage: pCvMemStorage; method: Integer = CV_CHAIN_APPROX_SIMPLE;
|
||||
parameter: double = 0; minimal_perimeter: Integer = 0; recursive: Integer = 0): pCvSeq; cdecl;
|
||||
function cvApproxChains(src_seq: pCvSeq; storage: pCvMemStorage; method: Integer = CV_CHAIN_APPROX_SIMPLE; parameter: Double = 0;
|
||||
minimal_perimeter: Integer = 0; recursive: Integer = 0): pCvSeq; cdecl;
|
||||
(*
|
||||
Initializes Freeman chain reader.
|
||||
The reader is used to iteratively get coordinates of all the chain points.
|
||||
@ -609,7 +640,7 @@ function cvApproxPoly(
|
||||
{ } header_size: Integer;
|
||||
{ } storage: pCvMemStorage;
|
||||
{ } method: Integer;
|
||||
{ } eps: double;
|
||||
{ } eps: Double;
|
||||
{ } recursive: Integer = 0): pCvSeq; cdecl;
|
||||
|
||||
(*
|
||||
@ -619,8 +650,7 @@ function cvApproxPoly(
|
||||
int is_closed CV_DEFAULT(-1));
|
||||
*)
|
||||
|
||||
function cvArcLength(const curve: Pointer; slice: TCvSlice { = CV_WHOLE_SEQ }; is_closed: Integer { = 1 } )
|
||||
: double; cdecl;
|
||||
function cvArcLength(const curve: Pointer; slice: TCvSlice { = CV_WHOLE_SEQ }; is_closed: Integer { = 1 } ): Double; cdecl;
|
||||
|
||||
(*
|
||||
CV_INLINE double cvContourPerimeter( const void* contour )
|
||||
@ -628,33 +658,32 @@ function cvArcLength(const curve: Pointer; slice: TCvSlice { = CV_WHOLE_SEQ }; i
|
||||
return cvArcLength( contour, CV_WHOLE_SEQ, 1 );
|
||||
}
|
||||
*)
|
||||
function cvContourPerimeter(const contour: Pointer): double; {$IFDEF USE_INLINE}inline; {$ENDIF}
|
||||
function cvContourPerimeter(const contour: Pointer): Double; {$IFDEF USE_INLINE}inline; {$ENDIF}
|
||||
// * Calculates contour boundning rectangle (update=1) or
|
||||
// just retrieves pre-calculated rectangle (update=0) */
|
||||
// CVAPI(CvRect) cvBoundingRect( CvArr* points, int update CV_DEFAULT(0) );
|
||||
function cvBoundingRect(points: pCvArr; update: Integer = 0): TCvRect; cdecl;
|
||||
function cvBoundingRect(points: PCvArr; update: Integer = 0): TCvRect; cdecl;
|
||||
|
||||
// * Calculates area of a contour or contour segment */
|
||||
// CVAPI(double) cvContourArea( const CvArr* contour,
|
||||
// CvSlice slice CV_DEFAULT(CV_WHOLE_SEQ),
|
||||
// int oriented CV_DEFAULT(0));
|
||||
function cvContourArea(const contour: pCvArr; slice: TCvSlice { = CV_WHOLE_SEQ }; oriented: Integer = 0): double; cdecl;
|
||||
function cvContourArea(const contour: PCvArr; slice: TCvSlice { = CV_WHOLE_SEQ }; oriented: Integer = 0): Double; cdecl;
|
||||
|
||||
// (* Finds minimum area rotated rectangle bounding a set of points *)
|
||||
// CVAPI(CvBox2D) cvMinAreaRect2( const CvArr* points, CvMemStorage* storage CV_DEFAULT(NULL));
|
||||
function cvMinAreaRect2(points: pCvArr; storage: pCvMemStorage = nil): TCvBox2D; cdecl;
|
||||
function cvMinAreaRect2(points: PCvArr; storage: pCvMemStorage = nil): TCvBox2D; cdecl;
|
||||
|
||||
// (* Finds minimum enclosing circle for a set of points *)
|
||||
// CVAPI(int) cvMinEnclosingCircle( const CvArr* points,CvPoint2D32f* center, float* radius );
|
||||
function cvMinEnclosingCircle(points: pCvArr; center: pCvPoint2D32f; radius: pSingle): Integer; cdecl;
|
||||
function cvMinEnclosingCircle(points: PCvArr; center: pCvPoint2D32f; radius: pSingle): Integer; cdecl;
|
||||
|
||||
{
|
||||
/* Compares two contours by matching their moments */
|
||||
CVAPI(double) cvMatchShapes( const void* object1, const void* object2,
|
||||
int method, double parameter CV_DEFAULT(0));
|
||||
}
|
||||
function cvMatchShapes(const object1: Pointer; const object2: Pointer; method: Integer; parameter: double = 0)
|
||||
: double; cdecl;
|
||||
function cvMatchShapes(const object1: Pointer; const object2: Pointer; method: Integer; parameter: Double = 0): Double; cdecl;
|
||||
|
||||
{
|
||||
/* Calculates exact convex hull of 2d point set */
|
||||
@ -663,8 +692,8 @@ function cvMatchShapes(const object1: Pointer; const object2: Pointer; method: I
|
||||
int orientation CV_DEFAULT(CV_CLOCKWISE),
|
||||
int return_points CV_DEFAULT(0));
|
||||
}
|
||||
function cvConvexHull2(const input: pCvSeq; hull_storage: Pointer = nil; orientation: Integer = CV_CLOCKWISE;
|
||||
return_points: Integer = 0): pCvSeq; cdecl;
|
||||
function cvConvexHull2(const input: pCvSeq; hull_storage: Pointer = nil; orientation: Integer = CV_CLOCKWISE; return_points: Integer = 0)
|
||||
: pCvSeq; cdecl;
|
||||
|
||||
{
|
||||
/* Checks whether the contour is convex or not (returns 1 if convex, 0 if not) */
|
||||
@ -683,7 +712,7 @@ function cvConvexityDefects(contour: pCvSeq; convexhull: pCvSeq; storage: pCvMem
|
||||
|
||||
CVAPI(CvBox2D) cvFitEllipse2( const CvArr* points );
|
||||
*)
|
||||
function cvFitEllipse2(const points: pCvArr): TCvBox2D; cdecl;
|
||||
function cvFitEllipse2(const points: PCvArr): TCvBox2D; cdecl;
|
||||
|
||||
(*
|
||||
Finds minimum rectangle containing two given rectangles
|
||||
@ -706,8 +735,7 @@ procedure cvBoxPoints(box: TCvBox2D; pt: TBoxPoints); cdecl;
|
||||
CvContour* contour_header,
|
||||
CvSeqBlock* block );
|
||||
*)
|
||||
function cvPointSeqFromMat(seq_kind: Integer; const mat: pCvArr; contour_header: pCvContour; block: pCvSeqBlock)
|
||||
: pCvSeq; cdecl;
|
||||
function cvPointSeqFromMat(seq_kind: Integer; const mat: PCvArr; contour_header: pCvContour; block: pCvSeqBlock): pCvSeq; cdecl;
|
||||
(*
|
||||
Checks whether the point is inside polygon, outside, on an edge (at a vertex).
|
||||
Returns positive, negative or zero value, correspondingly.
|
||||
@ -717,7 +745,7 @@ function cvPointSeqFromMat(seq_kind: Integer; const mat: pCvArr; contour_header:
|
||||
CVAPI(double) cvPointPolygonTest( const CvArr* contour,
|
||||
CvPoint2D32f pt, int measure_dist );
|
||||
*)
|
||||
function cvPointPolygonTest(const contour: pCvArr; pt: TCvPoint2D32f; measure_dist: Integer): double; cdecl;
|
||||
function cvPointPolygonTest(const contour: PCvArr; pt: TCvPoint2D32f; measure_dist: Integer): Double; cdecl;
|
||||
|
||||
// (****************************************************************************************\
|
||||
// * Histogram functions *
|
||||
@ -729,10 +757,15 @@ function cvPointPolygonTest(const contour: pCvArr; pt: TCvPoint2D32f; measure_di
|
||||
float** ranges CV_DEFAULT(NULL),
|
||||
int uniform CV_DEFAULT(1));
|
||||
}
|
||||
function cvCreateHist(dims: Integer; sizes: PInteger; _type: Integer; ranges: Pointer = nil; uniform: Integer = 1)
|
||||
: pCvHistogram; cdecl;
|
||||
// function cvCreateHist(dims: Integer; sizes: PInteger; _type: Integer; ranges: ppFloat = nil;
|
||||
// uniform: Integer = 1): pCvHistogram; cdecl; overload;
|
||||
function cvCreateHist(dims: Integer; sizes: PInteger; _type: Integer; ranges: Pointer = nil; uniform: Integer = 1): pCvHistogram; cdecl;
|
||||
|
||||
(*
|
||||
/* Assignes histogram bin ranges */
|
||||
CVAPI(void) cvSetHistBinRanges( CvHistogram* hist, float** ranges,
|
||||
int uniform CV_DEFAULT(1));
|
||||
*)
|
||||
// WARNING! "float** ranges" is matrix
|
||||
procedure cvSetHistBinRanges(hist: pCvHistogram; ranges: pSingle; uniform: Integer = 1); cdecl;
|
||||
|
||||
(*
|
||||
Creates histogram header for array
|
||||
@ -742,8 +775,8 @@ function cvCreateHist(dims: Integer; sizes: PInteger; _type: Integer; ranges: Po
|
||||
float* data, float** ranges CV_DEFAULT(NULL),
|
||||
int uniform CV_DEFAULT(1));
|
||||
*)
|
||||
function cvMakeHistHeaderForArray(dims: Integer; sizes: PInteger; hist: pCvHistogram; data: pfloat;
|
||||
ranges: ppfloat = nil; uniform: Integer = 1): pCvHistogram; cdecl;
|
||||
function cvMakeHistHeaderForArray(dims: Integer; sizes: PInteger; hist: pCvHistogram; data: pfloat; ranges: ppfloat = nil; uniform: Integer = 1)
|
||||
: pCvHistogram; cdecl;
|
||||
|
||||
// * Releases histogram */
|
||||
// CVAPI(void) cvReleaseHist( CvHistogram** hist );
|
||||
@ -760,39 +793,51 @@ procedure cvClearHist(hist: pCvHistogram); cdecl;
|
||||
int* min_idx CV_DEFAULT(NULL),
|
||||
int* max_idx CV_DEFAULT(NULL));
|
||||
}
|
||||
procedure cvGetMinMaxHistValue(const hist: pCvHistogram; min_value: pSingle; max_value: pSingle;
|
||||
min_idx: PInteger = nil; max_idx: PInteger = nil); cdecl;
|
||||
procedure cvGetMinMaxHistValue(const hist: pCvHistogram; min_value: pSingle; max_value: pSingle; min_idx: PInteger = nil;
|
||||
max_idx: PInteger = nil); cdecl;
|
||||
|
||||
// (* Clear all histogram bins that are below the threshold *)
|
||||
// CVAPI(procedure) cvThreshHist(var hist: CvHistogram; threshold: Double);
|
||||
//
|
||||
//
|
||||
(* Compares two histogram *)
|
||||
// CVAPI(Double) cvCompareHist( CvHistogram* hist1,
|
||||
// CvHistogram* hist2,
|
||||
// Integer method);
|
||||
function cvCompareHist(hist1: pCvHistogram; hist2: pCvHistogram; method: Integer): double; cdecl;
|
||||
(*
|
||||
/* Normalizes histogram by dividing all bins by sum of the bins, multiplied by <factor>.
|
||||
After that sum of histogram bins is equal to <factor> */
|
||||
CVAPI(void) cvNormalizeHist( CvHistogram* hist, double factor );
|
||||
*)
|
||||
procedure cvNormalizeHist(hist: pCvHistogram; factor: Double); cdecl;
|
||||
|
||||
// (* Copies one histogram to another. Destination histogram is created if
|
||||
// the destination cPointer is 0 *)
|
||||
// CVAPI(procedure) cvCopyHist(var src: CvHistogram; dst: array of CvHistogram);
|
||||
//
|
||||
//
|
||||
// (* Calculates bayesian probabilistic histograms
|
||||
// (each or src and dst is an cArray of <number> histograms *)
|
||||
// CVAPI(procedure) cvCalcBayesianProb(
|
||||
// src: array of CvHistogram;
|
||||
// number: Integer;
|
||||
// dst: array of CvHistogram);
|
||||
(*
|
||||
/* Clear all histogram bins that are below the threshold */
|
||||
CVAPI(void) cvThreshHist( CvHistogram* hist, double threshold );
|
||||
*)
|
||||
procedure cvThreshHist(hist: pCvHistogram; threshold: Double); cdecl;
|
||||
|
||||
{
|
||||
(* /* Compares two histogram */
|
||||
CVAPI(Double) cvCompareHist( CvHistogram* hist1,
|
||||
CvHistogram* hist2,
|
||||
Integer method);
|
||||
*)
|
||||
function cvCompareHist(hist1: pCvHistogram; hist2: pCvHistogram; method: Integer): Double; cdecl;
|
||||
|
||||
(*
|
||||
/* Copies one histogram to another. Destination histogram is created if
|
||||
the destination pointer is NULL */
|
||||
CVAPI(void) cvCopyHist( const CvHistogram* src, CvHistogram** dst );
|
||||
*)
|
||||
procedure cvCopyHist(const src: pCvHistogram; Var dst: pCvHistogram); cdecl;
|
||||
|
||||
(*
|
||||
/* Calculates bayesian probabilistic histograms
|
||||
(each or src and dst is an array of <number> histograms */
|
||||
CVAPI(void) cvCalcBayesianProb( CvHistogram** src, int number,
|
||||
CvHistogram** dst);
|
||||
*)
|
||||
procedure cvCalcBayesianProb(Var src: pCvHistogram; number: Integer; Var dst: pCvHistogram); cdecl;
|
||||
|
||||
(*
|
||||
/* Calculates array histogram */
|
||||
CVAPI(void) cvCalcArrHist( CvArr** arr, CvHistogram* hist,
|
||||
int accumulate CV_DEFAULT(0),
|
||||
const CvArr* mask CV_DEFAULT(NULL) );
|
||||
}
|
||||
procedure cvCalcArrHist(var arr: pIplImage; hist: pCvHistogram; accumulate: Integer = 0;
|
||||
const mask: pIplImage = nil); cdecl;
|
||||
*)
|
||||
procedure cvCalcArrHist(var arr: pIplImage; hist: pCvHistogram; accumulate: Integer = 0; const mask: pIplImage = nil); cdecl;
|
||||
|
||||
// CV_INLINE void cvCalcHist(
|
||||
// IplImage** image,
|
||||
@ -802,69 +847,53 @@ procedure cvCalcArrHist(var arr: pIplImage; hist: pCvHistogram; accumulate: Inte
|
||||
// {
|
||||
// cvCalcArrHist( (CvArr**)image, hist, accumulate, mask );
|
||||
// }
|
||||
|
||||
procedure cvCalcHist(var image: pIplImage; hist: pCvHistogram; accumulate: Integer = 0; const mask: pIplImage = nil);
|
||||
{$IFDEF USE_INLINE}inline; {$ENDIF}
|
||||
// var mask CV_DEFAULT(0) )begin cvCalcArrHist( (CvArr*)image: vArr;
|
||||
// v5: hist;
|
||||
// v6: accumulate;
|
||||
// var Calculates back project *)
|
||||
|
||||
{
|
||||
/* Calculates back project */
|
||||
CVAPI(void) cvCalcArrBackProject( CvArr** image, CvArr* dst,
|
||||
const CvHistogram* hist );
|
||||
#define cvCalcBackProject(image, dst, hist) cvCalcArrBackProject((CvArr**)image, dst, hist)
|
||||
}
|
||||
procedure cvCalcArrBackProject(var image: pCvArr; dst: pCvArr; const hist: pCvHistogram); cdecl;
|
||||
procedure cvCalcArrBackProject(var image: PCvArr; dst: PCvArr; const hist: pCvHistogram); cdecl;
|
||||
|
||||
(*
|
||||
/* Does some sort of template matching but compares histograms of
|
||||
template and each window location */
|
||||
*)
|
||||
procedure cvCalcBackProject(var image: pIplImage; dst: pIplImage; const hist: pCvHistogram); cdecl;
|
||||
|
||||
// (* Does some sort of template matching but compares histograms of
|
||||
// template and each window location *)
|
||||
// CVAPI(procedure) cvCalcArrBackProjectPatch(
|
||||
// image: array of CvArr;
|
||||
// var dst: CvArr;
|
||||
// range: CvSize;
|
||||
// var hist: CvHistogram;
|
||||
// method: Integer;
|
||||
// factor: Double);
|
||||
/// / >> Following declaration is a macro definition!
|
||||
// const cvCalcBackProjectPatch( image, dst, range, hist, method, factor ) cvCalcArrBackProjectPatch( (CvArr;
|
||||
//
|
||||
(*
|
||||
/* calculates probabilistic density (divides one histogram by another) */
|
||||
CVAPI(void) cvCalcProbDensity( const CvHistogram* hist1, const CvHistogram* hist2,
|
||||
CvHistogram* dst_hist, double scale CV_DEFAULT(255) );
|
||||
*)
|
||||
procedure cvCalcProbDensity(const hist1: pCvHistogram; const hist2: pCvHistogram; dst_hist: pCvHistogram; scale: Double = 255); cdecl;
|
||||
|
||||
|
||||
|
||||
// (* calculates probabilistic density (divides one histogram by another) *)
|
||||
// CVAPI(procedure) cvCalcProbDensity(
|
||||
|
||||
{ /* equalizes histogram of 8-bit single-channel image */
|
||||
(*
|
||||
/* equalizes histogram of 8-bit single-channel image */
|
||||
CVAPI(void) cvEqualizeHist( const CvArr* src, CvArr* dst );
|
||||
}
|
||||
|
||||
*)
|
||||
procedure cvEqualizeHist(const src, dst: pIplImage); cdecl;
|
||||
|
||||
|
||||
(* Applies distance transform to binary image *)
|
||||
{
|
||||
CVAPI(void) cvDistTransform( const CvArr* src, CvArr* dst,
|
||||
int distance_type CV_DEFAULT(CV_DIST_L2),
|
||||
int mask_size CV_DEFAULT(3),
|
||||
const float* mask CV_DEFAULT(NULL),
|
||||
CvArr* labels CV_DEFAULT(NULL),
|
||||
int labelType CV_DEFAULT(CV_DIST_LABEL_CCOMP));
|
||||
CVAPI(void) cvDistTransform( const CvArr* src, CvArr* dst,
|
||||
int distance_type CV_DEFAULT(CV_DIST_L2),
|
||||
int mask_size CV_DEFAULT(3),
|
||||
const float* mask CV_DEFAULT(NULL),
|
||||
CvArr* labels CV_DEFAULT(NULL),
|
||||
int labelType CV_DEFAULT(CV_DIST_LABEL_CCOMP));
|
||||
}
|
||||
|
||||
procedure cvDistTransform( const src:pCvArr; dst:pCvArr;
|
||||
distance_type :Integer = CV_DIST_L2;
|
||||
mask_size :Integer = 3;
|
||||
const mask :pFloat = nil;
|
||||
labels :pCvArr = nil;
|
||||
labelType :Integer = CV_DIST_LABEL_CCOMP); cdecl;
|
||||
|
||||
procedure cvDistTransform(const src: PCvArr; dst: PCvArr; distance_type: Integer = CV_DIST_L2; mask_size: Integer = 3; const mask: pfloat = nil;
|
||||
labels: PCvArr = nil; labelType: Integer = CV_DIST_LABEL_CCOMP); cdecl;
|
||||
|
||||
// (* Applies fixed-level threshold to grayscale image.
|
||||
// This is a basic operation applied before retrieving contours *)
|
||||
// CVAPI(double) cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type );
|
||||
function cvThreshold(const src, dst: pIplImage; threshold, max_value: double; threshold_type: Integer): double; cdecl;
|
||||
function cvThreshold(const src, dst: pIplImage; threshold, max_value: Double; threshold_type: Integer): Double; cdecl;
|
||||
{
|
||||
/* Applies adaptive threshold to grayscale image.
|
||||
The two parameters for methods CV_ADAPTIVE_THRESH_MEAN_C and
|
||||
@ -883,11 +912,11 @@ function cvThreshold(const src, dst: pIplImage; threshold, max_value: double; th
|
||||
procedure cvAdaptiveThreshold(
|
||||
{ } const src: pIplImage;
|
||||
{ } dst: pIplImage;
|
||||
{ } max_value: double;
|
||||
{ } max_value: Double;
|
||||
{ } adaptive_method: Integer = CV_ADAPTIVE_THRESH_MEAN_C;
|
||||
{ } threshold_type: Integer = CV_THRESH_BINARY;
|
||||
{ } block_size: Integer = 3;
|
||||
{ } param1: double = 5); cdecl;
|
||||
{ } param1: Double = 5); cdecl;
|
||||
|
||||
{
|
||||
/* Fills the connected component until the color difference gets large enough */
|
||||
@ -909,7 +938,7 @@ procedure cvFloodFill(
|
||||
{ } up_diff: TCvScalar { * cvScalarAll(0) * };
|
||||
{ } comp: pCvConnectedComp = NIL;
|
||||
{ } flags: Integer = 4;
|
||||
{ } mask: pCvArr = NIL); cdecl;
|
||||
{ } mask: PCvArr = NIL); cdecl;
|
||||
|
||||
// ****************************************************************************************
|
||||
// * Feature detection *
|
||||
@ -923,30 +952,40 @@ procedure cvFloodFill(
|
||||
double threshold2,
|
||||
int aperture_size CV_DEFAULT(3) );
|
||||
}
|
||||
procedure cvCanny(const image: pIplImage; edges: pIplImage; threshold1: double; threshold2: double;
|
||||
aperture_size: Integer = 3); cdecl;
|
||||
procedure cvCanny(const image: pIplImage; edges: pIplImage; threshold1: Double; threshold2: Double; aperture_size: Integer = 3); cdecl;
|
||||
|
||||
// (* Runs canny edge detector *) CVAPI(
|
||||
// procedure)cvCanny(CvArr * image: array of
|
||||
// function flags CV_DEFAULT(v1: 0)): Integer; (; var edges: CvArr; threshold1: Double;
|
||||
// threshold2: Double; var Calculates constraint image for corner detection Dx xor 2 * Dyy + Dxx *
|
||||
// Dy xor 2 - 2 * Dx * Dy * Dxy.Applying threshold to the cResult gives coordinates of
|
||||
// corners * )
|
||||
// CVAPI(
|
||||
// procedure)cvPreCornerDetect(CvArr * image:
|
||||
// function aperture_size CV_DEFAULT(v1: 3)): Integer; (; var corners: CvArr;
|
||||
// var Calculates eigen values and vectors of 2 x2 gradient covariation matrix at every image
|
||||
// pixel * )CVAPI(
|
||||
// procedure)cvCornerEigenValsAndVecs(CvArr * image:
|
||||
// function aperture_size CV_DEFAULT(v1: 3)): Integer; (; var eigenvv: CvArr; block_size:
|
||||
// function; var Calculates minimal eigenvalue for 2 x2 gradient covariation matrix at every image
|
||||
// pixel * )CVAPI(
|
||||
// procedure)cvCornerMinEigenVal(CvArr * image: Integer aperture_size CV_DEFAULT(v1: 3)): Integer; (;
|
||||
// var eigenval: CvArr; block_size:
|
||||
// function; var Harris corner detector: Calculates det(M) - k * (trace(M) xor 2)
|
||||
// : Integer aperture_size CV_DEFAULT(v1: 3)): Integer; (; var)CVAPI(
|
||||
// procedure)cvCornerHarris(CvArr * image: where M is 2 x2 gradient covariation matrix for each pixel;
|
||||
// var harris_responce: CvArr; block_size:
|
||||
(*
|
||||
/* Calculates constraint image for corner detection
|
||||
Dx^2 * Dyy + Dxx * Dy^2 - 2 * Dx * Dy * Dxy.
|
||||
Applying threshold to the result gives coordinates of corners */
|
||||
CVAPI(void) cvPreCornerDetect( const CvArr* image, CvArr* corners,
|
||||
int aperture_size CV_DEFAULT(3) );
|
||||
*)
|
||||
procedure cvPreCornerDetect(const image: PCvArr; corners: PCvArr; aperture_size: Integer = 3); cdecl;
|
||||
(*
|
||||
/* Calculates eigen values and vectors of 2x2
|
||||
gradient covariation matrix at every image pixel */
|
||||
CVAPI(void) cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,
|
||||
int block_size, int aperture_size CV_DEFAULT(3) );
|
||||
*)
|
||||
procedure cvCornerEigenValsAndVecs(const image: PCvArr; eigenvv: PCvArr; block_size: Integer; aperture_size: Integer = 3); cdecl;
|
||||
|
||||
(*
|
||||
/* Calculates minimal eigenvalue for 2x2 gradient covariation matrix at
|
||||
every image pixel */
|
||||
CVAPI(void) cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval,
|
||||
int block_size, int aperture_size CV_DEFAULT(3) );
|
||||
*)
|
||||
procedure cvCornerMinEigenVal(const image: PCvArr; eigenval: PCvArr; block_size: Integer; aperture_size: Integer = 3); cdecl;
|
||||
|
||||
(*
|
||||
/* Harris corner detector:
|
||||
Calculates det(M) - k*(trace(M)^2), where M is 2x2 gradient covariation matrix for each pixel */
|
||||
CVAPI(void) cvCornerHarris( const CvArr* image, CvArr* harris_response,
|
||||
int block_size, int aperture_size CV_DEFAULT(3),
|
||||
double k CV_DEFAULT(0.04) );
|
||||
*)
|
||||
procedure cvCornerHarris(const image: PCvArr; harris_response: PCvArr; block_size: Integer; aperture_size: Integer = 3; k: Double = 0.04); cdecl;
|
||||
|
||||
{
|
||||
/* Adjust corner position using some sort of gradient search */
|
||||
@ -958,14 +997,8 @@ procedure cvCanny(const image: pIplImage; edges: pIplImage; threshold1: double;
|
||||
CvSize zero_zone,
|
||||
CvTermCriteria criteria );
|
||||
}
|
||||
procedure cvFindCornerSubPix(const image: pIplImage; corners: pCvPoint2D32f; count: Integer; win: TCvSize;
|
||||
zero_zone: TCvSize; criteria: TCvTermCriteria); cdecl;
|
||||
|
||||
|
||||
// function; var Adjust corner position using some sort of gradient search * )CVAPI(
|
||||
// procedure)cvFindCornerSubPix(CvArr * image: Integer aperture_size CV_DEFAULT(v1: 0.04)): Integer; (;
|
||||
// var corners: CvPoint2D32f; count: Integer; win: CvSize; zero_zone: CvSize;
|
||||
// var Finds a sparse set of points within the selected region that seem to be easy to track * )
|
||||
procedure cvFindCornerSubPix(const image: pIplImage; corners: pCvPoint2D32f; count: Integer; win: TCvSize; zero_zone: TCvSize;
|
||||
criteria: TCvTermCriteria); cdecl;
|
||||
|
||||
{
|
||||
/* Finds a sparse set of points within the selected region
|
||||
@ -979,21 +1012,9 @@ procedure cvFindCornerSubPix(const image: pIplImage; corners: pCvPoint2D32f; cou
|
||||
int use_harris CV_DEFAULT(0),
|
||||
double k CV_DEFAULT(0.04) );
|
||||
}
|
||||
procedure cvGoodFeaturesToTrack(const image: pIplImage; eig_image: pIplImage; temp_image: pIplImage;
|
||||
corners: pCvPoint2D32f; corner_count: PInteger; quality_level: double; min_distance: double;
|
||||
const mask: pIplImage = nil; block_size: Integer = 3; use_harris: Integer = 0; k: double = 0.04); cdecl;
|
||||
|
||||
|
||||
// (* Finds lines on binary image using one of several methods.
|
||||
// line_storage is either memory storage or 1 x <max number of lines> CvMat, its
|
||||
// number of columns is changed by the cFunction.
|
||||
// method is one of CV_HOUGH_*;
|
||||
// rho, theta and threshold are used for each of those methods;
|
||||
// param1 ~ line length, param2 ~ line gap - for probabilistic,
|
||||
// param1 ~ srn, param2 ~ stn - for multi-scale *)
|
||||
// CVAPI(CvSeq)cvHoughLines2(CvArr * image, Pointer line_storage, Integer method, Double rho,
|
||||
// Double theta, Integer threshold, Double param1 CV_DEFAULT(0), Double param2 CV_DEFAULT(0)
|
||||
// ): Double;
|
||||
procedure cvGoodFeaturesToTrack(const image: pIplImage; eig_image: pIplImage; temp_image: pIplImage; corners: pCvPoint2D32f; corner_count: PInteger;
|
||||
quality_level: Double; min_distance: Double; const mask: pIplImage = nil; block_size: Integer = 3; use_harris: Integer = 0;
|
||||
k: Double = 0.04); cdecl;
|
||||
|
||||
{
|
||||
/* Finds lines on binary image using one of several methods.
|
||||
@ -1019,11 +1040,11 @@ function cvHoughLines2(
|
||||
{ } image: pIplImage;
|
||||
{ } line_storage: Pointer;
|
||||
{ } method: Integer;
|
||||
{ } rho: double;
|
||||
{ } theta: double;
|
||||
{ } rho: Double;
|
||||
{ } theta: Double;
|
||||
{ } threshold: Integer;
|
||||
{ } param1: double = 0;
|
||||
{ } param2: double = 0): pCvSeq; cdecl;
|
||||
{ } param1: Double = 0;
|
||||
{ } param2: Double = 0): pCvSeq; cdecl;
|
||||
|
||||
{
|
||||
/* Finds circles in the image */
|
||||
@ -1043,22 +1064,20 @@ function cvHoughCircles(
|
||||
{ } image: pIplImage;
|
||||
{ } circle_storage: Pointer;
|
||||
{ } method: Integer;
|
||||
{ } dp: double;
|
||||
{ } min_dist: double;
|
||||
{ } param1: double = 100;
|
||||
{ } param2: double = 100;
|
||||
{ } dp: Double;
|
||||
{ } min_dist: Double;
|
||||
{ } param1: Double = 100;
|
||||
{ } param2: Double = 100;
|
||||
{ } min_radius: Integer = 0;
|
||||
{ } max_radius: Integer = 0): pCvSeq; cdecl;
|
||||
|
||||
// (* Fits a line into set of 2d or 3d points in a robust way (M-estimator technique) *)
|
||||
// CVAPI(
|
||||
// procedure)cvFitLine(CvArr * points, Integer dist_type, Double param, Double reps, Double aeps,
|
||||
// Single * line): Double;
|
||||
//
|
||||
// {$IFDEF __cplusplus}
|
||||
// end;
|
||||
// {$ENDIF}
|
||||
// {$ENDIF}
|
||||
(*
|
||||
/* Fits a line into set of 2d or 3d points in a robust way (M-estimator technique) */
|
||||
CVAPI(void) cvFitLine( const CvArr* points, int dist_type, double param,
|
||||
double reps, double aeps, float* line );
|
||||
*)
|
||||
procedure cvFitLine(const points: PCvArr; dist_type: Integer; param: Double; reps: Double; aeps: Double; Var line: Single); cdecl;
|
||||
|
||||
implementation
|
||||
|
||||
uses ocv.lib;
|
||||
@ -1093,7 +1112,7 @@ procedure cvInitUndistortMap; external imgproc_lib;
|
||||
procedure cvRemap; external imgproc_lib;
|
||||
function cvArcLength; external imgproc_lib;
|
||||
|
||||
function cvContourPerimeter(const contour: Pointer): double; {$IFDEF USE_INLINE}inline; {$ENDIF}
|
||||
function cvContourPerimeter(const contour: Pointer): Double; {$IFDEF USE_INLINE}inline; {$ENDIF}
|
||||
begin
|
||||
result := cvArcLength(contour, CV_WHOLE_SEQ, 1);
|
||||
end;
|
||||
@ -1149,9 +1168,9 @@ procedure cvSquareAcc; external imgproc_lib;
|
||||
procedure cvMultiplyAcc; external imgproc_lib;
|
||||
procedure cvRunningAvg; external imgproc_lib;
|
||||
|
||||
procedure cvFilter2D(const src: pCvArr; dst: pCvArr; const kernel: pCvMat; anchor: TCvPoint); external imgproc_lib;
|
||||
procedure cvFilter2D(const src: PCvArr; dst: PCvArr; const kernel: pCvMat; anchor: TCvPoint); external imgproc_lib;
|
||||
|
||||
procedure cvFilter2D(const src: pCvArr; dst: pCvArr; const kernel: pCvMat);
|
||||
procedure cvFilter2D(const src: PCvArr; dst: PCvArr; const kernel: pCvMat);
|
||||
begin
|
||||
cvFilter2D(src, dst, kernel, CvPoint(-1, -1));
|
||||
end;
|
||||
|
@ -42,21 +42,21 @@ interface
|
||||
|
||||
const
|
||||
{$IFDEF DelphiOCVVersion_29}
|
||||
CV_VERSION_EPOCH = '2';
|
||||
CV_VERSION_MAJOR = '4';
|
||||
CV_VERSION_MINOR = '13';
|
||||
CV_VERSION_EPOCH = '2';
|
||||
CV_VERSION_MAJOR = '4';
|
||||
CV_VERSION_MINOR = '13';
|
||||
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;
|
||||
@ -333,7 +333,9 @@ function ocvLoadLibrary(const Name: String): Cardinal;
|
||||
begin
|
||||
if not OCVLibHandles.TryGetValue(Name, Result) then
|
||||
begin
|
||||
Result := LoadLibrary(LPCWSTR(Name));
|
||||
{$R-}
|
||||
Result := LoadLibrary(LPCWSTR(@Name[1]));
|
||||
{$R+}
|
||||
if Result = 0 then
|
||||
ocvErrorMessage('Can not load DLL: ' + Name);
|
||||
OCVLibHandles.Add(Name, Result);
|
||||
|
Loading…
Reference in New Issue
Block a user