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
171a56fe
Commit
171a56fe
authored
Jun 24, 2013
by
Roman Donchenko
Committed by
OpenCV Buildbot
Jun 24, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1034 from pengx17:2.4_oclmat_inoutarray
parents
7cb047e2
290c8db0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
1 deletion
+69
-1
core.hpp
modules/core/include/opencv2/core/core.hpp
+2
-1
matrix.cpp
modules/core/src/matrix.cpp
+30
-0
ocl.hpp
modules/ocl/include/opencv2/ocl/ocl.hpp
+8
-0
matrix_operations.cpp
modules/ocl/src/matrix_operations.cpp
+29
-0
No files found.
modules/core/include/opencv2/core/core.hpp
View file @
171a56fe
...
@@ -1322,7 +1322,8 @@ public:
...
@@ -1322,7 +1322,8 @@ public:
EXPR
=
6
<<
KIND_SHIFT
,
EXPR
=
6
<<
KIND_SHIFT
,
OPENGL_BUFFER
=
7
<<
KIND_SHIFT
,
OPENGL_BUFFER
=
7
<<
KIND_SHIFT
,
OPENGL_TEXTURE
=
8
<<
KIND_SHIFT
,
OPENGL_TEXTURE
=
8
<<
KIND_SHIFT
,
GPU_MAT
=
9
<<
KIND_SHIFT
GPU_MAT
=
9
<<
KIND_SHIFT
,
OCL_MAT
=
10
<<
KIND_SHIFT
};
};
_InputArray
();
_InputArray
();
...
...
modules/core/src/matrix.cpp
View file @
171a56fe
...
@@ -980,6 +980,11 @@ Mat _InputArray::getMat(int i) const
...
@@ -980,6 +980,11 @@ Mat _InputArray::getMat(int i) const
return
!
v
.
empty
()
?
Mat
(
size
(
i
),
t
,
(
void
*
)
&
v
[
0
])
:
Mat
();
return
!
v
.
empty
()
?
Mat
(
size
(
i
),
t
,
(
void
*
)
&
v
[
0
])
:
Mat
();
}
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
STD_VECTOR_MAT
);
CV_Assert
(
k
==
STD_VECTOR_MAT
);
//if( k == STD_VECTOR_MAT )
//if( k == STD_VECTOR_MAT )
{
{
...
@@ -1062,6 +1067,11 @@ void _InputArray::getMatVector(vector<Mat>& mv) const
...
@@ -1062,6 +1067,11 @@ void _InputArray::getMatVector(vector<Mat>& mv) const
return
;
return
;
}
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
STD_VECTOR_MAT
);
CV_Assert
(
k
==
STD_VECTOR_MAT
);
//if( k == STD_VECTOR_MAT )
//if( k == STD_VECTOR_MAT )
{
{
...
@@ -1189,6 +1199,11 @@ Size _InputArray::size(int i) const
...
@@ -1189,6 +1199,11 @@ Size _InputArray::size(int i) const
return
tex
->
size
();
return
tex
->
size
();
}
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
GPU_MAT
);
CV_Assert
(
k
==
GPU_MAT
);
//if( k == GPU_MAT )
//if( k == GPU_MAT )
{
{
...
@@ -1303,6 +1318,11 @@ bool _InputArray::empty() const
...
@@ -1303,6 +1318,11 @@ bool _InputArray::empty() const
if
(
k
==
OPENGL_TEXTURE
)
if
(
k
==
OPENGL_TEXTURE
)
return
((
const
ogl
::
Texture2D
*
)
obj
)
->
empty
();
return
((
const
ogl
::
Texture2D
*
)
obj
)
->
empty
();
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
GPU_MAT
);
CV_Assert
(
k
==
GPU_MAT
);
//if( k == GPU_MAT )
//if( k == GPU_MAT )
return
((
const
gpu
::
GpuMat
*
)
obj
)
->
empty
();
return
((
const
gpu
::
GpuMat
*
)
obj
)
->
empty
();
...
@@ -1523,6 +1543,11 @@ void _OutputArray::create(int dims, const int* sizes, int mtype, int i, bool all
...
@@ -1523,6 +1543,11 @@ void _OutputArray::create(int dims, const int* sizes, int mtype, int i, bool all
return
;
return
;
}
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
if
(
k
==
NONE
)
if
(
k
==
NONE
)
{
{
CV_Error
(
CV_StsNullPtr
,
"create() called for the missing output array"
);
CV_Error
(
CV_StsNullPtr
,
"create() called for the missing output array"
);
...
@@ -1634,6 +1659,11 @@ void _OutputArray::release() const
...
@@ -1634,6 +1659,11 @@ void _OutputArray::release() const
return
;
return
;
}
}
if
(
k
==
OCL_MAT
)
{
CV_Error
(
CV_StsNotImplemented
,
"This method is not implemented for oclMat yet"
);
}
CV_Assert
(
k
==
STD_VECTOR_MAT
);
CV_Assert
(
k
==
STD_VECTOR_MAT
);
//if( k == STD_VECTOR_MAT )
//if( k == STD_VECTOR_MAT )
{
{
...
...
modules/ocl/include/opencv2/ocl/ocl.hpp
View file @
171a56fe
...
@@ -248,6 +248,11 @@ namespace cv
...
@@ -248,6 +248,11 @@ namespace cv
operator
Mat
()
const
;
operator
Mat
()
const
;
void
download
(
cv
::
Mat
&
m
)
const
;
void
download
(
cv
::
Mat
&
m
)
const
;
//! convert to _InputArray
operator
_InputArray
();
//! convert to _OutputArray
operator
_OutputArray
();
//! returns a new oclMatrix header for the specified row
//! returns a new oclMatrix header for the specified row
oclMat
row
(
int
y
)
const
;
oclMat
row
(
int
y
)
const
;
...
@@ -387,6 +392,9 @@ namespace cv
...
@@ -387,6 +392,9 @@ namespace cv
int
wholecols
;
int
wholecols
;
};
};
// convert InputArray/OutputArray to oclMat references
CV_EXPORTS
oclMat
&
getOclMatRef
(
InputArray
src
);
CV_EXPORTS
oclMat
&
getOclMatRef
(
OutputArray
src
);
///////////////////// mat split and merge /////////////////////////////////
///////////////////// mat split and merge /////////////////////////////////
//! Compose a multi-channel array from several single-channel arrays
//! Compose a multi-channel array from several single-channel arrays
...
...
modules/ocl/src/matrix_operations.cpp
View file @
171a56fe
...
@@ -74,6 +74,7 @@ namespace cv
...
@@ -74,6 +74,7 @@ namespace cv
}
}
}
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
// convert_C3C4
// convert_C3C4
static
void
convert_C3C4
(
const
cl_mem
&
src
,
oclMat
&
dst
)
static
void
convert_C3C4
(
const
cl_mem
&
src
,
oclMat
&
dst
)
...
@@ -227,6 +228,34 @@ void cv::ocl::oclMat::upload(const Mat &m)
...
@@ -227,6 +228,34 @@ void cv::ocl::oclMat::upload(const Mat &m)
//download_channels = m.channels();
//download_channels = m.channels();
}
}
cv
::
ocl
::
oclMat
::
operator
cv
::
_InputArray
()
{
_InputArray
newInputArray
;
newInputArray
.
flags
=
cv
::
_InputArray
::
OCL_MAT
;
newInputArray
.
obj
=
reinterpret_cast
<
void
*>
(
this
);
return
newInputArray
;
}
cv
::
ocl
::
oclMat
::
operator
cv
::
_OutputArray
()
{
_OutputArray
newOutputArray
;
newOutputArray
.
flags
=
cv
::
_InputArray
::
OCL_MAT
;
newOutputArray
.
obj
=
reinterpret_cast
<
void
*>
(
this
);
return
newOutputArray
;
}
cv
::
ocl
::
oclMat
&
cv
::
ocl
::
getOclMatRef
(
InputArray
src
)
{
CV_Assert
(
src
.
flags
&
cv
::
_InputArray
::
OCL_MAT
);
return
*
reinterpret_cast
<
oclMat
*>
(
src
.
obj
);
}
cv
::
ocl
::
oclMat
&
cv
::
ocl
::
getOclMatRef
(
OutputArray
src
)
{
CV_Assert
(
src
.
flags
&
cv
::
_InputArray
::
OCL_MAT
);
return
*
reinterpret_cast
<
oclMat
*>
(
src
.
obj
);
}
void
cv
::
ocl
::
oclMat
::
download
(
cv
::
Mat
&
m
)
const
void
cv
::
ocl
::
oclMat
::
download
(
cv
::
Mat
&
m
)
const
{
{
CV_DbgAssert
(
!
this
->
empty
());
CV_DbgAssert
(
!
this
->
empty
());
...
...
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