mirror of
https://github.com/opencv/opencv.git
synced 2025-06-08 01:53:19 +08:00
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
This commit is contained in:
commit
ef32d7fd16
@ -129,9 +129,9 @@ endif()
|
|||||||
|
|
||||||
if(INF_ENGINE_TARGET)
|
if(INF_ENGINE_TARGET)
|
||||||
if(NOT INF_ENGINE_RELEASE)
|
if(NOT INF_ENGINE_RELEASE)
|
||||||
message(WARNING "InferenceEngine version has not been set, 2020.4 will be used by default. Set INF_ENGINE_RELEASE variable if you experience build errors.")
|
message(WARNING "InferenceEngine version has not been set, 2021.1 will be used by default. Set INF_ENGINE_RELEASE variable if you experience build errors.")
|
||||||
endif()
|
endif()
|
||||||
set(INF_ENGINE_RELEASE "2020040000" CACHE STRING "Force IE version, should be in form YYYYAABBCC (e.g. 2020.1.0.2 -> 2020010002)")
|
set(INF_ENGINE_RELEASE "2021010000" CACHE STRING "Force IE version, should be in form YYYYAABBCC (e.g. 2020.1.0.2 -> 2020010002)")
|
||||||
set_target_properties(${INF_ENGINE_TARGET} PROPERTIES
|
set_target_properties(${INF_ENGINE_TARGET} PROPERTIES
|
||||||
INTERFACE_COMPILE_DEFINITIONS "HAVE_INF_ENGINE=1;INF_ENGINE_RELEASE=${INF_ENGINE_RELEASE}"
|
INTERFACE_COMPILE_DEFINITIONS "HAVE_INF_ENGINE=1;INF_ENGINE_RELEASE=${INF_ENGINE_RELEASE}"
|
||||||
)
|
)
|
||||||
|
@ -57,7 +57,7 @@ SET(Open_BLAS_INCLUDE_SEARCH_PATHS
|
|||||||
)
|
)
|
||||||
|
|
||||||
SET(Open_BLAS_LIB_SEARCH_PATHS
|
SET(Open_BLAS_LIB_SEARCH_PATHS
|
||||||
$ENV{OpenBLAS}cd
|
$ENV{OpenBLAS}
|
||||||
$ENV{OpenBLAS}/lib
|
$ENV{OpenBLAS}/lib
|
||||||
$ENV{OpenBLAS_HOME}
|
$ENV{OpenBLAS_HOME}
|
||||||
$ENV{OpenBLAS_HOME}/lib
|
$ENV{OpenBLAS_HOME}/lib
|
||||||
|
@ -145,9 +145,23 @@ if(DOXYGEN_FOUND)
|
|||||||
set(tutorial_js_path "${CMAKE_CURRENT_SOURCE_DIR}/js_tutorials")
|
set(tutorial_js_path "${CMAKE_CURRENT_SOURCE_DIR}/js_tutorials")
|
||||||
set(example_path "${CMAKE_SOURCE_DIR}/samples")
|
set(example_path "${CMAKE_SOURCE_DIR}/samples")
|
||||||
|
|
||||||
|
set(doxygen_image_path
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/images
|
||||||
|
${paths_doc}
|
||||||
|
${tutorial_path}
|
||||||
|
${tutorial_py_path}
|
||||||
|
${tutorial_js_path}
|
||||||
|
${paths_tutorial}
|
||||||
|
#${OpenCV_SOURCE_DIR}/samples/data # TODO: need to resolve ambiguous conflicts first
|
||||||
|
${OpenCV_SOURCE_DIR}
|
||||||
|
${OpenCV_SOURCE_DIR}/modules # <opencv>/modules
|
||||||
|
${OPENCV_EXTRA_MODULES_PATH} # <opencv_contrib>/modules
|
||||||
|
${OPENCV_DOCS_EXTRA_IMAGE_PATH} # custom variable for user modules
|
||||||
|
)
|
||||||
|
|
||||||
# set export variables
|
# set export variables
|
||||||
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_INPUT_LIST "${rootfile} ; ${faqfile} ; ${paths_include} ; ${paths_hal_interface} ; ${paths_doc} ; ${tutorial_path} ; ${tutorial_py_path} ; ${tutorial_js_path} ; ${paths_tutorial} ; ${tutorial_contrib_root}")
|
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_INPUT_LIST "${rootfile} ; ${faqfile} ; ${paths_include} ; ${paths_hal_interface} ; ${paths_doc} ; ${tutorial_path} ; ${tutorial_py_path} ; ${tutorial_js_path} ; ${paths_tutorial} ; ${tutorial_contrib_root}")
|
||||||
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/images ; ${paths_doc} ; ${tutorial_path} ; ${tutorial_py_path} ; ${tutorial_js_path} ; ${paths_tutorial}")
|
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_IMAGE_PATH "${doxygen_image_path}")
|
||||||
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_EXCLUDE_LIST "${CMAKE_DOXYGEN_EXCLUDE_LIST}")
|
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_EXCLUDE_LIST "${CMAKE_DOXYGEN_EXCLUDE_LIST}")
|
||||||
string(REPLACE ";" " " CMAKE_DOXYGEN_ENABLED_SECTIONS "${CMAKE_DOXYGEN_ENABLED_SECTIONS}")
|
string(REPLACE ";" " " CMAKE_DOXYGEN_ENABLED_SECTIONS "${CMAKE_DOXYGEN_ENABLED_SECTIONS}")
|
||||||
# TODO: remove paths_doc from EXAMPLE_PATH after face module tutorials/samples moved to separate folders
|
# TODO: remove paths_doc from EXAMPLE_PATH after face module tutorials/samples moved to separate folders
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
@ -48,7 +48,7 @@ titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
|
|||||||
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
|
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
|
||||||
|
|
||||||
for i in xrange(6):
|
for i in xrange(6):
|
||||||
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
|
plt.subplot(2,3,i+1),plt.imshow(images[i],'gray',vmin=0,vmax=255)
|
||||||
plt.title(titles[i])
|
plt.title(titles[i])
|
||||||
plt.xticks([]),plt.yticks([])
|
plt.xticks([]),plt.yticks([])
|
||||||
|
|
||||||
|
@ -32,8 +32,7 @@ In this tutorial you will learn how to:
|
|||||||
-# Create and update the background model by using @ref cv::BackgroundSubtractor class;
|
-# Create and update the background model by using @ref cv::BackgroundSubtractor class;
|
||||||
-# Get and show the foreground mask by using @ref cv::imshow ;
|
-# Get and show the foreground mask by using @ref cv::imshow ;
|
||||||
|
|
||||||
Code
|
### Code
|
||||||
----
|
|
||||||
|
|
||||||
In the following you can find the source code. We will let the user choose to process either a video
|
In the following you can find the source code. We will let the user choose to process either a video
|
||||||
file or a sequence of images.
|
file or a sequence of images.
|
||||||
|
@ -126,8 +126,7 @@ captRefrnc.set(CAP_PROP_POS_FRAMES, 10); // go to the 10th frame of the video
|
|||||||
For properties you can read and change look into the documentation of the @ref cv::VideoCapture::get and
|
For properties you can read and change look into the documentation of the @ref cv::VideoCapture::get and
|
||||||
@ref cv::VideoCapture::set functions.
|
@ref cv::VideoCapture::set functions.
|
||||||
|
|
||||||
Image similarity - PSNR and SSIM
|
### Image similarity - PSNR and SSIM
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
We want to check just how imperceptible our video converting operation went, therefore we need a
|
We want to check just how imperceptible our video converting operation went, therefore we need a
|
||||||
system to check frame by frame the similarity or differences. The most common algorithm used for
|
system to check frame by frame the similarity or differences. The most common algorithm used for
|
||||||
@ -145,15 +144,15 @@ Here the \f$MAX_I\f$ is the maximum valid value for a pixel. In case of the simp
|
|||||||
per pixel per channel this is 255. When two images are the same the MSE will give zero, resulting in
|
per pixel per channel this is 255. When two images are the same the MSE will give zero, resulting in
|
||||||
an invalid divide by zero operation in the PSNR formula. In this case the PSNR is undefined and as
|
an invalid divide by zero operation in the PSNR formula. In this case the PSNR is undefined and as
|
||||||
we'll need to handle this case separately. The transition to a logarithmic scale is made because the
|
we'll need to handle this case separately. The transition to a logarithmic scale is made because the
|
||||||
pixel values have a very wide dynamic range. All this translated to OpenCV and a C++ function looks
|
pixel values have a very wide dynamic range. All this translated to OpenCV and a function looks
|
||||||
like:
|
like:
|
||||||
|
|
||||||
@add_toggle_cpp
|
@add_toggle_cpp
|
||||||
@include cpp/tutorial_code/videoio/video-input-psnr-ssim/video-input-psnr-ssim.cpp get-psnr
|
@snippet cpp/tutorial_code/videoio/video-input-psnr-ssim/video-input-psnr-ssim.cpp get-psnr
|
||||||
@end_toggle
|
@end_toggle
|
||||||
|
|
||||||
@add_toggle_python
|
@add_toggle_python
|
||||||
@include samples/python/tutorial_code/videoio/video-input-psnr-ssim.py get-psnr
|
@snippet samples/python/tutorial_code/videoio/video-input-psnr-ssim.py get-psnr
|
||||||
@end_toggle
|
@end_toggle
|
||||||
|
|
||||||
Typically result values are anywhere between 30 and 50 for video compression, where higher is
|
Typically result values are anywhere between 30 and 50 for video compression, where higher is
|
||||||
@ -172,11 +171,11 @@ implementation below.
|
|||||||
Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, Apr. 2004." article.
|
Transactions on Image Processing, vol. 13, no. 4, pp. 600-612, Apr. 2004." article.
|
||||||
|
|
||||||
@add_toggle_cpp
|
@add_toggle_cpp
|
||||||
@include cpp/tutorial_code/videoio/video-input-psnr-ssim/video-input-psnr-ssim.cpp get-mssim
|
@snippet samples/cpp/tutorial_code/videoio/video-input-psnr-ssim/video-input-psnr-ssim.cpp get-mssim
|
||||||
@end_toggle
|
@end_toggle
|
||||||
|
|
||||||
@add_toggle_python
|
@add_toggle_python
|
||||||
@include samples/python/tutorial_code/videoio/video-input-psnr-ssim.py get-mssim
|
@snippet samples/python/tutorial_code/videoio/video-input-psnr-ssim.py get-mssim
|
||||||
@end_toggle
|
@end_toggle
|
||||||
|
|
||||||
This will return a similarity index for each channel of the image. This value is between zero and
|
This will return a similarity index for each channel of the image. This value is between zero and
|
||||||
|
@ -63,7 +63,7 @@ specialized video writing libraries such as *FFMpeg* or codecs as *HuffYUV*, *Co
|
|||||||
an alternative, create the video track with OpenCV and expand it with sound tracks or convert it to
|
an alternative, create the video track with OpenCV and expand it with sound tracks or convert it to
|
||||||
other formats by using video manipulation programs such as *VirtualDub* or *AviSynth*.
|
other formats by using video manipulation programs such as *VirtualDub* or *AviSynth*.
|
||||||
|
|
||||||
The *VideoWriter* class
|
The VideoWriter class
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
The content written here builds on the assumption you
|
The content written here builds on the assumption you
|
||||||
|
@ -27,10 +27,11 @@
|
|||||||
#define INF_ENGINE_RELEASE_2020_2 2020020000
|
#define INF_ENGINE_RELEASE_2020_2 2020020000
|
||||||
#define INF_ENGINE_RELEASE_2020_3 2020030000
|
#define INF_ENGINE_RELEASE_2020_3 2020030000
|
||||||
#define INF_ENGINE_RELEASE_2020_4 2020040000
|
#define INF_ENGINE_RELEASE_2020_4 2020040000
|
||||||
|
#define INF_ENGINE_RELEASE_2021_1 2021010000
|
||||||
|
|
||||||
#ifndef INF_ENGINE_RELEASE
|
#ifndef INF_ENGINE_RELEASE
|
||||||
#warning("IE version have not been provided via command-line. Using 2020.4 by default")
|
#warning("IE version have not been provided via command-line. Using 2021.1 by default")
|
||||||
#define INF_ENGINE_RELEASE INF_ENGINE_RELEASE_2020_4
|
#define INF_ENGINE_RELEASE INF_ENGINE_RELEASE_2021_1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define INF_ENGINE_VER_MAJOR_GT(ver) (((INF_ENGINE_RELEASE) / 10000) > ((ver) / 10000))
|
#define INF_ENGINE_VER_MAJOR_GT(ver) (((INF_ENGINE_RELEASE) / 10000) > ((ver) / 10000))
|
||||||
|
Loading…
Reference in New Issue
Block a user