mirror of
https://github.com/Laex/Delphi-OpenCV.git
synced 2024-11-15 07:45:53 +01:00
Merge branch 'master' of github.com:Laex/Delphi-OpenCV
Conflicts: samples/Components/cCameraCapture/cCameraCapture.res samples/Components/cCameraCapture/uMainForm.dfm samples/Components/cFFmpegIPCamSource/cFFmpegIPCamSource.res source/component/Delphi20/dclOpenCV200.res
This commit is contained in:
commit
492af1886f
3
.gitignore
vendored
3
.gitignore
vendored
@ -35,4 +35,5 @@ lib
|
||||
*.sdf
|
||||
*.rsm
|
||||
*.local
|
||||
*.identcache
|
||||
*.identcache
|
||||
*.cmd
|
||||
|
BIN
Bin/Win32/SDL.dll
Normal file
BIN
Bin/Win32/SDL.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/avcodec-55.dll
Normal file
BIN
Bin/Win32/avcodec-55.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/avdevice-55.dll
Normal file
BIN
Bin/Win32/avdevice-55.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/avfilter-4.dll
Normal file
BIN
Bin/Win32/avfilter-4.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/avformat-55.dll
Normal file
BIN
Bin/Win32/avformat-55.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/avutil-52.dll
Normal file
BIN
Bin/Win32/avutil-52.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/ffplay.exe
Normal file
BIN
Bin/Win32/ffplay.exe
Normal file
Binary file not shown.
BIN
Bin/Win32/postproc-52.dll
Normal file
BIN
Bin/Win32/postproc-52.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/swresample-0.dll
Normal file
BIN
Bin/Win32/swresample-0.dll
Normal file
Binary file not shown.
BIN
Bin/Win32/swscale-2.dll
Normal file
BIN
Bin/Win32/swscale-2.dll
Normal file
Binary file not shown.
@ -24,6 +24,7 @@ Unzip it to a convenient directory, thus get the following directory structure.<
|
||||
Add the search path for the modules of the project in Delphi IDE (Tools-Options-Delphi Options-Library-Library path)
|
||||
```
|
||||
<PROJECT_ROOT>\source
|
||||
<PROJECT_ROOT>\source\utils
|
||||
<PROJECT_ROOT>\source\component
|
||||
<PROJECT_ROOT>\resource\facedetectxml
|
||||
```
|
||||
@ -32,6 +33,7 @@ Additionally, you can specify the path to the library header files FFMPEG
|
||||
```
|
||||
<PROJECT_ROOT>\source\ffmpeg
|
||||
<PROJECT_ROOT>\source\sdl
|
||||
<PROJECT_ROOT>\source\opengl
|
||||
```
|
||||
Examples of using FFMPEG library header files are in the
|
||||
```
|
||||
|
@ -9,6 +9,9 @@
|
||||
<Projects Include="cMatchTemplate\cMatchTemplate.dproj">
|
||||
<Dependencies/>
|
||||
</Projects>
|
||||
<Projects Include="cFFmpegIPCamSource\cFFmpegIPCamSource.dproj">
|
||||
<Dependencies/>
|
||||
</Projects>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>Default.Personality.12</Borland.Personality>
|
||||
@ -35,14 +38,23 @@
|
||||
<Target Name="cMatchTemplate:Make">
|
||||
<MSBuild Projects="cMatchTemplate\cMatchTemplate.dproj" Targets="Make"/>
|
||||
</Target>
|
||||
<Target Name="cFFmpegIPCamSource">
|
||||
<MSBuild Projects="cFFmpegIPCamSource\cFFmpegIPCamSource.dproj"/>
|
||||
</Target>
|
||||
<Target Name="cFFmpegIPCamSource:Clean">
|
||||
<MSBuild Projects="cFFmpegIPCamSource\cFFmpegIPCamSource.dproj" Targets="Clean"/>
|
||||
</Target>
|
||||
<Target Name="cFFmpegIPCamSource:Make">
|
||||
<MSBuild Projects="cFFmpegIPCamSource\cFFmpegIPCamSource.dproj" Targets="Make"/>
|
||||
</Target>
|
||||
<Target Name="Build">
|
||||
<CallTarget Targets="cCameraCapture;cMatchTemplate"/>
|
||||
<CallTarget Targets="cCameraCapture;cMatchTemplate;cFFmpegIPCamSource"/>
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<CallTarget Targets="cCameraCapture:Clean;cMatchTemplate:Clean"/>
|
||||
<CallTarget Targets="cCameraCapture:Clean;cMatchTemplate:Clean;cFFmpegIPCamSource:Clean"/>
|
||||
</Target>
|
||||
<Target Name="Make">
|
||||
<CallTarget Targets="cCameraCapture:Make;cMatchTemplate:Make"/>
|
||||
<CallTarget Targets="cCameraCapture:Make;cMatchTemplate:Make;cFFmpegIPCamSource:Make"/>
|
||||
</Target>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
|
||||
</Project>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<MainSource>cCameraCapture.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<Config Condition="'$(Config)'==''">Release</Config>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Application</AppType>
|
||||
|
Binary file not shown.
@ -5,7 +5,7 @@
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<MainSource>cFFmpegIPCamSource.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<Config Condition="'$(Config)'==''">Release</Config>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Application</AppType>
|
||||
|
Binary file not shown.
344
source/OpenCV.inc
Normal file
344
source/OpenCV.inc
Normal file
@ -0,0 +1,344 @@
|
||||
{$B-}
|
||||
|
||||
// Check IDE version
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER130} { Delphi 5, C++ Builder 5 }
|
||||
{$DEFINE VER5}
|
||||
{$DEFINE VER5P}
|
||||
{$IFDEF BCB}
|
||||
{$DEFINE CB5}
|
||||
{$ObjExportAll On}
|
||||
{$ELSE}
|
||||
{$DEFINE D5}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER140} { Delphi 6, C++ Builder 6 }
|
||||
{$DEFINE VER6}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$IFDEF BCB}
|
||||
{$DEFINE CB6}
|
||||
{$ObjExportAll On}
|
||||
{$ELSE}
|
||||
{$DEFINE D6}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER150} { Delphi 7 }
|
||||
{$IFNDEF BCB}
|
||||
{$DEFINE D7}
|
||||
{$DEFINE VER7}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER160} { Delphi 8 }
|
||||
{$DEFINE D8}
|
||||
{$DEFINE VER8}
|
||||
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER170} { Delphi 2005 }
|
||||
{$DEFINE D9}
|
||||
{$DEFINE VER9}
|
||||
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER180} { Delphi 2006 }
|
||||
{$IFNDEF VER185} { not Delphi 2007 Spacely}
|
||||
{$DEFINE D10}
|
||||
{$DEFINE VER10}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER185} { Delphi 2007 Spacely}
|
||||
{$DEFINE D11}
|
||||
{$ENDIF}
|
||||
{$IFDEF VER190} { Delphi 2007 Highlander}
|
||||
{$DEFINE D11}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF D11}
|
||||
{$DEFINE VER11}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER200} { Delphi 2009 }
|
||||
{$DEFINE D12}
|
||||
{$DEFINE VER12}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER210} { Delphi 2010 }
|
||||
{$DEFINE D14}
|
||||
{$DEFINE VER14}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER220} { Delphi XE }
|
||||
{$DEFINE D15}
|
||||
{$DEFINE VER15}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER230} { Delphi XE2 }
|
||||
{$DEFINE D16}
|
||||
{$DEFINE VER16}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$DEFINE VER16P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER240} { Delphi XE3 }
|
||||
{$DEFINE D17}
|
||||
{$DEFINE VER17}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$DEFINE VER16P}
|
||||
{$DEFINE VER17P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER250} { Delphi XE4 }
|
||||
{$DEFINE D18}
|
||||
{$DEFINE VER18}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$DEFINE VER16P}
|
||||
{$DEFINE VER17P}
|
||||
{$DEFINE VER18P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER260} { Delphi XE5 }
|
||||
{$DEFINE D19}
|
||||
{$DEFINE VER19}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$DEFINE VER16P}
|
||||
{$DEFINE VER17P}
|
||||
{$DEFINE VER18P}
|
||||
{$DEFINE VER19P}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER270} { Delphi XE6 }
|
||||
{$DEFINE D20}
|
||||
{$DEFINE VER20}
|
||||
{$DEFINE VER5P}
|
||||
{$DEFINE VER6P}
|
||||
{$DEFINE VER7P}
|
||||
{$DEFINE VER8P}
|
||||
{$DEFINE VER9P}
|
||||
{$DEFINE VER10P}
|
||||
{$DEFINE VER11P}
|
||||
{$DEFINE VER12P}
|
||||
{$DEFINE VER14P}
|
||||
{$DEFINE VER15P}
|
||||
{$DEFINE VER16P}
|
||||
{$DEFINE VER17P}
|
||||
{$DEFINE VER18P}
|
||||
{$DEFINE VER19P}
|
||||
{$DEFINE VER20P}
|
||||
{$ENDIF}
|
||||
|
||||
// End IDE version
|
||||
|
||||
{$IFDEF CPU64}
|
||||
{$DEFINE CPUX64} { assembler for x64 - Lazarus compatibility }
|
||||
{$ENDIF}
|
||||
{$IFDEF CPU86}
|
||||
{$DEFINE CPUX86} { assembler for x86 - Lazarus compatibility }
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF IOS}
|
||||
{$DEFINE MOBILE}
|
||||
{$ENDIF}
|
||||
{$IFDEF ANDROID}
|
||||
{$DEFINE MOBILE}
|
||||
{$ENDIF}
|
||||
{$IFDEF MOBILE}
|
||||
{$DEFINE PUREPASCAL}
|
||||
{$ENDIF}
|
||||
{$IFDEF CPUARM}
|
||||
{$DEFINE PUREPASCAL}
|
||||
{$ENDIF}
|
||||
{$IFDEF CLR}
|
||||
{$DEFINE PUREPASCAL}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$IFDEF IPHONESIM}
|
||||
{$DEFINE PUREPASCAL}
|
||||
{$ENDIF}
|
||||
{$IFNDEF PUREPASCAL}
|
||||
{$ASMMODE INTEL}
|
||||
{$ENDIF}
|
||||
{$MODE DELPHI}
|
||||
{$INTERFACES COM}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF WIN32}
|
||||
{$DEFINE MSWINDOWS}
|
||||
{$DEFINE WIN32_64}
|
||||
{$ENDIF}
|
||||
{$IFDEF WIN64}
|
||||
{$DEFINE MSWINDOWS}
|
||||
{$DEFINE WIN32_64}
|
||||
{$ENDIF}
|
||||
{$IFDEF CLR}
|
||||
{$DEFINE MSWINDOWS}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF DARWIN}
|
||||
{$DEFINE MACOS}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF NOINLINE}
|
||||
{$IFDEF FPC}
|
||||
{$DEFINE USE_INLINE}
|
||||
{$ENDIF}
|
||||
{$IFDEF VER9P}
|
||||
{$DEFINE USE_INLINE}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER7P}
|
||||
{$WARN UNSAFE_TYPE OFF}
|
||||
{$WARN UNSAFE_CODE OFF}
|
||||
{$WARN UNSAFE_CAST OFF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VER6P}
|
||||
{$WARN SYMBOL_PLATFORM OFF}
|
||||
{$WARN SYMBOL_DEPRECATED OFF}
|
||||
{$WARN UNIT_PLATFORM OFF}
|
||||
{$WARN UNIT_DEPRECATED OFF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF VER6P}
|
||||
// Delphi5, CBuilder5 - UTF8 functions is not implemented
|
||||
{$DEFINE UTF8}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF CLR}
|
||||
{$IFDEF VER7P}
|
||||
{$DEFINE HAVE_COMPRESS} // ZLib build in Delphi
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF CLR}
|
||||
{$DEFINE IS_UNICODE}
|
||||
{$ENDIF}
|
||||
{$IFDEF VER12P}
|
||||
{$DEFINE IS_UNICODE}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF CLR}
|
||||
{$IFNDEF FPC}
|
||||
{$IFNDEF PUREPASCAL}
|
||||
{$IFNDEF CPUX64}
|
||||
{$DEFINE UseASM} // use Assembler optimated core
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF NEXTGEN}
|
||||
{$ZEROBASEDSTRINGS OFF}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFNDEF VER16P}
|
||||
{$IFNDEF CLR}
|
||||
{$DEFINE EXTENDEDIS10BYTES}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$IFDEF VER16}
|
||||
{$IFNDEF CPUX64}
|
||||
{$DEFINE EXTENDEDIS10BYTES}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
{$DEFINE DYNAMIC_LINKING}
|
Binary file not shown.
45
source/component/Delphi7/OpenCV70.cfg
Normal file
45
source/component/Delphi7/OpenCV70.cfg
Normal file
@ -0,0 +1,45 @@
|
||||
-$A8
|
||||
-$B-
|
||||
-$C+
|
||||
-$D-
|
||||
-$E-
|
||||
-$F-
|
||||
-$G+
|
||||
-$H+
|
||||
-$I+
|
||||
-$J-
|
||||
-$K-
|
||||
-$L-
|
||||
-$M-
|
||||
-$N+
|
||||
-$O+
|
||||
-$P+
|
||||
-$Q-
|
||||
-$R-
|
||||
-$S-
|
||||
-$T-
|
||||
-$U-
|
||||
-$V+
|
||||
-$W-
|
||||
-$X+
|
||||
-$Y-
|
||||
-$Z1
|
||||
-cg
|
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
-H+
|
||||
-W+
|
||||
-M
|
||||
-$M16384,1048576
|
||||
-K$00400000
|
||||
-N"."
|
||||
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||
-LN"."
|
||||
-U"..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml"
|
||||
-O"..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml"
|
||||
-I"..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml"
|
||||
-R"..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml"
|
||||
-DRELEASE
|
||||
-Z
|
||||
-w-UNSAFE_TYPE
|
||||
-w-UNSAFE_CODE
|
||||
-w-UNSAFE_CAST
|
153
source/component/Delphi7/OpenCV70.dof
Normal file
153
source/component/Delphi7/OpenCV70.dof
Normal file
@ -0,0 +1,153 @@
|
||||
[FileVersion]
|
||||
Version=7.0
|
||||
[Compiler]
|
||||
A=8
|
||||
B=0
|
||||
C=1
|
||||
D=0
|
||||
E=0
|
||||
F=0
|
||||
G=1
|
||||
H=1
|
||||
I=1
|
||||
J=0
|
||||
K=0
|
||||
L=0
|
||||
M=0
|
||||
N=1
|
||||
O=1
|
||||
P=1
|
||||
Q=0
|
||||
R=0
|
||||
S=0
|
||||
T=0
|
||||
U=0
|
||||
V=1
|
||||
W=0
|
||||
X=1
|
||||
Y=0
|
||||
Z=1
|
||||
ShowHints=1
|
||||
ShowWarnings=1
|
||||
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
NamespacePrefix=
|
||||
SymbolDeprecated=1
|
||||
SymbolLibrary=1
|
||||
SymbolPlatform=1
|
||||
UnitLibrary=1
|
||||
UnitPlatform=1
|
||||
UnitDeprecated=1
|
||||
HResultCompat=1
|
||||
HidingMember=1
|
||||
HiddenVirtual=1
|
||||
Garbage=1
|
||||
BoundsError=1
|
||||
ZeroNilCompat=1
|
||||
StringConstTruncated=1
|
||||
ForLoopVarVarPar=1
|
||||
TypedConstVarPar=1
|
||||
AsgToTypedConst=1
|
||||
CaseLabelRange=1
|
||||
ForVariable=1
|
||||
ConstructingAbstract=1
|
||||
ComparisonFalse=1
|
||||
ComparisonTrue=1
|
||||
ComparingSignedUnsigned=1
|
||||
CombiningSignedUnsigned=1
|
||||
UnsupportedConstruct=1
|
||||
FileOpen=1
|
||||
FileOpenUnitSrc=1
|
||||
BadGlobalSymbol=1
|
||||
DuplicateConstructorDestructor=1
|
||||
InvalidDirective=1
|
||||
PackageNoLink=1
|
||||
PackageThreadVar=1
|
||||
ImplicitImport=1
|
||||
HPPEMITIgnored=1
|
||||
NoRetVal=1
|
||||
UseBeforeDef=1
|
||||
ForLoopVarUndef=1
|
||||
UnitNameMismatch=1
|
||||
NoCFGFileFound=1
|
||||
MessageDirective=1
|
||||
ImplicitVariants=1
|
||||
UnicodeToLocale=1
|
||||
LocaleToUnicode=1
|
||||
ImagebaseMultiple=1
|
||||
SuspiciousTypecast=1
|
||||
PrivatePropAccessor=1
|
||||
UnsafeType=0
|
||||
UnsafeCode=0
|
||||
UnsafeCast=0
|
||||
[Linker]
|
||||
MapFile=0
|
||||
OutputObjs=0
|
||||
ConsoleApp=1
|
||||
DebugInfo=0
|
||||
RemoteSymbols=0
|
||||
MinStackSize=16384
|
||||
MaxStackSize=1048576
|
||||
ImageBase=4194304
|
||||
ExeDescription=OpenCV Component
|
||||
[Directories]
|
||||
OutputDir=
|
||||
UnitOutputDir=.
|
||||
PackageDLLOutputDir=
|
||||
PackageDCPOutputDir=.
|
||||
SearchPath=..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml
|
||||
Packages=
|
||||
Conditionals=RELEASE
|
||||
DebugSourceDirs=
|
||||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
[Language]
|
||||
ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
[Version Info]
|
||||
IncludeVerInfo=1
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1033
|
||||
CodePage=1252
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=OpenCV Component
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=OpenCV Component
|
||||
ProductVersion=1.0.0.0
|
||||
[HistoryLists\hlConditionals]
|
||||
Count=1
|
||||
Item0=RELEASE
|
||||
[HistoryLists\hlUnitAliases]
|
||||
Count=1
|
||||
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
[HistoryLists\hlSearchPath]
|
||||
Count=4
|
||||
Item0=..\;..\..\;..\..\utils;..\..\..\resource\facedetectxml
|
||||
Item1=..\;..\..\;..\..\utils
|
||||
Item2=..\;..\..\
|
||||
Item3=..\;..\..\;..\..\include;..\..\include\calib3d;..\..\include\core;..\..\include\features2d;..\..\include\highgui;..\..\include\imgproc;..\..\include\legacy;..\..\include\ml;..\..\include\nonfree;..\..\include\objdetect;..\..\include\video
|
||||
[HistoryLists\hlUnitOutputDirectory]
|
||||
Count=1
|
||||
Item0=.
|
||||
[HistoryLists\hlDCPOutput]
|
||||
Count=1
|
||||
Item0=.
|
40
source/component/Delphi7/OpenCV70.dpk
Normal file
40
source/component/Delphi7/OpenCV70.dpk
Normal file
@ -0,0 +1,40 @@
|
||||
package OpenCV70;
|
||||
|
||||
{$R *.res}
|
||||
{$ALIGN 8}
|
||||
{$ASSERTIONS ON}
|
||||
{$BOOLEVAL OFF}
|
||||
{$DEBUGINFO OFF}
|
||||
{$EXTENDEDSYNTAX ON}
|
||||
{$IMPORTEDDATA ON}
|
||||
{$IOCHECKS ON}
|
||||
{$LOCALSYMBOLS OFF}
|
||||
{$LONGSTRINGS ON}
|
||||
{$OPENSTRINGS ON}
|
||||
{$OPTIMIZATION ON}
|
||||
{$OVERFLOWCHECKS OFF}
|
||||
{$RANGECHECKS OFF}
|
||||
{$REFERENCEINFO OFF}
|
||||
{$SAFEDIVIDE OFF}
|
||||
{$STACKFRAMES OFF}
|
||||
{$TYPEDADDRESS OFF}
|
||||
{$VARSTRINGCHECKS ON}
|
||||
{$WRITEABLECONST OFF}
|
||||
{$MINENUMSIZE 1}
|
||||
{$IMAGEBASE $400000}
|
||||
{$DESCRIPTION 'OpenCV Component'}
|
||||
{$RUNONLY}
|
||||
{$IMPLICITBUILD OFF}
|
||||
{$DEFINE RELEASE}
|
||||
|
||||
requires
|
||||
rtl,
|
||||
vcl;
|
||||
|
||||
contains
|
||||
uOCVImageOperation in '..\uOCVImageOperation.pas',
|
||||
uOCVTypes in '..\uOCVTypes.pas',
|
||||
uOCVSource in '..\uOCVSource.pas',
|
||||
uOCVView in '..\uOCVView.pas';
|
||||
|
||||
end.
|
BIN
source/component/Delphi7/OpenCV70.res
Normal file
BIN
source/component/Delphi7/OpenCV70.res
Normal file
Binary file not shown.
45
source/component/Delphi7/dclOpenCV70.cfg
Normal file
45
source/component/Delphi7/dclOpenCV70.cfg
Normal file
@ -0,0 +1,45 @@
|
||||
-$A8
|
||||
-$B-
|
||||
-$C+
|
||||
-$D-
|
||||
-$E-
|
||||
-$F-
|
||||
-$G+
|
||||
-$H+
|
||||
-$I+
|
||||
-$J-
|
||||
-$K-
|
||||
-$L-
|
||||
-$M-
|
||||
-$N+
|
||||
-$O+
|
||||
-$P+
|
||||
-$Q-
|
||||
-$R-
|
||||
-$S-
|
||||
-$T-
|
||||
-$U-
|
||||
-$V+
|
||||
-$W-
|
||||
-$X+
|
||||
-$Y-
|
||||
-$Z1
|
||||
-cg
|
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
-H+
|
||||
-W+
|
||||
-M
|
||||
-$M16384,1048576
|
||||
-K$00400000
|
||||
-N"."
|
||||
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||
-LN"."
|
||||
-U"..\;..\..\;..\..\utils"
|
||||
-O"..\;..\..\;..\..\utils"
|
||||
-I"..\;..\..\;..\..\utils"
|
||||
-R"..\;..\..\;..\..\utils"
|
||||
-DRELEASE
|
||||
-Z
|
||||
-w-UNSAFE_TYPE
|
||||
-w-UNSAFE_CODE
|
||||
-w-UNSAFE_CAST
|
151
source/component/Delphi7/dclOpenCV70.dof
Normal file
151
source/component/Delphi7/dclOpenCV70.dof
Normal file
@ -0,0 +1,151 @@
|
||||
[FileVersion]
|
||||
Version=7.0
|
||||
[Compiler]
|
||||
A=8
|
||||
B=0
|
||||
C=1
|
||||
D=0
|
||||
E=0
|
||||
F=0
|
||||
G=1
|
||||
H=1
|
||||
I=1
|
||||
J=0
|
||||
K=0
|
||||
L=0
|
||||
M=0
|
||||
N=1
|
||||
O=1
|
||||
P=1
|
||||
Q=0
|
||||
R=0
|
||||
S=0
|
||||
T=0
|
||||
U=0
|
||||
V=1
|
||||
W=0
|
||||
X=1
|
||||
Y=0
|
||||
Z=1
|
||||
ShowHints=1
|
||||
ShowWarnings=1
|
||||
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
NamespacePrefix=
|
||||
SymbolDeprecated=1
|
||||
SymbolLibrary=1
|
||||
SymbolPlatform=1
|
||||
UnitLibrary=1
|
||||
UnitPlatform=1
|
||||
UnitDeprecated=1
|
||||
HResultCompat=1
|
||||
HidingMember=1
|
||||
HiddenVirtual=1
|
||||
Garbage=1
|
||||
BoundsError=1
|
||||
ZeroNilCompat=1
|
||||
StringConstTruncated=1
|
||||
ForLoopVarVarPar=1
|
||||
TypedConstVarPar=1
|
||||
AsgToTypedConst=1
|
||||
CaseLabelRange=1
|
||||
ForVariable=1
|
||||
ConstructingAbstract=1
|
||||
ComparisonFalse=1
|
||||
ComparisonTrue=1
|
||||
ComparingSignedUnsigned=1
|
||||
CombiningSignedUnsigned=1
|
||||
UnsupportedConstruct=1
|
||||
FileOpen=1
|
||||
FileOpenUnitSrc=1
|
||||
BadGlobalSymbol=1
|
||||
DuplicateConstructorDestructor=1
|
||||
InvalidDirective=1
|
||||
PackageNoLink=1
|
||||
PackageThreadVar=1
|
||||
ImplicitImport=1
|
||||
HPPEMITIgnored=1
|
||||
NoRetVal=1
|
||||
UseBeforeDef=1
|
||||
ForLoopVarUndef=1
|
||||
UnitNameMismatch=1
|
||||
NoCFGFileFound=1
|
||||
MessageDirective=1
|
||||
ImplicitVariants=1
|
||||
UnicodeToLocale=1
|
||||
LocaleToUnicode=1
|
||||
ImagebaseMultiple=1
|
||||
SuspiciousTypecast=1
|
||||
PrivatePropAccessor=1
|
||||
UnsafeType=0
|
||||
UnsafeCode=0
|
||||
UnsafeCast=0
|
||||
[Linker]
|
||||
MapFile=0
|
||||
OutputObjs=0
|
||||
ConsoleApp=1
|
||||
DebugInfo=0
|
||||
RemoteSymbols=0
|
||||
MinStackSize=16384
|
||||
MaxStackSize=1048576
|
||||
ImageBase=4194304
|
||||
ExeDescription=OpenCV Component
|
||||
[Directories]
|
||||
OutputDir=
|
||||
UnitOutputDir=.
|
||||
PackageDLLOutputDir=
|
||||
PackageDCPOutputDir=.
|
||||
SearchPath=..\;..\..\;..\..\utils
|
||||
Packages=
|
||||
Conditionals=RELEASE
|
||||
DebugSourceDirs=
|
||||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
[Language]
|
||||
ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
[Version Info]
|
||||
IncludeVerInfo=1
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1033
|
||||
CodePage=1252
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=OpenCV Component
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=OpenCV Component
|
||||
ProductVersion=1.0.0.0
|
||||
[HistoryLists\hlConditionals]
|
||||
Count=1
|
||||
Item0=RELEASE
|
||||
[HistoryLists\hlUnitAliases]
|
||||
Count=1
|
||||
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
[HistoryLists\hlSearchPath]
|
||||
Count=2
|
||||
Item0=..\;..\..\;..\..\utils
|
||||
Item1=..\;..\..\;..\..\include;..\..\include\calib3d;..\..\include\core;..\..\include\features2d;..\..\include\highgui;..\..\include\imgproc;..\..\include\legacy;..\..\include\ml;..\..\include\nonfree;..\..\include\objdetect;..\..\include\video
|
||||
[HistoryLists\hlUnitOutputDirectory]
|
||||
Count=1
|
||||
Item0=.
|
||||
[HistoryLists\hlDCPOutput]
|
||||
Count=1
|
||||
Item0=.
|
41
source/component/Delphi7/dclOpenCV70.dpk
Normal file
41
source/component/Delphi7/dclOpenCV70.dpk
Normal file
@ -0,0 +1,41 @@
|
||||
package dclOpenCV70;
|
||||
|
||||
{$R *.res}
|
||||
{$R '..\OpenCV.dcr'}
|
||||
{$ALIGN 8}
|
||||
{$ASSERTIONS ON}
|
||||
{$BOOLEVAL OFF}
|
||||
{$DEBUGINFO OFF}
|
||||
{$EXTENDEDSYNTAX ON}
|
||||
{$IMPORTEDDATA ON}
|
||||
{$IOCHECKS ON}
|
||||
{$LOCALSYMBOLS OFF}
|
||||
{$LONGSTRINGS ON}
|
||||
{$OPENSTRINGS ON}
|
||||
{$OPTIMIZATION ON}
|
||||
{$OVERFLOWCHECKS OFF}
|
||||
{$RANGECHECKS OFF}
|
||||
{$REFERENCEINFO OFF}
|
||||
{$SAFEDIVIDE OFF}
|
||||
{$STACKFRAMES OFF}
|
||||
{$TYPEDADDRESS OFF}
|
||||
{$VARSTRINGCHECKS ON}
|
||||
{$WRITEABLECONST OFF}
|
||||
{$MINENUMSIZE 1}
|
||||
{$IMAGEBASE $400000}
|
||||
{$DESCRIPTION 'OpenCV Component'}
|
||||
{$DESIGNONLY}
|
||||
{$IMPLICITBUILD OFF}
|
||||
{$DEFINE RELEASE}
|
||||
|
||||
requires
|
||||
OpenCV70,
|
||||
rtl,
|
||||
vcl,
|
||||
designide;
|
||||
|
||||
contains
|
||||
uOCVIOProperties in '..\uOCVIOProperties.pas',
|
||||
uOCVRegister in '..\uOCVRegister.pas';
|
||||
|
||||
end.
|
BIN
source/component/Delphi7/dclOpenCV70.res
Normal file
BIN
source/component/Delphi7/dclOpenCV70.res
Normal file
Binary file not shown.
@ -29,7 +29,7 @@ unit uOCVImageOperation;
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF VER6P}
|
||||
{$IFDEF VER15P}
|
||||
Winapi.Windows,
|
||||
Vcl.Graphics,
|
||||
System.SysUtils,
|
||||
@ -47,12 +47,21 @@ uses
|
||||
Types,
|
||||
{$ENDIF VER5}
|
||||
ZLib,
|
||||
{$ENDIF VER6P}
|
||||
{$ENDIF VER15P}
|
||||
uOCVTypes,
|
||||
ocv.objdetect_c,
|
||||
ocv.core.types_c;
|
||||
|
||||
type
|
||||
{$IFDEF VER17P} //XE3..XE6
|
||||
TArrayDouble = TArray<Double>;
|
||||
TArrayInteger = TArray<Integer>;
|
||||
TArrayBoolean = TArray<Boolean>;
|
||||
{$ELSE} // D7...XE2
|
||||
TArrayDouble = Array of Double;
|
||||
TArrayInteger = Array of Integer;
|
||||
TArrayBoolean = Array of Boolean;
|
||||
{$ENDIF}
|
||||
|
||||
TocvCustomImageOperation = class(TComponent)
|
||||
protected
|
||||
@ -60,9 +69,9 @@ type
|
||||
private
|
||||
FCriticalSection: TCriticalSection;
|
||||
FOwner: TPersistent;
|
||||
FFloatParams: TArray<Double>;
|
||||
FIntParams: TArray<Integer>;
|
||||
FBoolParams: TArray<Boolean>;
|
||||
FFloatParams: TArrayDouble;
|
||||
FIntParams: TArrayInteger;
|
||||
FBoolParams: TArrayBoolean;
|
||||
FOnAfterPaint: TOnOcvAfterTransform;
|
||||
FOnBeforePaint: TOnOcvBeforeTransform;
|
||||
protected
|
||||
|
@ -29,7 +29,7 @@ unit uOCVTypes;
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF VER6P}
|
||||
{$IFDEF VER15P}
|
||||
System.SysUtils,
|
||||
System.Classes,
|
||||
System.Generics.Collections,
|
||||
@ -38,10 +38,9 @@ uses
|
||||
{$ELSE}
|
||||
SysUtils,
|
||||
Classes,
|
||||
Generics,
|
||||
Graphics,
|
||||
{$IFNDEF VER5}Types, {$ENDIF VER5}
|
||||
{$ENDIF VER6P}
|
||||
{$ENDIF VER15P}
|
||||
ocv.core.types_c;
|
||||
|
||||
Type
|
||||
@ -89,7 +88,11 @@ Type
|
||||
of object;
|
||||
|
||||
TocvRect = Type TRect;
|
||||
{$IFDEF VER17P}
|
||||
TocvRects = TArray<TocvRect>;
|
||||
{$ELSE}
|
||||
TocvRects = Array of TocvRect;
|
||||
{$ENDIF}
|
||||
|
||||
TOnOcvHaarCascade = procedure(Sender: TObject; const IplImage: IocvImage; const HaarRects: TocvRects) of object;
|
||||
TOnOcvRect = procedure(Sender: TObject; const IplImage: IocvImage; const Rect: TocvRect) of object;
|
||||
@ -114,7 +117,7 @@ Type
|
||||
TocvReceiverList = class(TThreadList) // <IocvDataReceiver>;
|
||||
public
|
||||
procedure Add(Item: IocvDataReceiver);
|
||||
procedure Remove(Item: IocvDataReceiver); inline;
|
||||
procedure Remove(Item: IocvDataReceiver); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
end;
|
||||
|
||||
TocvDataSource = class(TComponent, IocvDataSource)
|
||||
|
@ -83,6 +83,8 @@
|
||||
// opencv\modules\core\include\opencv2\core\types_c.h
|
||||
// *************************************************************************************************
|
||||
|
||||
{$I OpenCV.inc}
|
||||
|
||||
{$IFDEF DEBUG}
|
||||
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O-,P+,Q+,R+,S-,T-,U-,V+,W+,X+,Y+,Z1}
|
||||
{$ELSE}
|
||||
@ -94,7 +96,9 @@
|
||||
{$WARN UNSAFE_TYPE OFF}
|
||||
{$WARN UNSAFE_CODE OFF}
|
||||
{$WARN UNSAFE_CAST OFF}
|
||||
{$IFDEF VER12P}
|
||||
{$POINTERMATH ON}
|
||||
{$ENDIF}
|
||||
|
||||
unit ocv.core.types_c;
|
||||
|
||||
@ -125,6 +129,25 @@ type
|
||||
TpCVCharArray = array [0 .. 1] of pCVChar;
|
||||
ppCVChar = ^TpCVCharArray;
|
||||
CVChar = AnsiChar;
|
||||
{$IFNDEF VER16P}
|
||||
{$IFDEF CLR}
|
||||
{$IFDEF VER11P}
|
||||
NativeInt = size_t;
|
||||
NativeUInt = size_t;
|
||||
{$ELSE}
|
||||
NativeInt = Integer;
|
||||
NativeUInt = Cardinal;
|
||||
{$ENDIF}
|
||||
{$ELSE}
|
||||
{$IFDEF FPC}
|
||||
NativeInt = SizeInt;
|
||||
NativeUInt = SizeUInt;
|
||||
{$ELSE}
|
||||
NativeInt = Integer;
|
||||
NativeUInt = Cardinal;
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
|
||||
function strdup(const str: pCVChar): pCVChar;
|
||||
function cv_stricmp(const str1, str2: pCVChar): Integer;
|
||||
@ -264,7 +287,7 @@ const
|
||||
// CvRNG rng = seed ? (uint64)seed : (uint64)(int64)-1;
|
||||
// return rng;
|
||||
// }
|
||||
function cvRNG(seed: int64 = -1): TCvRNG; inline;
|
||||
function cvRNG(seed: int64 = -1): TCvRNG; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
(****************************************************************************************\
|
||||
* Image cType (IplImage) *
|
||||
@ -454,14 +477,14 @@ const
|
||||
{$EXTERNALSYM CV_USRTYPE1}
|
||||
CV_MAT_DEPTH_MASK = (CV_DEPTH_MAX - 1);
|
||||
{$EXTERNALSYM CV_MAT_DEPTH_MASK}
|
||||
function CV_8UC1: Integer; inline;
|
||||
function CV_8UC1: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{$EXTERNALSYM CV_8UC1}
|
||||
(*
|
||||
CV_8UC2 = CV_MAKETYPE(CV_8U, 2);
|
||||
{$EXTERNALSYM CV_8UC2}
|
||||
*)
|
||||
function CV_8UC3: Integer; inline;
|
||||
function CV_8UC3: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_8UC3}
|
||||
(*
|
||||
CV_8UC4 = CV_MAKETYPE(CV_8U, 4);
|
||||
@ -504,7 +527,7 @@ function CV_8UC3: Integer; inline;
|
||||
// const
|
||||
// CV_32SC2 = CV_MAKETYPE(CV_32S, 2);
|
||||
{$EXTERNALSYM CV_32SC2}
|
||||
function CV_32SC2: Integer; inline;
|
||||
function CV_32SC2: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
(*
|
||||
const
|
||||
@ -523,9 +546,9 @@ function CV_32SC2: Integer; inline;
|
||||
CV_32FC1 = CV_MAKETYPE(CV_32F, 1);
|
||||
{$EXTERNALSYM CV_32FC1}
|
||||
*)
|
||||
function CV_32FC2: Integer; inline;
|
||||
function CV_32FC2: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_32FC2}
|
||||
function CV_32FC3: Integer; inline;
|
||||
function CV_32FC3: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_32FC3}
|
||||
(*
|
||||
const
|
||||
@ -537,11 +560,11 @@ function CV_32FC3: Integer; inline;
|
||||
CV_32FC(n)CV_MAKETYPE(CV_32F, (n));
|
||||
*)
|
||||
|
||||
function CV_64FC1: Integer; inline;
|
||||
function CV_64FC1: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_64FC1}
|
||||
function CV_64FC2: Integer; inline;
|
||||
function CV_64FC2: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_64FC2}
|
||||
function CV_64FC3: Integer; inline;
|
||||
function CV_64FC3: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$EXTERNALSYM CV_64FC3}
|
||||
(*
|
||||
const
|
||||
@ -555,7 +578,7 @@ function CV_64FC3: Integer; inline;
|
||||
|
||||
// * get reference to pixel at (col,row),
|
||||
// for multi-channel images (col) should be multiplied by number of channels */
|
||||
function CV_IMAGE_ELEM(image: pIplImage; size_elemtype, row, col: Integer): Pointer; inline;
|
||||
function CV_IMAGE_ELEM(image: pIplImage; size_elemtype, row, col: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)])
|
||||
|
||||
const
|
||||
@ -757,7 +780,7 @@ type
|
||||
z: Single;
|
||||
end;
|
||||
|
||||
function cvPoint3D32f(const x, y, z: Double): TCvPoint3D32f; inline;
|
||||
function cvPoint3D32f(const x, y, z: Double): TCvPoint3D32f; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
Type
|
||||
TCvPoint2D64f = record
|
||||
@ -991,7 +1014,7 @@ const
|
||||
{$EXTERNALSYM CV_SET_ELEM_FREE_FLAG}
|
||||
// Checks whether the element pointed by ptr belongs to a set or not
|
||||
// #define CV_IS_SET_ELEM( ptr ) (((CvSetElem*)(ptr))->flags >= 0)
|
||||
function CV_IS_SET_ELEM(ptr: Pointer): Boolean; // inline;
|
||||
function CV_IS_SET_ELEM(ptr: Pointer): Boolean; // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// ***************************************************************************************
|
||||
// * Multi-dimensional sparse cArray (CvSparseMat) *
|
||||
@ -1254,7 +1277,7 @@ const
|
||||
/// / >> Following declaration is a macro definition!
|
||||
|
||||
// CV_IS_SEQ_CLOSED(seq)(((seq)^.flags and CV_SEQ_FLAG_CLOSED) <> 0);
|
||||
function CV_IS_SEQ_CLOSED(const Seq: pCvSeq): Boolean; inline;
|
||||
function CV_IS_SEQ_CLOSED(const Seq: pCvSeq): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
/// / >> Following declaration is a macro definition!
|
||||
// const
|
||||
@ -1262,7 +1285,7 @@ function CV_IS_SEQ_CLOSED(const Seq: pCvSeq): Boolean; inline;
|
||||
|
||||
// Following declaration is a macro definition!
|
||||
// CV_IS_SEQ_HOLE(seq)(((seq)^.flags and CV_SEQ_FLAG_HOLE) <> 0);
|
||||
function CV_IS_SEQ_HOLE(const Seq: pCvSeq): Boolean; inline;
|
||||
function CV_IS_SEQ_HOLE(const Seq: pCvSeq): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
/// / >> Following declaration is a macro definition!
|
||||
// const
|
||||
@ -1346,9 +1369,11 @@ type
|
||||
(seq)->first->data + (index) * sizeof(elem_type) : \
|
||||
cvGetSeqElem( (CvSeq*)(seq), (index) )))
|
||||
}
|
||||
function CV_SEQ_ELEM(Seq: pCvSeq; const size_of_elem: Integer; index: Integer): Pointer; inline;
|
||||
{$IFDEF VER15P}
|
||||
function CV_SEQ_ELEM(Seq: pCvSeq; const size_of_elem: Integer; index: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{#define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) )}
|
||||
function CV_GET_SEQ_ELEM(const size_of_elem: Integer; Seq: pCvSeq; index: Integer): Pointer; inline;
|
||||
function CV_GET_SEQ_ELEM(const size_of_elem: Integer; Seq: pCvSeq; index: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$ENDIF VER15P}
|
||||
|
||||
// (* Add element to sequence: *)
|
||||
// // >> Following declaration is a macro definition!
|
||||
@ -1363,7 +1388,7 @@ function CV_GET_SEQ_ELEM(const size_of_elem: Integer; Seq: pCvSeq; index: Intege
|
||||
// Assert((writer).ptr <= (writer).block_max - SizeOf(elem));
|
||||
// memcpy((writer).ptr, and (elem), SizeOf(elem)); (writer).ptr := mod +SizeOf(elem) then; end;
|
||||
|
||||
function CV_CAST_8U(t: Integer): uchar; inline;
|
||||
function CV_CAST_8U(t: Integer): uchar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
(*
|
||||
/* Move reader position forward: */
|
||||
@ -1376,7 +1401,7 @@ function CV_CAST_8U(t: Integer): uchar; inline;
|
||||
}
|
||||
*)
|
||||
procedure CV_NEXT_SEQ_ELEM(const elem_size: Integer; const Reader: TCvSeqReader);
|
||||
// inline;
|
||||
// {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// (* Move reader position backward: *)
|
||||
// // >> Following declaration is a macro definition!
|
||||
@ -1393,7 +1418,7 @@ procedure CV_NEXT_SEQ_ELEM(const elem_size: Integer; const Reader: TCvSeqReader)
|
||||
CV_NEXT_SEQ_ELEM( sizeof(elem), reader ) \
|
||||
}
|
||||
*)
|
||||
procedure CV_READ_SEQ_ELEM(const Elem: Pointer; const Reader: TCvSeqReader; const SizeOfElem: Integer); // inline;
|
||||
procedure CV_READ_SEQ_ELEM(const Elem: Pointer; const Reader: TCvSeqReader; const SizeOfElem: Integer); // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
|
||||
// (* Read element and move read position backward: *)
|
||||
@ -1582,7 +1607,7 @@ const
|
||||
{$EXTERNALSYM CV_NODE_TYPE_MASK}
|
||||
// >> Following declaration is a macro definition!
|
||||
// CV_NODE_TYPE(flags)((flags) and CV_NODE_TYPE_MASK);
|
||||
function CV_NODE_TYPE(const flags: Integer): Integer; inline;
|
||||
function CV_NODE_TYPE(const flags: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
const
|
||||
(*file node flags*)
|
||||
@ -1595,14 +1620,13 @@ const
|
||||
CV_NODE_NAMED = 64;
|
||||
{$EXTERNALSYM CV_NODE_NAMED}
|
||||
// CV_NODE_IS_INT(flags) (CV_NODE_TYPE(flags) == CV_NODE_INT)
|
||||
function CV_NODE_IS_INT(const flags: Integer): Boolean; inline;
|
||||
function CV_NODE_IS_INT(const flags: Integer): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// CV_NODE_IS_REAL(flags) (CV_NODE_TYPE(flags) == CV_NODE_REAL)
|
||||
function CV_NODE_IS_REAL(const flags: Integer): Boolean; inline;
|
||||
function CV_NODE_IS_REAL(const flags: Integer): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// const CV_NODE_IS_INT(flags)(CV_NODE_TYPE(flags) = CV_NODE_INT)
|
||||
// const CV_NODE_IS_REAL(flags) (CV_NODE_TYPE(flags) = CV_NODE_REAL)
|
||||
function CV_NODE_IS_STRING(const flags: Integer): Boolean;
|
||||
inline
|
||||
function CV_NODE_IS_STRING(const flags: Integer): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// (CV_NODE_TYPE(flags) = CV_NODE_STRING)
|
||||
// const CV_NODE_IS_SEQ(flags) (CV_NODE_TYPE(flags) = CV_NODE_SEQ)
|
||||
// const CV_NODE_IS_MAP(flags) (CV_NODE_TYPE(flags) = CV_NODE_MAP)
|
||||
@ -1701,10 +1725,10 @@ type
|
||||
(* End of file.*)
|
||||
|
||||
// #define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t))
|
||||
procedure CV_SWAP(var a, b, t: pIplImage); inline; overload;
|
||||
procedure CV_SWAP(var a, b, t: pCvPoint2D32f); inline; overload;
|
||||
procedure CV_SWAP(var a, b, t: pCvMat); inline; overload;
|
||||
procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
procedure CV_SWAP(var a, b, t: pIplImage); {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
procedure CV_SWAP(var a, b, t: pCvPoint2D32f); {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
procedure CV_SWAP(var a, b, t: pCvMat); {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
procedure CV_SWAP(var a, b, t: Pointer); {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
|
||||
// {$IFNDEF MIN}
|
||||
// {$HPPEMIT '# define MIN(a,b) ((a) > (b) ? (b) : (a))'}
|
||||
@ -1716,12 +1740,12 @@ procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_IMIN(
|
||||
//
|
||||
// const a, b: Integer): Integer; inline;
|
||||
// const a, b: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { ((a) xor (((a) xor (b)) and (((a) < (b)) - 1))): INT; }
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_IMAX(
|
||||
//
|
||||
// const a, b: Integer): Integer; inline;
|
||||
// const a, b: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { ((a) xor (((a) xor (b)) and (((a) > (b)) - 1))); }
|
||||
//
|
||||
// (* absolute value without jumps *)
|
||||
@ -1733,17 +1757,17 @@ procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_CMP(
|
||||
//
|
||||
// const a, b: Integer): Integer; inline;
|
||||
// const a, b: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { (((a) > (b)) - ((a) < (b))); }
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_SIGN(
|
||||
//
|
||||
// const a: Integer): Integer; inline;
|
||||
// const a: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { PCV_CMP((a), 0); }
|
||||
// // CV_INLINE
|
||||
// class function cvRound<T: packed record >(
|
||||
//
|
||||
// const v1: T): Integer; inline;
|
||||
// const v1: T): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// (*
|
||||
// result := _mm_cvtsd_si32(T);
|
||||
// {$HPPEMIT '#elif defined _MSC_VER && defined _M_IX86'}
|
||||
@ -1837,12 +1861,12 @@ procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
// {$EXTERNALSYM CV_TYPE_NAME_IMAGE}
|
||||
// class function CV_IS_IMAGE_HDR(
|
||||
//
|
||||
// const img: pIplImage): Integer; inline;
|
||||
// const img: pIplImage): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { ((img) <> 0 and ((IplImage(img))^.nSize = SizeOf(IplImage)) }
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_IS_IMAGE(
|
||||
//
|
||||
// const img: pIplImage): Integer; inline;
|
||||
// const img: pIplImage): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // (CV_IS_IMAGE_HDR(img) and ((IplImage)img)^.imageData <> 0);
|
||||
// (* for storing double-precision
|
||||
// floating point data in IplImage's */
|
||||
@ -1856,31 +1880,31 @@ procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_MAT_DEPTH(
|
||||
//
|
||||
// const flags: Integer): Integer; inline;
|
||||
// const flags: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// { ((flags) and CV_MAT_DEPTH_MASK); }
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_MAKETYPE(
|
||||
//
|
||||
// const depth, cn: Integer): Integer; inline;
|
||||
// const depth, cn: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // (CV_MAT_DEPTH(depth) + (((cn) - 1) shl CV_CN_SHIFT));
|
||||
// class function CV_MAKE_TYPE(
|
||||
//
|
||||
// const depth, cn: Integer): Integer; inline;
|
||||
// const depth, cn: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // (CV_MAT_DEPTH(depth) + (((cn) - 1) shl CV_CN_SHIFT));
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_8UC(
|
||||
//
|
||||
// const n: Integer): Integer; inline;
|
||||
// const n: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // CV_MAKETYPE(CV_8U, (n));
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_8SC(
|
||||
//
|
||||
// const n: Integer): Integer; inline;
|
||||
// const n: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // CV_MAKETYPE(CV_8S, (n));
|
||||
// // >> Following declaration is a macro definition!
|
||||
// class function CV_16UC(
|
||||
//
|
||||
// const n: Integer): Integer; inline;
|
||||
// const n: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// // CV_MAKETYPE(CV_16U, (n));
|
||||
// (*
|
||||
// // >> Following declaration is a macro definition!
|
||||
@ -1906,7 +1930,7 @@ procedure CV_SWAP(var a, b, t: Pointer); inline; overload;
|
||||
//
|
||||
// const CV_IS_MASK_ARR(mat)(((mat)^.cType and (CV_MAT_TYPE_MASK and ~ CV_8SC1)) = 0)
|
||||
|
||||
function CV_ARE_TYPES_EQ(const mat1, mat2: pCvMat): Boolean; inline;
|
||||
function CV_ARE_TYPES_EQ(const mat1, mat2: pCvMat): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// const CV_ARE_CNS_EQ(mat1, mat2)((((mat1)^.cType xor (mat2)^.cType) and CV_MAT_CN_MASK) = 0)
|
||||
//
|
||||
@ -1967,7 +1991,7 @@ function CV_ARE_TYPES_EQ(const mat1, mat2: pCvMat): Boolean; inline;
|
||||
// return CV_ELEM_SIZE1(depth)*8 | (depth == CV_8S || depth == CV_16S ||
|
||||
// depth == CV_32S ? IPL_DEPTH_SIGN : 0);
|
||||
// }
|
||||
function cvIplDepth(_type: Integer): Integer; // inline;
|
||||
function cvIplDepth(_type: Integer): Integer; // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
//
|
||||
// (* ***************************************************************************************\
|
||||
@ -2010,11 +2034,11 @@ function cvIplDepth(_type: Integer): Integer; // inline;
|
||||
|
||||
// (* ****************************** CvPoint and variants ********************************** *)
|
||||
|
||||
function CvPoint2D32f(x, y: Double): TCvPoint2D32f; inline;
|
||||
function CvPoint2D32f(x, y: Double): TCvPoint2D32f; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
function cvPointTo32f(point: TCvPoint): TCvPoint2D32f; inline;
|
||||
function cvPointTo32f(point: TCvPoint): TCvPoint2D32f; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
function cvPointFrom32f(point: TCvPoint2D32f): TCvPoint; inline;
|
||||
function cvPointFrom32f(point: TCvPoint2D32f): TCvPoint; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// CV_INLINE CvPoint3D32f CvPoint3D32f(Double x, Double y, Double z)
|
||||
//
|
||||
@ -2092,7 +2116,7 @@ function cvPointFrom32f(point: TCvPoint2D32f): TCvPoint; inline;
|
||||
// return scalar;
|
||||
// }
|
||||
|
||||
function cvRealScalar(val0: Double): TCvScalar; inline;
|
||||
function cvRealScalar(val0: Double): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// (*************************************************************************************** *)
|
||||
// (* Dynamic Data structures *)
|
||||
@ -2114,7 +2138,7 @@ function cvRealScalar(val0: Double): TCvScalar; inline;
|
||||
|
||||
// (* ********************************** CvTermCriteria ************************************ *)
|
||||
// (* CV_INLINE CvTermCriteria CvTermCriteria(Integer cType, Integer max_iter, Double epsilon)
|
||||
function CvTermCriteria(_type: Integer; max_iter: Integer; epsilon: Double): TCvTermCriteria; inline;
|
||||
function CvTermCriteria(_type: Integer; max_iter: Integer; epsilon: Double): TCvTermCriteria; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
(*
|
||||
CV_INLINE int cvFloor( double value )
|
||||
@ -2140,13 +2164,13 @@ function CvTermCriteria(_type: Integer; max_iter: Integer; epsilon: Double): TCv
|
||||
#endif
|
||||
}
|
||||
*)
|
||||
function cvFloor(value: Double): Integer; inline;
|
||||
function cvScalarAll(val0123: Double): TCvScalar; inline;
|
||||
function CvPoint(const x, y: Integer): TCvPoint; inline;
|
||||
function CvSize(const width, height: Integer): TCvSize; inline;
|
||||
function CvScalar(const val0: Double; const val1: Double = 0; const val2: Double = 0; const val3: Double = 0): TCvScalar; inline;
|
||||
function cvRandInt(Var rng: TCvRNG): Cardinal; inline;
|
||||
function CvRect(Const x, y, width, height: Integer): TCvRect; inline;
|
||||
function cvFloor(value: Double): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function cvScalarAll(val0123: Double): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CvPoint(const x, y: Integer): TCvPoint; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CvSize(const width, height: Integer): TCvSize; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CvScalar(const val0: Double; const val1: Double = 0; const val2: Double = 0; const val3: Double = 0): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function cvRandInt(Var rng: TCvRNG): Cardinal; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CvRect(Const x, y, width, height: Integer): TCvRect; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function cvRound(value: Double): Integer;
|
||||
|
||||
const
|
||||
@ -2182,24 +2206,30 @@ function CV_MAT_TYPE(const flags: Integer): Integer;
|
||||
function CV_ELEM_SIZE1(const _type: Integer): Integer;
|
||||
function CV_ELEM_SIZE(const _type: Integer): Integer;
|
||||
function CV_MAT_CN(const flags: Integer): Integer;
|
||||
function CV_32FC1: Integer; inline;
|
||||
function CV_32SC1: Integer; inline;
|
||||
function CV_MAKETYPE(depth, cn: Integer): Integer; inline;
|
||||
function CV_32FC1: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CV_32SC1: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function CV_MAKETYPE(depth, cn: Integer): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// #define CV_MAT_ELEM( mat, elemtype, row, col )
|
||||
// (*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype)))
|
||||
function CV_MAT_ELEM(const mat: TCvMat; const elemsize: Integer; const row, col: Integer): Pointer; inline;
|
||||
function CV_MAT_ELEM(const mat: TCvMat; const elemsize: Integer; const row, col: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
// #define CV_MAT_ELEM_PTR_FAST( mat, row, col, pix_size )
|
||||
// (assert( (unsigned)(row) < (unsigned)(mat).rows &&
|
||||
// (unsigned)(col) < (unsigned)(mat).cols ),
|
||||
// (mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col))
|
||||
function CV_MAT_ELEM_PTR_FAST(const mat: TCvMat; const row, col, pix_size: Integer): Pointer; inline;
|
||||
function CV_MAT_ELEM_PTR_FAST(const mat: TCvMat; const row, col, pix_size: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Variant): Variant; inline; overload;
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Pointer): Pointer; inline; overload;
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Variant): Variant; {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Pointer): Pointer; {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
|
||||
implementation
|
||||
|
||||
uses ocv.core_c, System.SysUtils;
|
||||
uses
|
||||
ocv.core_c,
|
||||
{$IFDEF VER15P}
|
||||
System.SysUtils;
|
||||
{$ELSE}
|
||||
SysUtils;
|
||||
{$ENDIF VER15P}
|
||||
|
||||
function strdup(const str: pCVChar): pCVChar;
|
||||
begin
|
||||
@ -2353,7 +2383,7 @@ begin
|
||||
Result := Round(value);
|
||||
end;
|
||||
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Variant): Variant; inline; overload;
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Variant): Variant; {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
begin
|
||||
if Conditional then
|
||||
Result := ifTrue
|
||||
@ -2361,7 +2391,7 @@ begin
|
||||
Result := ifFalse;
|
||||
end;
|
||||
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Pointer): Pointer; inline; overload;
|
||||
function iif(const Conditional: Boolean; const ifTrue, ifFalse: Pointer): Pointer; {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
begin
|
||||
if Conditional then
|
||||
Result := ifTrue
|
||||
@ -2387,13 +2417,12 @@ begin
|
||||
Result := CV_NODE_TYPE(flags) = CV_NODE_REAL;
|
||||
end;
|
||||
|
||||
function CV_NODE_IS_STRING(const flags: Integer): Boolean;
|
||||
inline
|
||||
function CV_NODE_IS_STRING(const flags: Integer): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := CV_NODE_TYPE(flags) = CV_NODE_STRING
|
||||
end;
|
||||
|
||||
procedure CV_READ_SEQ_ELEM(const Elem: Pointer; const Reader: TCvSeqReader; const SizeOfElem: Integer); // inline;
|
||||
procedure CV_READ_SEQ_ELEM(const Elem: Pointer; const Reader: TCvSeqReader; const SizeOfElem: Integer); // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
// assert( (reader).seq->elem_size == sizeof(elem));
|
||||
Assert(Reader.Seq^.elem_size = SizeOfElem);
|
||||
@ -2403,7 +2432,7 @@ begin
|
||||
CV_NEXT_SEQ_ELEM(SizeOfElem, Reader);
|
||||
end;
|
||||
|
||||
procedure CV_NEXT_SEQ_ELEM(const elem_size: Integer; const Reader: TCvSeqReader); // inline;
|
||||
procedure CV_NEXT_SEQ_ELEM(const elem_size: Integer; const Reader: TCvSeqReader); // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
Var
|
||||
ptr: PInteger;
|
||||
begin
|
||||
@ -2451,7 +2480,7 @@ begin
|
||||
Result.y := y;
|
||||
end;
|
||||
|
||||
function cvPoint3D32f(const x, y, z: Double): TCvPoint3D32f; inline;
|
||||
function cvPoint3D32f(const x, y, z: Double): TCvPoint3D32f; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result.x := x;
|
||||
Result.y := y;
|
||||
@ -2485,12 +2514,6 @@ begin
|
||||
Result := CV_MAKETYPE(CV_32S, 2);
|
||||
end;
|
||||
|
||||
function CV_GET_SEQ_ELEM;
|
||||
begin
|
||||
{#define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) )}
|
||||
Result := CV_SEQ_ELEM(Seq, size_of_elem, index);
|
||||
end;
|
||||
|
||||
function CV_CAST_8U(t: Integer): uchar;
|
||||
begin
|
||||
if (not(t and (not 255)) <> 0) then
|
||||
@ -2501,7 +2524,14 @@ begin
|
||||
Result := 0;
|
||||
end;
|
||||
|
||||
function CV_SEQ_ELEM(Seq: pCvSeq; const size_of_elem: Integer; index: Integer): Pointer; inline;
|
||||
{$IFDEF VER15P}
|
||||
function CV_GET_SEQ_ELEM;
|
||||
begin
|
||||
{#define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) )}
|
||||
Result := CV_SEQ_ELEM(Seq, size_of_elem, index);
|
||||
end;
|
||||
|
||||
function CV_SEQ_ELEM(Seq: pCvSeq; const size_of_elem: Integer; index: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
// assert(sizeof((seq)->first[0]) == sizeof(CvSeqBlock) && (seq)->elem_size == sizeof(elem_type))
|
||||
Assert(Assigned(Seq^.first) and (SizeOf(Seq^.first[0]) = SizeOf(TCvSeqBlock)) and (Seq^.elem_size = size_of_elem));
|
||||
@ -2513,8 +2543,9 @@ begin
|
||||
// cvGetSeqElem( (CvSeq*)(seq), (index) )))
|
||||
Result := cvGetSeqElem(Seq, index);
|
||||
end;
|
||||
{$ENDIF VER15P}
|
||||
|
||||
function CV_8UC1: Integer; inline;
|
||||
function CV_8UC1: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := CV_MAKETYPE(CV_8U, 1);
|
||||
end;
|
||||
@ -2524,7 +2555,7 @@ begin
|
||||
Result := CV_MAKETYPE(CV_32F, 2);
|
||||
end;
|
||||
|
||||
function CV_32FC3: Integer; inline;
|
||||
function CV_32FC3: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := CV_MAKETYPE(CV_32F, 3);
|
||||
end;
|
||||
@ -2539,7 +2570,7 @@ begin
|
||||
Result := CV_MAKETYPE(CV_64F, 2);
|
||||
end;
|
||||
|
||||
function CV_64FC3: Integer; inline;
|
||||
function CV_64FC3: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := CV_MAKETYPE(CV_64F, 3);
|
||||
end;
|
||||
@ -2549,19 +2580,19 @@ begin
|
||||
Result := CV_MAKETYPE(CV_8U, 3);
|
||||
end;
|
||||
|
||||
function CV_IS_SET_ELEM(ptr: Pointer): Boolean; // inline;
|
||||
function CV_IS_SET_ELEM(ptr: Pointer): Boolean; // {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
// #define CV_IS_SET_ELEM( ptr ) (((CvSetElem*)(ptr))->flags >= 0)
|
||||
Result := Assigned(ptr) and (pCvSetElem(ptr)^.flags >= 0);
|
||||
end;
|
||||
|
||||
function CV_IMAGE_ELEM(image: pIplImage; size_elemtype, row, col: Integer): Pointer; inline;
|
||||
function CV_IMAGE_ELEM(image: pIplImage; size_elemtype, row, col: Integer): Pointer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
// (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)])
|
||||
Result := pByte(image^.imageData) + image^.widthStep * row + col * size_elemtype;
|
||||
Result := {$IFDEF D7}Pointer({$ENDIF D7}{$IFDEF VER9P}pByte{$ELSE}Integer{$ENDIF}(image^.imageData) + image^.widthStep * row + col * size_elemtype{$IFDEF D7}){$ENDIF D7};
|
||||
end;
|
||||
|
||||
function cvRealScalar(val0: Double): TCvScalar; inline;
|
||||
function cvRealScalar(val0: Double): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result.val[0] := val0;
|
||||
Result.val[1] := 0;
|
||||
@ -2569,7 +2600,7 @@ begin
|
||||
Result.val[3] := 0;
|
||||
end;
|
||||
|
||||
function cvRNG(seed: int64 = -1): TCvRNG; inline;
|
||||
function cvRNG(seed: int64 = -1): TCvRNG; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
// CvRNG rng = seed ? (uint64)seed : (uint64)(int64)-1;
|
||||
Result := iif(seed > 0, seed, uint64(int64(-1)));
|
||||
@ -2581,7 +2612,7 @@ begin
|
||||
// 0x124489 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */
|
||||
// #define CV_ELEM_SIZE1(type) \
|
||||
// ((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15)
|
||||
Result := ((((int64(SizeOf(size_t)) shl 28) or $8442211) shr (CV_MAT_DEPTH(_type) * 4)) and 15);
|
||||
Result := ((((int64(SizeOf(NativeUInt)) shl 28) or $8442211) shr (CV_MAT_DEPTH(_type) * 4)) and 15);
|
||||
end;
|
||||
|
||||
function cvIplDepth(_type: Integer): Integer;
|
||||
@ -2595,17 +2626,17 @@ begin
|
||||
Result := Result or IPL_DEPTH_SIGN;
|
||||
end;
|
||||
|
||||
function CV_ARE_TYPES_EQ(const mat1, mat2: pCvMat): Boolean; inline;
|
||||
function CV_ARE_TYPES_EQ(const mat1, mat2: pCvMat): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := ((((mat1)^._type xor (mat2)^._type) and CV_MAT_TYPE_MASK) = 0);
|
||||
end;
|
||||
|
||||
function CV_IS_SEQ_CLOSED(const Seq: pCvSeq): Boolean; inline;
|
||||
function CV_IS_SEQ_CLOSED(const Seq: pCvSeq): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := (Seq^.flags and CV_SEQ_FLAG_CLOSED) <> 0;
|
||||
end;
|
||||
|
||||
function CV_IS_SEQ_HOLE(const Seq: pCvSeq): Boolean; inline;
|
||||
function CV_IS_SEQ_HOLE(const Seq: pCvSeq): Boolean; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := (Seq^.flags and CV_SEQ_FLAG_HOLE) <> 0;
|
||||
end;
|
||||
|
@ -111,7 +111,7 @@ uses
|
||||
(as well as other OpenCV functions that call cvAlloc)
|
||||
raises an error.
|
||||
}
|
||||
function cvAlloc(size: size_t): Pointer; cdecl;
|
||||
function cvAlloc(size: NativeUInt): Pointer; cdecl;
|
||||
|
||||
{<free> wrapper.
|
||||
Here and further all the memory releasing functions
|
||||
@ -120,7 +120,7 @@ function cvAlloc(size: size_t): Pointer; cdecl;
|
||||
Passing cPointer to 0 cPointer is Ok: nothing happens in this
|
||||
}
|
||||
procedure cvFree_(ptr: Pointer); cdecl;
|
||||
procedure cvFree(var ptr); inline;
|
||||
procedure cvFree(var ptr); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Allocates and initializes IplImage header
|
||||
CVAPI(IplImage*) cvCreateImageHeader( CvSize size, int depth, int channels );
|
||||
@ -273,7 +273,7 @@ function cvGetRows(const arr: pCvArr; submat: pCvMat; start_row, end_row: Intege
|
||||
// {
|
||||
// return cvGetRows( arr, submat, row, row + 1, 1 );
|
||||
// }
|
||||
function cvGetRow(const arr: pCvArr; submat: pCvMat; row: Integer): pCvMat; inline;
|
||||
function cvGetRow(const arr: pCvArr; submat: pCvMat; row: Integer): pCvMat; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Selects column span of the input array: arr(:,start_col:end_col)
|
||||
(end_col is not included into the span)
|
||||
@ -286,7 +286,7 @@ function cvGetCols(const arr: pCvArr; submat: pCvMat; start_col, end_col: Intege
|
||||
// {
|
||||
// return cvGetCols( arr, submat, col, col + 1 );
|
||||
// }
|
||||
function cvGetCol(const arr: pCvArr; submat: pCvMat; col: Integer): pCvMat; inline;
|
||||
function cvGetCol(const arr: pCvArr; submat: pCvMat; col: Integer): pCvMat; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Select a diagonal of the input array.
|
||||
(diag = 0 means the main diagonal, >0 means a diagonal above the main one,
|
||||
@ -328,7 +328,7 @@ function cvInitMatNDHeader(mat: pCvMatND; dims: Integer; const sizes: pInteger;
|
||||
// {
|
||||
// cvReleaseMat( (CvMat**)mat );
|
||||
// }
|
||||
procedure cvReleaseMatND(var mat: pCvMatND); inline;
|
||||
procedure cvReleaseMatND(var mat: pCvMatND); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Creates a copy of CvMatND (except, may be, steps)
|
||||
CVAPI(CvMatND*) cvCloneMatND( const CvMatND* mat );
|
||||
@ -358,7 +358,9 @@ function cvCloneSparseMat(const mat: pCvSparseMat): pCvSparseMat; cdecl;
|
||||
function cvInitSparseMatIterator(const mat: pCvSparseMat; mat_iterator: pCvSparseMatIterator): pCvSparseNode; cdecl;
|
||||
|
||||
// returns next sparse array node (or NULL if there is no more nodes)
|
||||
function cvGetNextSparseNode(mat_iterator: pCvSparseMatIterator): pCvSparseNode; inline;
|
||||
{$IFDEF VER15P}
|
||||
function cvGetNextSparseNode(mat_iterator: pCvSparseMatIterator): pCvSparseNode; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
{$ENDIF VER15P}
|
||||
|
||||
// **************** matrix iterator: used for n-ary operations on dense arrays *********
|
||||
const
|
||||
@ -512,7 +514,7 @@ function cvGetImage(const arr: pCvArr; image_header: pIplImage): pIplImage; cdec
|
||||
function cvReshapeMatND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger)
|
||||
: pCvArr; cdecl;
|
||||
function cvReshapeND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger)
|
||||
: pCvArr; inline;
|
||||
: pCvArr; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{CVAPI(CvMat*) cvReshape( const pCvArr* arr, CvMat* header,
|
||||
int new_cn, int new_rows CV_DEFAULT(0) );
|
||||
@ -569,7 +571,7 @@ procedure cvCopy(const src: pCvArr; dst: pCvArr; const mask: pCvArr = nil); cdec
|
||||
const pCvArr* mask CV_DEFAULT(NULL) );
|
||||
}
|
||||
procedure cvSet(arr: pCvArr; value: TCvScalar; const mask: pCvArr = nil); cdecl; overload;
|
||||
procedure cvSet(mat: pCvMat; i, j: Integer; val: Single); inline; overload;
|
||||
procedure cvSet(mat: pCvMat; i, j: Integer; val: Single); {$IFDEF VER9P}inline;{$ENDIF} overload;
|
||||
|
||||
{Clears all the array elements (sets them to 0)
|
||||
CVAPI(void) cvSetZero( pCvArr* arr );
|
||||
@ -618,7 +620,7 @@ procedure cvConvertScale(const src: pCvArr; dst: pCvArr; scale: double = 1; shif
|
||||
// #define cvScale cvConvertScale
|
||||
procedure cvScale(const src: pCvArr; dst: pCvArr; scale: double = 1; shift: double = 0); cdecl;
|
||||
procedure cvCvtScale(const src: pCvArr; dst: pCvArr; scale: double = 1; shift: double = 0); cdecl;
|
||||
procedure cvConvert(const src: pCvArr; dst: pCvArr); inline;
|
||||
procedure cvConvert(const src: pCvArr; dst: pCvArr); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Performs linear transformation on every source array element,
|
||||
stores absolute value of the result:
|
||||
@ -670,7 +672,7 @@ procedure cvSub(const src1, src2: pIplImage; dst: pIplImage; const mask: pIplIma
|
||||
// cvAddS( src, cvScalar( -value.val[0], -value.val[1], -value.val[2], -value.val[3]),
|
||||
// dst, mask );
|
||||
// }
|
||||
procedure cvSubS(const src: pIplImage; value: TCvScalar; dst: pIplImage; const mask: pIplImage = nil); inline;
|
||||
procedure cvSubS(const src: pIplImage; value: TCvScalar; dst: pIplImage; const mask: pIplImage = nil); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{dst(mask) = value - src(mask)
|
||||
CVAPI(void) cvSubRS( const pCvArr* src, CvScalar value, pCvArr* dst,
|
||||
@ -699,7 +701,7 @@ procedure cvDiv(const src1, src2: pIplImage; dst: pIplImage; scale: double = 1);
|
||||
#define cvAXPY( A, real_scalar, B, C ) cvScaleAdd(A, cvRealScalar(real_scalar), B, C)
|
||||
}
|
||||
procedure cvScaleAdd(const src1: pIplImage; scale: TCvScalar; const src2: pIplImage; dst: pIplImage); cdecl;
|
||||
procedure cvAXPY(A: pIplImage; real_scalar: double; B, C: pIplImage); inline;
|
||||
procedure cvAXPY(A: pIplImage; real_scalar: double; B, C: pIplImage); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{dst = src1 * alpha + src2 * beta + gamma
|
||||
CVAPI(void) cvAddWeighted( const pCvArr* src1, double alpha,
|
||||
@ -724,7 +726,7 @@ procedure cvAnd(const src1: pIplImage; const src2: pIplImage; dst: pIplImage; ma
|
||||
// CVAPI(void) cvAbsDiff( const pCvArr* src1, const pCvArr* src2, pCvArr* dst );
|
||||
procedure cvAbsDiff(const src1: pCvArr; const src2: pCvArr; dst: pCvArr); cdecl;
|
||||
|
||||
function cvGet(const mat: pCvMat; i, j: Integer): Single; inline;
|
||||
function cvGet(const mat: pCvMat; i, j: Integer): Single; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
procedure cvCopyImage(const src: pIplImage; dst: pIplImage; const mask: pIplImage = nil); cdecl;
|
||||
procedure cvCvtPixToPlane(const src: pIplImage; dst0: pIplImage; dst1: pIplImage; dst2: pIplImage; dst3: pIplImage); cdecl;
|
||||
procedure cvCvtPlaneToPix(const src0: pIplImage; const src1: pIplImage; const src2: pIplImage; const src3: pIplImage;
|
||||
@ -989,7 +991,7 @@ procedure cvClearMemStorage(storage: pCvMemStorage); cdecl;
|
||||
CVAPI(CvSeq*) cvCreateSeq( int seq_flags, size_t header_size,
|
||||
size_t elem_size, CvMemStorage* storage );
|
||||
}
|
||||
function cvCreateSeq(seq_flags: Integer; header_size: size_t; elem_size: size_t; storage: pCvMemStorage): pCvSeq; cdecl;
|
||||
function cvCreateSeq(seq_flags: Integer; header_size: NativeUInt; elem_size: NativeUInt; storage: pCvMemStorage): pCvSeq; cdecl;
|
||||
|
||||
// Removes specified sequence element
|
||||
// CVAPI(void) cvSeqRemove( CvSeq* seq, int index );
|
||||
@ -1061,7 +1063,7 @@ function cvSeqPartition(const seq: pCvSeq; storage: pCvMemStorage; labels: pCvSe
|
||||
// ****************************************************************************************
|
||||
|
||||
// Following declaration is a macro definition!
|
||||
function CV_RGB(const r, g, B: double): TCvScalar; inline;
|
||||
function CV_RGB(const r, g, B: double): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
const
|
||||
CV_FILLED = -1;
|
||||
@ -1112,7 +1114,7 @@ procedure cvEllipse(img: pIplImage; center: TCvPoint; axes: TCvSize; angle: doub
|
||||
0, 360, color, thickness, line_type, shift );
|
||||
}
|
||||
procedure cvEllipseBox(img: pIplImage; box: TCvBox2D; color: TCvScalar; thickness: Integer = 1; line_type: Integer = 8;
|
||||
shift: Integer = 0); inline;
|
||||
shift: Integer = 0); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{Fills convex or monotonous polygon.
|
||||
CVAPI(void) cvFillConvexPoly( pCvArr* img, const CvPoint* pts, int npts, CvScalar color,
|
||||
@ -1179,7 +1181,7 @@ type
|
||||
procedure cvInitFont(font: pCvFont; font_face: Integer; hscale: double; vscale: double; shear: double = 0; thickness: Integer = 1;
|
||||
line_type: Integer = 8); cdecl;
|
||||
|
||||
function cvFont(scale: double; thickness: Integer = 1): TCvFont; inline;
|
||||
function cvFont(scale: double; thickness: Integer = 1): TCvFont; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{CVAPI(void) cvPutText( pCvArr* img, const char* text, CvPoint org,
|
||||
const CvFont* font, CvScalar color );
|
||||
@ -1275,7 +1277,7 @@ function cvGetFileNodeByName(const fs: pCvFileStorage; const map: pCvFileNode; c
|
||||
CV_NODE_IS_INT(node->tag) ? node->data.i :
|
||||
CV_NODE_IS_REAL(node->tag) ? cvRound(node->data.f) : 0x7fffffff;
|
||||
}
|
||||
function cvReadInt(const node: pCvFileNode; default_value: Integer = 0): Integer; inline;
|
||||
function cvReadInt(const node: pCvFileNode; default_value: Integer = 0): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{CV_INLINE int cvReadIntByName( const CvFileStorage* fs, const CvFileNode* map,
|
||||
const char* name, int default_value CV_DEFAULT(0) )
|
||||
@ -1283,14 +1285,14 @@ function cvReadInt(const node: pCvFileNode; default_value: Integer = 0): Integer
|
||||
return cvReadInt( cvGetFileNodeByName( fs, map, name ), default_value );
|
||||
}
|
||||
function cvReadIntByName(const fs: pCvFileStorage; const map: pCvFileNode; const name: pCvChar; default_value: Integer = 0)
|
||||
: Integer; inline;
|
||||
: Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// CV_INLINE const char* cvReadString( const CvFileNode* node,
|
||||
// const char* default_value CV_DEFAULT(NULL) )
|
||||
// {
|
||||
// return !node ? default_value : CV_NODE_IS_STRING(node->tag) ? node->data.str.ptr : 0;
|
||||
// }
|
||||
function cvReadString(const node: pCvFileNode; const default_value: pCvChar = nil): pCvChar; inline;
|
||||
function cvReadString(const node: pCvFileNode; const default_value: pCvChar = nil): pCvChar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// CV_INLINE const char* cvReadStringByName( const CvFileStorage* fs, const CvFileNode* map,
|
||||
// const char* name, const char* default_value CV_DEFAULT(NULL) )
|
||||
@ -1298,7 +1300,7 @@ function cvReadString(const node: pCvFileNode; const default_value: pCvChar = ni
|
||||
// return cvReadString( cvGetFileNodeByName( fs, map, name ), default_value );
|
||||
// }
|
||||
function cvReadStringByName(const fs: pCvFileStorage; const map: pCvFileNode; const name: pCvChar;
|
||||
const default_value: pCvChar = nil): pCvChar; inline;
|
||||
const default_value: pCvChar = nil): pCvChar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
{decodes standard or user-defined object and returns it
|
||||
CVAPI(void*) cvRead( CvFileStorage* fs, CvFileNode* node,
|
||||
@ -1334,7 +1336,7 @@ procedure cvRelease(var struct_ptr: pCvSeq); cdecl; overload;
|
||||
procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name: pCvChar; const comment: pCvChar;
|
||||
attributes: TCvAttrList); cdecl; overload;
|
||||
procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name: pCvChar = Nil; const comment: pCvChar = Nil);
|
||||
overload; inline;
|
||||
overload; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function cvLoad(const filename: pCvChar; memstorage: pCvMemStorage = Nil; const name: pCvChar = nil;
|
||||
const real_name: ppChar = nil): Pointer; cdecl;
|
||||
|
||||
@ -1342,7 +1344,7 @@ function cvLoad(const filename: pCvChar; memstorage: pCvMemStorage = Nil; const
|
||||
|
||||
{helper functions for RNG initialization and accurate time measurement:
|
||||
uses internal clock counter on x86}
|
||||
function cvGetTickCount: int64; inline;
|
||||
function cvGetTickCount: int64; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
function cvGetTickFrequency: double;
|
||||
|
||||
// *********************************** CPU capabilities ***********************************/
|
||||
@ -1446,7 +1448,7 @@ function cvCreateMatNDHeader; external core_lib;
|
||||
function cvCreateMatND; external core_lib;
|
||||
function cvInitMatNDHeader; external core_lib;
|
||||
|
||||
procedure cvReleaseMatND(var mat: pCvMatND); inline;
|
||||
procedure cvReleaseMatND(var mat: pCvMatND); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
cvReleaseMat(pCvMat(mat));
|
||||
end;
|
||||
@ -1477,6 +1479,7 @@ function cvInitSparseMatIterator; external core_lib;
|
||||
// return NULL;
|
||||
// }
|
||||
// }
|
||||
{$IFDEF VER15P}
|
||||
function cvGetNextSparseNode(mat_iterator: pCvSparseMatIterator): pCvSparseNode;
|
||||
var
|
||||
idx: Integer;
|
||||
@ -1504,6 +1507,7 @@ begin
|
||||
Result := nil;
|
||||
end;
|
||||
end;
|
||||
{$ENDIF VER15P}
|
||||
|
||||
function cvInitNArrayIterator; external core_lib;
|
||||
function cvNextNArraySlice; external core_lib;
|
||||
@ -1536,7 +1540,7 @@ function cvGetImage; external core_lib;
|
||||
function cvReshapeMatND; external core_lib;
|
||||
|
||||
function cvReshapeND(const arr: pCvArr; sizeof_header: Integer; header: pCvArr; new_cn, new_dims: Integer; new_sizes: pInteger)
|
||||
: pCvArr; inline;
|
||||
: pCvArr; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := cvReshapeMatND(arr, sizeof(sizeof_header), header, new_cn, new_dims, new_sizes);
|
||||
end;
|
||||
@ -1550,8 +1554,8 @@ procedure cvGetRawData; external core_lib;
|
||||
|
||||
procedure _cvGetSize(const arr: pCvArr; Var size: TCvSize); external core_lib name 'cvGetSize';
|
||||
|
||||
{$IFDEF CPUX86}
|
||||
|
||||
{$IFDEF VER16P} // XE2..XE6
|
||||
{$IFDEF CPU86}
|
||||
function cvGetSize(const arr: pCvArr): TCvSize; assembler;
|
||||
asm
|
||||
// mov eax,arr // â eax óæå õðàíèòñÿ àäðåñ arr
|
||||
@ -1565,7 +1569,6 @@ asm
|
||||
mov Result.height,ecx
|
||||
end;
|
||||
{$ELSE}
|
||||
|
||||
function cvGetSize(const arr: pCvArr): TCvSize; assembler;
|
||||
asm
|
||||
call _cvGetSize
|
||||
@ -1573,11 +1576,26 @@ asm
|
||||
shr rax,32
|
||||
mov Result.height,eax
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$ENDIF CPU86}
|
||||
{$ELSE}
|
||||
function cvGetSize(const arr: pCvArr): TCvSize; assembler;
|
||||
asm
|
||||
// mov eax,arr // â eax óæå õðàíèòñÿ àäðåñ arr
|
||||
push edx // â edx àäðåñ ïåðåìåííîé Result - ñîõðàíÿåì, ò.ê. _cvGetSize âîçâðàùàåò ðåçóëüòàò â eax:edx
|
||||
push eax
|
||||
call _cvGetSize
|
||||
pop ecx // ÷èñòèì ñòåê
|
||||
mov ecx,edx // ñîõðàíÿåì ìëàäøóþ ÷àñòü ðåçóëüòàòà _cvGetSize
|
||||
pop edx // âîññòàíàâëèâàåì Result
|
||||
mov Result.width,eax
|
||||
mov Result.height,ecx
|
||||
end;
|
||||
{$ENDIF VER16P}
|
||||
|
||||
procedure cvCopy; external core_lib;
|
||||
procedure cvSet(arr: pCvArr; value: TCvScalar; const mask: pCvArr = Nil); external core_lib;
|
||||
|
||||
procedure cvSet(mat: pCvMat; i, j: Integer; val: Single); inline;
|
||||
procedure cvSet(mat: pCvMat; i, j: Integer; val: Single); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
var
|
||||
type_: Integer;
|
||||
ptr: puchar;
|
||||
@ -1598,7 +1616,7 @@ procedure cvMerge; external core_lib;
|
||||
procedure cvMixChannels; external core_lib;
|
||||
procedure cvConvertScale; external core_lib;
|
||||
|
||||
procedure cvConvert(const src: pCvArr; dst: pCvArr); inline;
|
||||
procedure cvConvert(const src: pCvArr; dst: pCvArr); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
cvConvertScale(src, dst, 1, 0);
|
||||
end;
|
||||
@ -1623,7 +1641,7 @@ procedure cvDiv; external core_lib;
|
||||
procedure cvScaleAdd; external core_lib;
|
||||
|
||||
// define cvAXPY( A, real_scalar, B, C ) cvScaleAdd(A, cvRealScalar(real_scalar), B, C)
|
||||
procedure cvAXPY(A: pIplImage; real_scalar: double; B, C: pIplImage); inline;
|
||||
procedure cvAXPY(A: pIplImage; real_scalar: double; B, C: pIplImage); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
cvScaleAdd(A, cvRealScalar(real_scalar), B, C);
|
||||
end;
|
||||
@ -1631,13 +1649,13 @@ end;
|
||||
procedure cvAddWeighted; external core_lib;
|
||||
function cvDotProduct; external core_lib;
|
||||
|
||||
function cvAlloc(size: size_t): Pointer; external core_lib;
|
||||
function cvAlloc(size: NativeUInt): Pointer; external core_lib;
|
||||
procedure cvFree_(ptr: Pointer); external core_lib;
|
||||
|
||||
procedure cvInitFont; external core_lib;
|
||||
procedure cvPutText; external core_lib;
|
||||
|
||||
function cvFont(scale: double; thickness: Integer = 1): TCvFont; inline;
|
||||
function cvFont(scale: double; thickness: Integer = 1): TCvFont; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
cvInitFont(@Result, CV_FONT_HERSHEY_PLAIN, scale, scale, 0, thickness, CV_AA);
|
||||
end;
|
||||
@ -1647,7 +1665,7 @@ procedure cvLine; external core_lib;
|
||||
|
||||
procedure cvCopyImage; external core_lib name 'cvCopy';
|
||||
|
||||
function CV_RGB(const r, g, B: double): TCvScalar; inline;
|
||||
function CV_RGB(const r, g, B: double): TCvScalar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := CvScalar(B, g, r, 0);
|
||||
end;
|
||||
@ -1656,7 +1674,7 @@ procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name:
|
||||
attributes: TCvAttrList); external core_lib; overload;
|
||||
|
||||
procedure cvSave(const filename: pCvChar; const struct_ptr: Pointer; const name: pCvChar = Nil; const comment: pCvChar = Nil);
|
||||
overload; inline;
|
||||
overload; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
cvSave(filename, struct_ptr, name, comment, ZeroCvAttrList);
|
||||
end;
|
||||
@ -1737,7 +1755,7 @@ end;
|
||||
|
||||
function cvCountNonZero; external core_lib;
|
||||
|
||||
function cvGet(const mat: pCvMat; i, j: Integer): Single; inline;
|
||||
function cvGet(const mat: pCvMat; i, j: Integer): Single; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
var
|
||||
type_: Integer;
|
||||
ptr: puchar;
|
||||
@ -1801,12 +1819,12 @@ begin
|
||||
end;
|
||||
|
||||
function cvReadStringByName(const fs: pCvFileStorage; const map: pCvFileNode; const name: pCvChar;
|
||||
const default_value: pCvChar = nil): pCvChar; inline;
|
||||
const default_value: pCvChar = nil): pCvChar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := cvReadString(cvGetFileNodeByName(fs, map, name), default_value);
|
||||
end;
|
||||
|
||||
function cvReadString(const node: pCvFileNode; const default_value: pCvChar = nil): pCvChar; inline;
|
||||
function cvReadString(const node: pCvFileNode; const default_value: pCvChar = nil): pCvChar; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
if Assigned(node) then
|
||||
begin
|
||||
|
@ -40,20 +40,28 @@
|
||||
// Q&A forum: http://answers.ocv.org
|
||||
// Dev zone: http://code.ocv.org
|
||||
// ************************************************************************************************** *)
|
||||
{$I OpenCV.inc}
|
||||
|
||||
{$IFDEF VER12P}
|
||||
{$POINTERMATH ON}
|
||||
{$ENDIF}
|
||||
unit ocv.cvutils;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF VER15P}
|
||||
WinApi.Windows,
|
||||
Vcl.Graphics,
|
||||
{$ELSE}
|
||||
Windows,
|
||||
Graphics,
|
||||
{$ENDIF VER15P}
|
||||
ocv.core.types_c;
|
||||
|
||||
Function hsv2rgb(hue: single): TCvScalar;
|
||||
procedure IplImage2Bitmap(iplImg: PIplImage; var bitmap: Vcl.Graphics.TBitmap);
|
||||
function cvImage2Bitmap(img: PIplImage): Vcl.Graphics.TBitmap;
|
||||
procedure IplImage2Bitmap(iplImg: PIplImage; var bitmap: {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P});
|
||||
function cvImage2Bitmap(img: PIplImage): {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P};
|
||||
|
||||
function ipDraw(dc: HDC; img: PIplImage; const rect: TRect; const Stretch: Boolean = true): Boolean; overload;
|
||||
procedure ipDraw(const x, y: Integer; const _Grab: PIplImage; const Wnd: THandle); overload;
|
||||
@ -65,16 +73,20 @@ function ifthen(const Cond: Boolean; const ValueTrue, ValueFalse: pCvArr): pCvAr
|
||||
function ifthen(const Cond: Boolean; const ValueTrue, ValueFalse: string): string; overload;
|
||||
function ifthen(const Cond: Boolean; const ValueTrue, ValueFalse: TCvScalar): TCvScalar; overload;
|
||||
|
||||
function BitmapToIplImage(const bitmap: Vcl.Graphics.TBitmap): PIplImage;
|
||||
function BitmapToIplImage(const bitmap: {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P}): PIplImage;
|
||||
function CropIplImage(const src: PIplImage; const roi: TCvRect): PIplImage;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
{$IFDEF VER15P}
|
||||
System.SysUtils,
|
||||
{$ELSE}
|
||||
SysUtils,
|
||||
{$ENDIF VER15P}
|
||||
ocv.core_c;
|
||||
|
||||
function BitmapToIplImage(const bitmap: Vcl.Graphics.TBitmap): PIplImage;
|
||||
function BitmapToIplImage(const bitmap: {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P}): PIplImage;
|
||||
Var
|
||||
bitmapData: PByte;
|
||||
begin
|
||||
@ -129,7 +141,7 @@ end;
|
||||
// ---------------------------------------------------------------------------
|
||||
function CreateRGBBitmap(_Grab: PIplImage): HBITMAP;
|
||||
|
||||
function WIDTHBYTES(bits: DWORD): DWORD; inline;
|
||||
function WIDTHBYTES(bits: DWORD): DWORD; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := ((((bits) + 31) div 32) * 4);
|
||||
end;
|
||||
@ -236,7 +248,7 @@ End;
|
||||
Arguments: iplImg: PIplImage; bitmap: TBitmap
|
||||
Description: convert a IplImage to a Windows bitmap
|
||||
-----------------------------------------------------------------------------}
|
||||
procedure IplImage2Bitmap(iplImg: PIplImage; var bitmap: Vcl.Graphics.TBitmap);
|
||||
procedure IplImage2Bitmap(iplImg: PIplImage; var bitmap: {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P});
|
||||
VAR
|
||||
i, j: Integer;
|
||||
offset: longint;
|
||||
@ -283,10 +295,10 @@ BEGIN
|
||||
End
|
||||
END; {IplImage2Bitmap}
|
||||
|
||||
function cvImage2Bitmap(img: PIplImage): Vcl.Graphics.TBitmap;
|
||||
function cvImage2Bitmap(img: PIplImage): {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P};
|
||||
var
|
||||
// info: string;
|
||||
bmp: Vcl.Graphics.TBitmap;
|
||||
bmp: {$IFDEF VER15P}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF VER15P};
|
||||
deep: Integer;
|
||||
i, j, K, wStep, Channels: Integer;
|
||||
data: PByteArray;
|
||||
@ -295,7 +307,7 @@ begin
|
||||
Result := NIL;
|
||||
if (img <> NIL) then
|
||||
begin
|
||||
bmp := Vcl.Graphics.TBitmap.Create;
|
||||
bmp := {$IFDEF VER15P}Vcl.Graphics.TBitmap.Create{$ELSE}Graphics.TBitmap.Create{$ENDIF VER15P};
|
||||
bmp.Width := img^.Width;
|
||||
bmp.Height := img^.Height;
|
||||
deep := img^.nChannels * img^.depth;
|
||||
|
@ -768,7 +768,7 @@ const
|
||||
function cvCreateVideoWriter(const filename: pCVChar; fourcc: Integer; fps: Double; frame_size: TCvSize;
|
||||
is_color: Integer = 1): pCvVideoWriter; cdecl;
|
||||
|
||||
function CV_FOURCC(const c1, c2, c3, c4: CVChar): Integer; inline;
|
||||
function CV_FOURCC(const c1, c2, c3, c4: CVChar): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
|
||||
// CVAPI(CvVideoWriter*) cvCreateImageSequenceWriter( const char* filename,
|
||||
@ -873,7 +873,7 @@ procedure cvSetMouseCallback; external highgui_lib;
|
||||
procedure cvConvertImage; external highgui_lib;
|
||||
procedure cvMoveWindow; external highgui_lib;
|
||||
|
||||
function CV_FOURCC(const c1, c2, c3, c4: CVChar): Integer; inline;
|
||||
function CV_FOURCC(const c1, c2, c3, c4: CVChar): Integer; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
Result := Integer(c1) + (Integer(c2) shl 8) + (Integer(c3) shl 16) + (Integer(c4) shl 24);
|
||||
end;
|
||||
|
@ -409,7 +409,7 @@ type
|
||||
*************************************************************************************** *)
|
||||
|
||||
type
|
||||
TCvSubdiv2DEdge = size_t;
|
||||
TCvSubdiv2DEdge = NativeUInt;
|
||||
{ EXTERNALSYM CvSubdiv2DEdge }
|
||||
|
||||
pCvSubdiv2DPoint = ^TCvSubdiv2DPoint;
|
||||
|
@ -612,7 +612,7 @@ function cvArcLength(const curve: Pointer; slice: TCvSlice { = CV_WHOLE_SEQ }; i
|
||||
return cvArcLength( contour, CV_WHOLE_SEQ, 1 );
|
||||
}
|
||||
*)
|
||||
function cvContourPerimeter(const contour: Pointer): double; inline;
|
||||
function cvContourPerimeter(const contour: Pointer): double; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
// * Calculates contour boundning rectangle (update=1) or
|
||||
// just retrieves pre-calculated rectangle (update=0) */
|
||||
@ -769,7 +769,7 @@ 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); inline;
|
||||
procedure cvCalcHist(var image: pIplImage; hist: pCvHistogram; accumulate: Integer = 0; const mask: pIplImage = nil); {$IFDEF VER9P}inline;{$ENDIF}
|
||||
|
||||
|
||||
// var mask CV_DEFAULT(0) )begin cvCalcArrHist( (CvArr*)image: vArr;
|
||||
@ -1052,7 +1052,7 @@ procedure cvInitUndistortMap; external imgproc_lib;
|
||||
procedure cvRemap; external imgproc_lib;
|
||||
function cvArcLength; external imgproc_lib;
|
||||
|
||||
function cvContourPerimeter(const contour: Pointer): double; inline;
|
||||
function cvContourPerimeter(const contour: Pointer): double; {$IFDEF VER9P}inline;{$ENDIF}
|
||||
begin
|
||||
result := cvArcLength(contour, CV_WHOLE_SEQ, 1);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user