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
b34d86ca
Commit
b34d86ca
authored
Sep 26, 2018
by
Vadim Pisarevsky
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12548 from alalek:videoio_backend_name
parents
24ab7515
d3eed2cf
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
137 additions
and
17 deletions
+137
-17
videoio.hpp
modules/videoio/include/opencv2/videoio.hpp
+13
-0
cap.cpp
modules/videoio/src/cap.cpp
+49
-0
cap_avfoundation.mm
modules/videoio/src/cap_avfoundation.mm
+1
-0
cap_avfoundation_mac.mm
modules/videoio/src/cap_avfoundation_mac.mm
+1
-0
cap_dc1394.cpp
modules/videoio/src/cap_dc1394.cpp
+1
-1
cap_dc1394_v2.cpp
modules/videoio/src/cap_dc1394_v2.cpp
+1
-1
cap_ffmpeg.cpp
modules/videoio/src/cap_ffmpeg.cpp
+2
-0
cap_gphoto2.cpp
modules/videoio/src/cap_gphoto2.cpp
+1
-4
cap_gstreamer.cpp
modules/videoio/src/cap_gstreamer.cpp
+3
-3
cap_images.cpp
modules/videoio/src/cap_images.cpp
+2
-0
cap_libv4l.cpp
modules/videoio/src/cap_libv4l.cpp
+2
-0
cap_mfx_writer.hpp
modules/videoio/src/cap_mfx_writer.hpp
+1
-0
cap_mjpeg_decoder.cpp
modules/videoio/src/cap_mjpeg_decoder.cpp
+1
-1
cap_mjpeg_encoder.cpp
modules/videoio/src/cap_mjpeg_encoder.cpp
+2
-0
cap_msmf.cpp
modules/videoio/src/cap_msmf.cpp
+2
-1
cap_qt.cpp
modules/videoio/src/cap_qt.cpp
+2
-1
cap_qtkit.mm
modules/videoio/src/cap_qtkit.mm
+2
-0
cap_unicap.cpp
modules/videoio/src/cap_unicap.cpp
+1
-1
cap_v4l.cpp
modules/videoio/src/cap_v4l.cpp
+2
-0
cap_vfw.cpp
modules/videoio/src/cap_vfw.cpp
+2
-1
cap_winrt_capture.hpp
modules/videoio/src/cap_winrt_capture.hpp
+1
-2
cap_ximea.cpp
modules/videoio/src/cap_ximea.cpp
+1
-1
precomp.hpp
modules/videoio/src/precomp.hpp
+3
-0
test_camera.cpp
modules/videoio/test/test_camera.cpp
+41
-0
No files found.
modules/videoio/include/opencv2/videoio.hpp
View file @
b34d86ca
...
...
@@ -169,6 +169,7 @@ enum VideoCaptureProperties {
CAP_PROP_AUTOFOCUS
=
39
,
CAP_PROP_SAR_NUM
=
40
,
//!< Sample aspect ratio: num/den (num)
CAP_PROP_SAR_DEN
=
41
,
//!< Sample aspect ratio: num/den (den)
CAP_PROP_BACKEND
=
42
,
//!< current backend (enum VideoCaptureAPIs). Read-only property
#ifndef CV_DOXYGEN
CV__CAP_PROP_LATEST
#endif
...
...
@@ -808,6 +809,12 @@ public:
*/
CV_WRAP
virtual
bool
open
(
const
String
&
filename
,
int
apiPreference
);
/** @brief Returns used backend API name
@note Stream should be opened.
*/
CV_WRAP
String
getBackendName
()
const
;
protected
:
Ptr
<
CvCapture
>
cap
;
Ptr
<
IVideoCapture
>
icap
;
...
...
@@ -946,6 +953,12 @@ public:
*/
CV_WRAP
static
int
fourcc
(
char
c1
,
char
c2
,
char
c3
,
char
c4
);
/** @brief Returns used backend API name
@note Stream should be opened.
*/
CV_WRAP
String
getBackendName
()
const
;
protected
:
Ptr
<
CvVideoWriter
>
writer
;
Ptr
<
IVideoWriter
>
iwriter
;
...
...
modules/videoio/src/cap.cpp
View file @
b34d86ca
...
...
@@ -41,6 +41,7 @@
#include "precomp.hpp"
#include "opencv2/videoio/registry.hpp"
#include "videoio_registry.hpp"
namespace
cv
{
...
...
@@ -172,6 +173,17 @@ bool VideoCapture::isOpened() const
return
!
cap
.
empty
();
// legacy interface doesn't support closed files
}
String
VideoCapture
::
getBackendName
()
const
{
int
api
=
0
;
if
(
icap
)
api
=
icap
->
isOpened
()
?
icap
->
getCaptureDomain
()
:
0
;
else
if
(
cap
)
api
=
cap
->
getCaptureDomain
();
CV_Assert
(
api
!=
0
);
return
cv
::
videoio_registry
::
getBackendName
((
VideoCaptureAPIs
)
api
);
}
void
VideoCapture
::
release
()
{
CV_TRACE_FUNCTION
();
...
...
@@ -260,6 +272,8 @@ VideoCapture& VideoCapture::operator >> (UMat& image)
bool
VideoCapture
::
set
(
int
propId
,
double
value
)
{
CV_CheckNE
(
propId
,
(
int
)
CAP_PROP_BACKEND
,
"Can set read-only property"
);
if
(
!
icap
.
empty
())
return
icap
->
setProperty
(
propId
,
value
);
return
cvSetCaptureProperty
(
cap
,
propId
,
value
)
!=
0
;
...
...
@@ -267,6 +281,17 @@ bool VideoCapture::set(int propId, double value)
double
VideoCapture
::
get
(
int
propId
)
const
{
if
(
propId
==
CAP_PROP_BACKEND
)
{
int
api
=
0
;
if
(
icap
)
api
=
icap
->
isOpened
()
?
icap
->
getCaptureDomain
()
:
0
;
else
if
(
cap
)
api
=
cap
->
getCaptureDomain
();
if
(
api
<=
0
)
return
-
1.0
;
return
(
double
)
api
;
}
if
(
!
icap
.
empty
())
return
icap
->
getProperty
(
propId
);
return
cap
?
cap
->
getProperty
(
propId
)
:
0
;
...
...
@@ -346,6 +371,8 @@ bool VideoWriter::isOpened() const
bool
VideoWriter
::
set
(
int
propId
,
double
value
)
{
CV_CheckNE
(
propId
,
(
int
)
CAP_PROP_BACKEND
,
"Can set read-only property"
);
if
(
!
iwriter
.
empty
())
return
iwriter
->
setProperty
(
propId
,
value
);
return
false
;
...
...
@@ -353,11 +380,33 @@ bool VideoWriter::set(int propId, double value)
double
VideoWriter
::
get
(
int
propId
)
const
{
if
(
propId
==
CAP_PROP_BACKEND
)
{
int
api
=
0
;
if
(
iwriter
)
api
=
iwriter
->
getCaptureDomain
();
else
if
(
writer
)
api
=
writer
->
getCaptureDomain
();
if
(
api
<=
0
)
return
-
1.0
;
return
(
double
)
api
;
}
if
(
!
iwriter
.
empty
())
return
iwriter
->
getProperty
(
propId
);
return
0.
;
}
String
VideoWriter
::
getBackendName
()
const
{
int
api
=
0
;
if
(
iwriter
)
api
=
iwriter
->
getCaptureDomain
();
else
if
(
writer
)
api
=
writer
->
getCaptureDomain
();
CV_Assert
(
api
!=
0
);
return
cv
::
videoio_registry
::
getBackendName
((
VideoCaptureAPIs
)
api
);
}
void
VideoWriter
::
write
(
const
Mat
&
image
)
{
CV_INSTRUMENT_REGION
();
...
...
modules/videoio/src/cap_avfoundation.mm
View file @
b34d86ca
...
...
@@ -174,6 +174,7 @@ class CvVideoWriter_AVFoundation : public CvVideoWriter{
int is_color=1);
~CvVideoWriter_AVFoundation();
bool writeFrame(const IplImage* image);
int getCaptureDomain() const CV_OVERRIDE { return cv::CAP_AVFOUNDATION; }
private:
IplImage* argbimage;
...
...
modules/videoio/src/cap_avfoundation_mac.mm
View file @
b34d86ca
...
...
@@ -182,6 +182,7 @@ class CvVideoWriter_AVFoundation : public CvVideoWriter {
int is_color=1);
~CvVideoWriter_AVFoundation();
bool writeFrame(const IplImage* image);
int getCaptureDomain() const CV_OVERRIDE { return cv::CAP_AVFOUNDATION; }
private:
IplImage* argbimage;
...
...
modules/videoio/src/cap_dc1394.cpp
View file @
b34d86ca
...
...
@@ -1053,7 +1053,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_DC1394
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_DC1394
;
}
protected
:
CvCaptureCAM_DC1394
*
captureDC1394
;
...
...
modules/videoio/src/cap_dc1394_v2.cpp
View file @
b34d86ca
...
...
@@ -211,7 +211,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_DC1394
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_DC1394
;
}
protected
:
...
...
modules/videoio/src/cap_ffmpeg.cpp
View file @
b34d86ca
...
...
@@ -289,6 +289,8 @@ public:
CvVideoWriter_FFMPEG_proxy
(
const
cv
::
String
&
filename
,
int
fourcc
,
double
fps
,
cv
::
Size
frameSize
,
bool
isColor
)
{
ffmpegWriter
=
0
;
open
(
filename
,
fourcc
,
fps
,
frameSize
,
isColor
);
}
virtual
~
CvVideoWriter_FFMPEG_proxy
()
{
close
();
}
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_FFMPEG
;
}
virtual
void
write
(
cv
::
InputArray
image
)
CV_OVERRIDE
{
if
(
!
ffmpegWriter
)
...
...
modules/videoio/src/cap_gphoto2.cpp
View file @
b34d86ca
...
...
@@ -144,10 +144,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
bool
retrieveFrame
(
int
,
OutputArray
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_GPHOTO2
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_GPHOTO2
;
}
bool
open
(
int
index
);
void
close
();
...
...
modules/videoio/src/cap_gstreamer.cpp
View file @
b34d86ca
...
...
@@ -189,7 +189,7 @@ public:
virtual
double
getProperty
(
int
propId
)
const
CV_OVERRIDE
;
virtual
bool
setProperty
(
int
propId
,
double
value
)
CV_OVERRIDE
;
virtual
bool
isOpened
()
const
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
;
// Return the type of the capture object: CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
cv
::
CAP_GSTREAMER
;
}
bool
open
(
int
id
);
bool
open
(
const
String
&
filename_
);
static
void
newPad
(
GstElement
*
/*elem*/
,
GstPad
*
pad
,
gpointer
data
);
...
...
@@ -578,8 +578,6 @@ bool GStreamerCapture::isOpened() const
return
pipeline
!=
NULL
;
}
int
GStreamerCapture
::
getCaptureDomain
()
{
return
CAP_GSTREAMER
;
}
/*!
* \brief CvCapture_GStreamer::open Open the given file with gstreamer
* \param type CvCapture type. One of CV_CAP_GSTREAMER_*
...
...
@@ -1233,6 +1231,8 @@ public:
}
virtual
~
CvVideoWriter_GStreamer
()
CV_OVERRIDE
{
close
();
}
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_GSTREAMER
;
}
virtual
bool
open
(
const
char
*
filename
,
int
fourcc
,
double
fps
,
CvSize
frameSize
,
bool
isColor
);
virtual
void
close
();
...
...
modules/videoio/src/cap_images.cpp
View file @
b34d86ca
...
...
@@ -86,6 +86,7 @@ public:
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
int
getCaptureDomain
()
/*const*/
CV_OVERRIDE
{
return
cv
::
CAP_IMAGES
;
}
protected
:
char
*
filename
;
// actually a printf-pattern
unsigned
currentframe
;
...
...
@@ -336,6 +337,7 @@ public:
virtual
bool
setProperty
(
int
,
double
);
// FIXIT doesn't work: IVideoWriter interface only!
virtual
bool
writeFrame
(
const
IplImage
*
)
CV_OVERRIDE
;
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_IMAGES
;
}
protected
:
char
*
filename
;
unsigned
currentframe
;
...
...
modules/videoio/src/cap_libv4l.cpp
View file @
b34d86ca
...
...
@@ -1928,6 +1928,8 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
int
getCaptureDomain
()
/*const*/
CV_OVERRIDE
{
return
cv
::
CAP_V4L
;
}
protected
:
CvCaptureCAM_V4L
*
captureV4L
;
...
...
modules/videoio/src/cap_mfx_writer.hpp
View file @
b34d86ca
...
...
@@ -26,6 +26,7 @@ public:
virtual
void
write
(
cv
::
InputArray
input
);
static
cv
::
Ptr
<
VideoWriter_IntelMFX
>
create
(
const
cv
::
String
&
filename
,
int
_fourcc
,
double
fps
,
cv
::
Size
frameSize
,
bool
isColor
);
virtual
int
getCaptureDomain
()
const
{
return
cv
::
CAP_INTEL_MFX
;
}
protected
:
bool
write_one
(
cv
::
InputArray
bgr
);
...
...
modules/videoio/src/cap_mjpeg_decoder.cpp
View file @
b34d86ca
...
...
@@ -54,7 +54,7 @@ public:
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
bool
retrieveFrame
(
int
,
OutputArray
)
CV_OVERRIDE
;
virtual
bool
isOpened
()
const
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CAP_
ANY
;
}
// Return the type of the capture object: CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CAP_
OPENCV_MJPEG
;
}
MotionJpegCapture
(
const
String
&
);
bool
open
(
const
String
&
);
...
...
modules/videoio/src/cap_mjpeg_encoder.cpp
View file @
b34d86ca
...
...
@@ -403,6 +403,8 @@ public:
}
~
MotionJpegWriter
()
{
close
();
}
virtual
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_OPENCV_MJPEG
;
}
void
close
()
{
if
(
!
container
.
isOpenedStream
()
)
...
...
modules/videoio/src/cap_msmf.cpp
View file @
b34d86ca
...
...
@@ -701,7 +701,7 @@ public:
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
bool
retrieveFrame
(
int
,
cv
::
OutputArray
)
CV_OVERRIDE
;
virtual
bool
isOpened
()
const
CV_OVERRIDE
{
return
isOpen
;
}
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_MSMF
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_MSMF
;
}
protected
:
double
getFramerate
(
MediaType
MT
)
const
;
bool
configureOutput
(
UINT32
width
,
UINT32
height
,
double
prefFramerate
,
UINT32
aspectRatioN
,
UINT32
aspectRatioD
,
int
outFormat
,
bool
convertToFormat
);
...
...
@@ -1955,6 +1955,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
{
return
false
;
}
virtual
bool
isOpened
()
const
{
return
initiated
;
}
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_MSMF
;
}
private
:
Media_Foundation
&
MF
;
UINT32
videoWidth
;
...
...
modules/videoio/src/cap_qt.cpp
View file @
b34d86ca
...
...
@@ -1445,7 +1445,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_QT
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_QT
;
}
protected
:
CvCapture_QT_Movie
*
captureQT
;
...
...
@@ -1580,6 +1580,7 @@ public:
virtual
void
close
();
virtual
bool
writeFrame
(
const
IplImage
*
);
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_QT
;
}
protected
:
CvVideoWriter_QT
*
writerQT
;
};
...
...
modules/videoio/src/cap_qtkit.mm
View file @
b34d86ca
...
...
@@ -198,6 +198,8 @@ public:
int is_color=1);
~CvVideoWriter_QT();
bool writeFrame(const IplImage* image);
int getCaptureDomain() const CV_OVERRIDE { return cv::CAP_QT; }
private:
IplImage* argbimage;
QTMovie* mMovie;
...
...
modules/videoio/src/cap_unicap.cpp
View file @
b34d86ca
...
...
@@ -66,7 +66,7 @@ struct CvCapture_Unicap : public CvCapture
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_UNICAP
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_UNICAP
;
}
bool
shutdownDevice
();
bool
initDevice
();
...
...
modules/videoio/src/cap_v4l.cpp
View file @
b34d86ca
...
...
@@ -267,6 +267,8 @@ struct buffer
struct
CvCaptureCAM_V4L
CV_FINAL
:
public
CvCapture
{
int
getCaptureDomain
()
/*const*/
CV_OVERRIDE
{
return
cv
::
CAP_V4L
;
}
int
deviceHandle
;
int
bufferIndex
;
int
FirstCapture
;
...
...
modules/videoio/src/cap_vfw.cpp
View file @
b34d86ca
...
...
@@ -103,7 +103,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_VFW
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_VFW
;
}
protected
:
void
init
();
...
...
@@ -697,6 +697,7 @@ public:
virtual
void
close
();
virtual
bool
writeFrame
(
const
IplImage
*
);
int
getCaptureDomain
()
const
CV_OVERRIDE
{
return
cv
::
CAP_VFW
;
}
protected
:
void
init
();
bool
createStreams
(
CvSize
frameSize
,
bool
isColor
);
...
...
modules/videoio/src/cap_winrt_capture.hpp
View file @
b34d86ca
...
...
@@ -55,8 +55,7 @@ namespace cv {
virtual
bool
grabFrame
();
virtual
bool
retrieveFrame
(
int
channel
,
cv
::
OutputArray
outArray
);
// Return the type of the capture object
virtual
int
getCaptureDomain
()
{
return
CAP_WINRT
;
}
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CAP_WINRT
;
}
virtual
bool
isOpened
()
const
;
...
...
modules/videoio/src/cap_ximea.cpp
View file @
b34d86ca
...
...
@@ -24,7 +24,7 @@ public:
virtual
bool
setProperty
(
int
,
double
)
CV_OVERRIDE
;
virtual
bool
grabFrame
()
CV_OVERRIDE
;
virtual
IplImage
*
retrieveFrame
(
int
)
CV_OVERRIDE
;
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_XIAPI
;
}
// Return the type of the capture object: CV_CAP_VFW, etc...
virtual
int
getCaptureDomain
()
CV_OVERRIDE
{
return
CV_CAP_XIAPI
;
}
private
:
bool
_open
();
...
...
modules/videoio/src/precomp.hpp
View file @
b34d86ca
...
...
@@ -102,6 +102,7 @@ struct CvVideoWriter
{
virtual
~
CvVideoWriter
()
{}
virtual
bool
writeFrame
(
const
IplImage
*
)
{
return
false
;
}
virtual
int
getCaptureDomain
()
const
{
return
cv
::
CAP_ANY
;
}
// Return the type of the capture object: CAP_FFMPEG, etc...
};
CvCapture
*
cvCreateCameraCapture_V4L
(
int
index
);
...
...
@@ -178,6 +179,8 @@ namespace cv
virtual
bool
isOpened
()
const
=
0
;
virtual
void
write
(
InputArray
)
=
0
;
virtual
int
getCaptureDomain
()
const
{
return
cv
::
CAP_ANY
;
}
// Return the type of the capture object: CAP_FFMPEG, etc...
};
Ptr
<
IVideoCapture
>
createMotionJpegCapture
(
const
String
&
filename
);
...
...
modules/videoio/test/test_camera.cpp
0 → 100644
View file @
b34d86ca
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.
// Note: all tests here are DISABLED by default due specific requirements.
// Don't use #if 0 - these tests should be tested for compilation at least.
//
// Usage: opencv_test_videoio --gtest_also_run_disabled_tests --gtest_filter=*VideoIO_Camera*<tested case>*
#include "test_precomp.hpp"
namespace
opencv_test
{
namespace
{
TEST
(
DISABLED_VideoIO_Camera
,
basic
)
{
VideoCapture
capture
(
0
);
ASSERT_TRUE
(
capture
.
isOpened
());
std
::
cout
<<
"Camera 0 via "
<<
capture
.
getBackendName
()
<<
" backend"
<<
std
::
endl
;
std
::
cout
<<
"Frame width: "
<<
capture
.
get
(
CAP_PROP_FRAME_WIDTH
)
<<
std
::
endl
;
std
::
cout
<<
" height: "
<<
capture
.
get
(
CAP_PROP_FRAME_HEIGHT
)
<<
std
::
endl
;
std
::
cout
<<
"Capturing FPS: "
<<
capture
.
get
(
CAP_PROP_FPS
)
<<
std
::
endl
;
const
int
N
=
100
;
Mat
frame
;
int64
time0
=
cv
::
getTickCount
();
for
(
int
i
=
0
;
i
<
N
;
i
++
)
{
SCOPED_TRACE
(
cv
::
format
(
"frame=%d"
,
i
));
capture
>>
frame
;
ASSERT_FALSE
(
frame
.
empty
());
EXPECT_GT
(
cvtest
::
norm
(
frame
,
NORM_INF
),
0
)
<<
"Complete black image has been received"
;
}
int64
time1
=
cv
::
getTickCount
();
printf
(
"Processed %d frames on %.2f FPS
\n
"
,
N
,
(
N
*
cv
::
getTickFrequency
())
/
(
time1
-
time0
+
1
));
capture
.
release
();
}
}}
// namespace
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