mirror of https://github.com/opencv/opencv.git
commit
1537a5f253
6 changed files with 88 additions and 52 deletions
@ -1,25 +1,28 @@ |
||||
# ----------------------------------------------- |
||||
# File that provides "make uninstall" target |
||||
# We use the file 'install_manifest.txt' |
||||
# |
||||
# Details: https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#can-i-do-make-uninstall-with-cmake |
||||
# ----------------------------------------------- |
||||
IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") |
||||
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") |
||||
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") |
||||
|
||||
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) |
||||
STRING(REGEX REPLACE "\n" ";" files "${files}") |
||||
FOREACH(file ${files}) |
||||
MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") |
||||
IF(EXISTS "$ENV{DESTDIR}${file}") |
||||
EXEC_PROGRAM( |
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" |
||||
OUTPUT_VARIABLE rm_out |
||||
RETURN_VALUE rm_retval |
||||
) |
||||
IF(NOT "${rm_retval}" STREQUAL 0) |
||||
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") |
||||
ENDIF(NOT "${rm_retval}" STREQUAL 0) |
||||
ELSE(EXISTS "$ENV{DESTDIR}${file}") |
||||
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") |
||||
ENDIF(EXISTS "$ENV{DESTDIR}${file}") |
||||
ENDFOREACH(file) |
||||
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") |
||||
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"") |
||||
endif() |
||||
|
||||
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) |
||||
string(REGEX REPLACE "\n" ";" files "${files}") |
||||
foreach(file ${files}) |
||||
message(STATUS "Uninstalling $ENV{DESTDIR}${file}") |
||||
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") |
||||
exec_program( |
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" |
||||
OUTPUT_VARIABLE rm_out |
||||
RETURN_VALUE rm_retval |
||||
) |
||||
if(NOT "${rm_retval}" STREQUAL 0) |
||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") |
||||
endif() |
||||
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") |
||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.") |
||||
endif() |
||||
endforeach() |
||||
|
@ -1,23 +1,4 @@ |
||||
Frequently Asked Questions {#faq} |
||||
========================== |
||||
|
||||
- **What is InputArray?** |
||||
|
||||
It can be seen that almost all OpenCV functions receive InputArray type. |
||||
What is it, and how can I understand the actual input types of parameters? |
||||
|
||||
|
||||
This is the proxy class for passing read-only input arrays into OpenCV functions. |
||||
|
||||
Inside a function you should use cv::_InputArray::getMat() method to construct |
||||
a matrix header for the array (without copying data). cv::_InputArray::kind() can be used to distinguish Mat from vector<> etc. |
||||
but normally it is not needed. |
||||
|
||||
for more information see cv::_InputArray |
||||
|
||||
- **Which is more efficient, use contourArea() or count number of ROI non-zero pixels?** |
||||
|
||||
In a case where you only want relative areas, which one is faster to compute: |
||||
calculate a contour area or count the number of ROI non-zero pixels? |
||||
|
||||
cv::contourArea() uses Green formula (http://en.wikipedia.org/wiki/Green's_theorem) to compute the area, therefore its complexity is O(contour_number_of_vertices). Counting non-zero pixels in the ROI is O(roi_width*roi_height) algorithm, i.e. much slower. Note, however, that because of finite, and quite low, resolution of the raster grid, the two algorithms will give noticeably different results. For large and square-like contours the error will be minimal. For small and/or oblong contours the error can be quite large. |
||||
Compatibility page. FAQ migrated to the project [wiki](https://github.com/opencv/opencv/wiki/FAQ). |
||||
|
Loading…
Reference in new issue