Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
2e8579fe
Commit
2e8579fe
authored
Jan 31, 2014
by
Ilya Lavrenov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cleaned up super_resolution sample from old OCL
parent
c7fe1628
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
27 additions
and
245 deletions
+27
-245
.project
.project
+0
-100
mat.hpp
modules/core/include/opencv2/core/mat.hpp
+3
-4
directx.cpp
modules/core/src/directx.cpp
+6
-6
matrix.cpp
modules/core/src/matrix.cpp
+1
-16
ocl.cpp
modules/core/src/ocl.cpp
+1
-1
mulspectrums.cl
modules/core/src/opencl/mulspectrums.cl
+1
-1
ocl_perf.hpp
modules/ts/include/opencv2/ts/ocl_perf.hpp
+1
-1
super_resolution.cpp
samples/gpu/super_resolution.cpp
+14
-116
No files found.
.project
deleted
100644 → 0
View file @
c7fe1628
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
opencv
</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.genmakebuilder
</name>
<triggers>
clean,full,incremental,
</triggers>
<arguments>
<dictionary>
<key>
?children?
</key>
<value>
?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\||
</value>
</dictionary>
<dictionary>
<key>
?name?
</key>
<value></value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.append_environment
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.autoBuildTarget
</key>
<value>
all
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildArguments
</key>
<value></value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildCommand
</key>
<value>
make
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.buildLocation
</key>
<value>
/home/ilya/Documents/Programming/Builds/opencv_debug/bin
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.cleanBuildTarget
</key>
<value>
clean
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.contents
</key>
<value>
org.eclipse.cdt.make.core.activeConfigSettings
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableAutoBuild
</key>
<value>
false
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableCleanBuild
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.enableFullBuild
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.fullBuildTarget
</key>
<value>
all
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.stopOnError
</key>
<value>
true
</value>
</dictionary>
<dictionary>
<key>
org.eclipse.cdt.make.core.useDefaultBuildCmd
</key>
<value>
true
</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
</name>
<triggers>
full,incremental,
</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>
org.eclipse.cdt.codan.core.codanBuilder
</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>
org.eclipse.cdt.core.cnature
</nature>
<nature>
org.eclipse.cdt.core.ccnature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.managedBuildNature
</nature>
<nature>
org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
</nature>
<nature>
org.eclipse.cdt.codan.core.codanNature
</nature>
</natures>
<linkedResources>
<link>
<name>
bin
</name>
<type>
2
</type>
<location>
/home/ilya/Documents/Programming/Builds/opencv_debug/bin
</location>
</link>
</linkedResources>
</projectDescription>
modules/core/include/opencv2/core/mat.hpp
View file @
2e8579fe
...
...
@@ -85,10 +85,9 @@ public:
OPENGL_BUFFER
=
7
<<
KIND_SHIFT
,
CUDA_MEM
=
8
<<
KIND_SHIFT
,
GPU_MAT
=
9
<<
KIND_SHIFT
,
OCL_MAT
=
10
<<
KIND_SHIFT
,
UMAT
=
11
<<
KIND_SHIFT
,
STD_VECTOR_UMAT
=
12
<<
KIND_SHIFT
,
UEXPR
=
13
<<
KIND_SHIFT
UMAT
=
10
<<
KIND_SHIFT
,
STD_VECTOR_UMAT
=
11
<<
KIND_SHIFT
,
UEXPR
=
12
<<
KIND_SHIFT
};
_InputArray
();
...
...
modules/core/src/directx.cpp
View file @
2e8579fe
...
...
@@ -736,7 +736,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
...
...
@@ -795,7 +795,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D11ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D11ObjectsKHR failed"
);
...
...
@@ -884,7 +884,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
...
...
@@ -943,7 +943,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireD3D10ObjectsKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireD3D10ObjectsKHR failed"
);
...
...
@@ -1038,7 +1038,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_READ
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
...
...
@@ -1104,7 +1104,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
cl_mem
clBuffer
=
(
cl_mem
)
u
.
handle
(
ACCESS_WRITE
);
cl_command_queue
q
=
(
cl_command_queue
)
Command
Queue
::
getDefault
().
ptr
();
cl_command_queue
q
=
(
cl_command_queue
)
Queue
::
getDefault
().
ptr
();
status
=
clEnqueueAcquireDX9MediaSurfacesKHR
(
q
,
1
,
&
clImage
,
0
,
NULL
,
NULL
);
if
(
status
!=
CL_SUCCESS
)
CV_Error
(
cv
::
Error
::
OpenCLApiCallError
,
"OpenCL: clEnqueueAcquireDX9MediaSurfacesKHR failed"
);
...
...
modules/core/src/matrix.cpp
View file @
2e8579fe
...
...
@@ -1496,11 +1496,6 @@ Size _InputArray::size(int i) const
return
d_mat
->
size
();
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
CUDA_MEM
);
//if( k == CUDA_MEM )
{
...
...
@@ -1680,11 +1675,6 @@ int _InputArray::dims(int i) const
return
2
;
}
if
(
k
==
OCL_MAT
)
{
return
2
;
}
CV_Assert
(
k
==
CUDA_MEM
);
//if( k == CUDA_MEM )
{
...
...
@@ -1842,11 +1832,6 @@ bool _InputArray::empty() const
if
(
k
==
OPENGL_BUFFER
)
return
((
const
ogl
::
Buffer
*
)
obj
)
->
empty
();
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
if
(
k
==
GPU_MAT
)
return
((
const
cuda
::
GpuMat
*
)
obj
)
->
empty
();
...
...
@@ -1882,7 +1867,7 @@ bool _InputArray::isContinuous(int i) const
return
vv
[
i
].
isContinuous
();
}
CV_Error
(
CV_StsNotImplemented
,
"
This method is not implemented for oclMat yet
"
);
CV_Error
(
CV_StsNotImplemented
,
"
Unknown/unsupported array type
"
);
return
false
;
}
...
...
modules/core/src/ocl.cpp
View file @
2e8579fe
...
...
@@ -3365,7 +3365,7 @@ protected:
{
CV_DbgAssert
(
entry
.
clBuffer_
==
NULL
);
entry
.
capacity_
=
alignSize
(
size
,
(
int
)
_allocationGranularity
(
size
));
Context
2
&
ctx
=
Context2
::
getDefault
();
Context
&
ctx
=
Context
::
getDefault
();
cl_int
retval
=
CL_SUCCESS
;
entry
.
clBuffer_
=
clCreateBuffer
((
cl_context
)
ctx
.
ptr
(),
CL_MEM_READ_WRITE
,
entry
.
capacity_
,
0
,
&
retval
);
CV_Assert
(
retval
==
CL_SUCCESS
);
...
...
modules/core/src/opencl/mulspectrums.cl
View file @
2e8579fe
...
...
@@ -25,7 +25,7 @@
//
//
*
Redistribution
's
in
binary
form
must
reproduce
the
above
copyright
notice,
//
this
list
of
conditions
and
the
following
disclaimer
in
the
documentation
//
and/or
other
oclM
aterials
provided
with
the
distribution.
//
and/or
other
m
aterials
provided
with
the
distribution.
//
//
*
The
name
of
the
copyright
holders
may
not
be
used
to
endorse
or
promote
products
//
derived
from
this
software
without
specific
prior
written
permission.
...
...
modules/ts/include/opencv2/ts/ocl_perf.hpp
View file @
2e8579fe
...
...
@@ -119,7 +119,7 @@ CV_EXPORTS void randu(InputOutputArray dst);
inline
void
safeFinish
()
{
if
(
cv
::
ocl
::
useOpenCL
())
cv
::
ocl
::
finish
2
();
cv
::
ocl
::
finish
();
}
}
// namespace perf
...
...
samples/gpu/super_resolution.cpp
View file @
2e8579fe
...
...
@@ -10,14 +10,10 @@
#include "opencv2/superres/optical_flow.hpp"
#include "opencv2/opencv_modules.hpp"
#if defined(HAVE_OPENCV_OCL)
#include "opencv2/ocl/ocl.hpp"
#endif
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
::
superres
;
bool
useOclChanged
;
#define MEASURE_TIME(op) \
{ \
TickMeter tm; \
...
...
@@ -50,40 +46,11 @@ static Ptr<DenseOpticalFlowExt> createOptFlow(const string& name, bool useGpu)
else
if
(
name
==
"pyrlk"
)
return
createOptFlow_PyrLK_CUDA
();
else
{
cerr
<<
"Incorrect Optical Flow algorithm - "
<<
name
<<
endl
;
}
return
Ptr
<
DenseOpticalFlowExt
>
();
}
#if defined(HAVE_OPENCV_OCL)
static
Ptr
<
DenseOpticalFlowExt
>
createOptFlow
(
const
string
&
name
)
{
if
(
name
==
"farneback"
)
{
return
createOptFlow_Farneback_OCL
();
}
else
if
(
name
==
"simple"
)
{
useOclChanged
=
true
;
std
::
cout
<<
"simple on OpenCL has not been implemented. Use CPU instead!
\n
"
;
return
createOptFlow_Simple
();
}
else
if
(
name
==
"tvl1"
)
return
createOptFlow_DualTVL1_OCL
();
else
if
(
name
==
"brox"
)
{
std
::
cout
<<
"brox has not been implemented!
\n
"
;
return
Ptr
<
DenseOpticalFlowExt
>
();
}
else
if
(
name
==
"pyrlk"
)
return
createOptFlow_PyrLK_OCL
();
else
{
cerr
<<
"Incorrect Optical Flow algorithm - "
<<
name
<<
endl
;
}
return
Ptr
<
DenseOpticalFlowExt
>
();
}
#endif
int
main
(
int
argc
,
const
char
*
argv
[])
{
useOclChanged
=
false
;
...
...
@@ -94,7 +61,7 @@ int main(int argc, const char* argv[])
"{ i iterations | 180 | Iteration count }"
"{ t temporal | 4 | Radius of the temporal search area }"
"{ f flow | farneback | Optical flow algorithm (farneback, simple, tvl1, brox, pyrlk) }"
"{ g | false | CPU as default device, cuda for CUDA
and ocl for OpenCL
}"
"{ g | false | CPU as default device, cuda for CUDA }"
"{ h help | false | Print help message }"
);
...
...
@@ -102,7 +69,7 @@ int main(int argc, const char* argv[])
{
cout
<<
"This sample demonstrates Super Resolution algorithms for video sequence"
<<
endl
;
cmd
.
printMessage
();
return
0
;
return
EXIT_SUCCESS
;
}
const
string
inputVideoName
=
cmd
.
get
<
string
>
(
"video"
);
...
...
@@ -115,60 +82,19 @@ int main(int argc, const char* argv[])
std
::
transform
(
gpuOption
.
begin
(),
gpuOption
.
end
(),
gpuOption
.
begin
(),
::
tolower
);
bool
useCuda
=
false
;
bool
useOcl
=
false
;
if
(
gpuOption
.
compare
(
"ocl"
)
==
0
)
useOcl
=
true
;
else
if
(
gpuOption
.
compare
(
"cuda"
)
==
0
)
useCuda
=
true
;
#ifndef HAVE_OPENCV_OCL
if
(
useOcl
)
{
{
cout
<<
"OPENCL is not compiled
\n
"
;
return
0
;
}
}
#endif
#if defined(HAVE_OPENCV_OCL)
if
(
useCuda
)
{
CV_Assert
(
!
useOcl
);
}
#endif
bool
useCuda
=
gpuOption
.
compare
(
"cuda"
)
==
0
;
Ptr
<
SuperResolution
>
superRes
;
#if defined(HAVE_OPENCV_OCL)
if
(
useOcl
)
{
Ptr
<
DenseOpticalFlowExt
>
of
=
createOptFlow
(
optFlow
);
if
(
of
.
empty
())
exit
(
-
1
);
if
(
useOclChanged
)
{
superRes
=
createSuperResolution_BTVL1
();
useOcl
=
!
useOcl
;
}
else
superRes
=
createSuperResolution_BTVL1_OCL
();
superRes
->
set
(
"opticalFlow"
,
of
);
}
if
(
useCuda
)
superRes
=
createSuperResolution_BTVL1_CUDA
();
else
#endif
{
if
(
useCuda
)
superRes
=
createSuperResolution_BTVL1_CUDA
();
else
superRes
=
createSuperResolution_BTVL1
();
superRes
=
createSuperResolution_BTVL1
();
Ptr
<
DenseOpticalFlowExt
>
of
=
createOptFlow
(
optFlow
,
useCuda
);
Ptr
<
DenseOpticalFlowExt
>
of
=
createOptFlow
(
optFlow
,
useCuda
);
if
(
of
.
empty
())
exit
(
-
1
);
superRes
->
set
(
"opticalFlow"
,
of
);
}
if
(
of
.
empty
())
return
EXIT_FAILURE
;
superRes
->
set
(
"opticalFlow"
,
of
);
superRes
->
set
(
"scale"
,
scale
);
superRes
->
set
(
"iterations"
,
iterations
);
...
...
@@ -201,11 +127,7 @@ int main(int argc, const char* argv[])
cout
<<
"Iterations : "
<<
iterations
<<
endl
;
cout
<<
"Temporal radius : "
<<
temporalAreaRadius
<<
endl
;
cout
<<
"Optical Flow : "
<<
optFlow
<<
endl
;
#if defined(HAVE_OPENCV_OCL)
cout
<<
"Mode : "
<<
(
useCuda
?
"CUDA"
:
useOcl
?
"OpenCL"
:
"CPU"
)
<<
endl
;
#else
cout
<<
"Mode : "
<<
(
useCuda
?
"CUDA"
:
"CPU"
)
<<
endl
;
#endif
}
superRes
->
setInput
(
frameSource
);
...
...
@@ -217,32 +139,8 @@ int main(int argc, const char* argv[])
cout
<<
'['
<<
setw
(
3
)
<<
i
<<
"] : "
;
Mat
result
;
#if defined(HAVE_OPENCV_OCL)
cv
::
ocl
::
oclMat
result_
;
if
(
useOcl
)
{
MEASURE_TIME
(
{
superRes
->
nextFrame
(
result_
);
ocl
::
finish
();
});
}
else
#endif
{
MEASURE_TIME
(
superRes
->
nextFrame
(
result
));
}
MEASURE_TIME
(
superRes
->
nextFrame
(
result
));
#ifdef HAVE_OPENCV_OCL
if
(
useOcl
)
{
if
(
!
result_
.
empty
())
{
result_
.
download
(
result
);
}
}
#endif
if
(
result
.
empty
())
break
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment