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
d945aff1
Commit
d945aff1
authored
Sep 21, 2015
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #5371 from Dikay900:ports_to_master
parents
a9b91bb4
32a4ec15
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
182 additions
and
52 deletions
+182
-52
OpenCVPackaging.cmake
cmake/OpenCVPackaging.cmake
+48
-5
opencv_run_all_tests_unix.sh.in
cmake/templates/opencv_run_all_tests_unix.sh.in
+13
-6
datastructs.cpp
modules/core/src/datastructs.cpp
+3
-0
stat.cpp
modules/core/src/stat.cpp
+10
-2
test_arithm.cpp
modules/core/test/test_arithm.cpp
+18
-1
test_imgwarp.cpp
modules/imgproc/test/test_imgwarp.cpp
+74
-27
ts_func.cpp
modules/ts/src/ts_func.cpp
+6
-9
cap_ios.h
modules/videoio/include/opencv2/videoio/cap_ios.h
+2
-0
cap_ios_video_camera.mm
modules/videoio/src/cap_ios_video_camera.mm
+8
-2
No files found.
cmake/OpenCVPackaging.cmake
View file @
d945aff1
...
@@ -20,21 +20,24 @@ endif(NOT OPENCV_CUSTOM_PACKAGE_INFO)
...
@@ -20,21 +20,24 @@ endif(NOT OPENCV_CUSTOM_PACKAGE_INFO)
#arch
#arch
if
(
X86
)
if
(
X86
)
set
(
CPACK_DEBIAN_ARCHITECTURE
"i386"
)
set
(
CPACK_DEBIAN_
PACKAGE_
ARCHITECTURE
"i386"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"i686"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"i686"
)
elseif
(
X86_64
)
elseif
(
X86_64
)
set
(
CPACK_DEBIAN_ARCHITECTURE
"amd64"
)
set
(
CPACK_DEBIAN_
PACKAGE_
ARCHITECTURE
"amd64"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"x86_64"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"x86_64"
)
elseif
(
ARM
)
elseif
(
ARM
)
set
(
CPACK_DEBIAN_ARCHITECTURE
"armhf"
)
set
(
CPACK_DEBIAN_
PACKAGE_
ARCHITECTURE
"armhf"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"armhf"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"armhf"
)
elseif
(
AARCH64
)
set
(
CPACK_DEBIAN_PACKAGE_ARCHITECTURE
"arm64"
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
"aarch64"
)
else
()
else
()
set
(
CPACK_DEBIAN_ARCHITECTURE
${
CMAKE_SYSTEM_PROCESSOR
}
)
set
(
CPACK_DEBIAN_
PACKAGE_
ARCHITECTURE
${
CMAKE_SYSTEM_PROCESSOR
}
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
${
CMAKE_SYSTEM_PROCESSOR
}
)
set
(
CPACK_RPM_PACKAGE_ARCHITECTURE
${
CMAKE_SYSTEM_PROCESSOR
}
)
endif
()
endif
()
if
(
CPACK_GENERATOR STREQUAL
"DEB"
)
if
(
CPACK_GENERATOR STREQUAL
"DEB"
)
set
(
OPENCV_PACKAGE_ARCH_SUFFIX
${
CPACK_DEBIAN_ARCHITECTURE
}
)
set
(
OPENCV_PACKAGE_ARCH_SUFFIX
${
CPACK_DEBIAN_
PACKAGE_
ARCHITECTURE
}
)
elseif
(
CPACK_GENERATOR STREQUAL
"RPM"
)
elseif
(
CPACK_GENERATOR STREQUAL
"RPM"
)
set
(
OPENCV_PACKAGE_ARCH_SUFFIX
${
CPACK_RPM_PACKAGE_ARCHITECTURE
}
)
set
(
OPENCV_PACKAGE_ARCH_SUFFIX
${
CPACK_RPM_PACKAGE_ARCHITECTURE
}
)
else
()
else
()
...
@@ -96,6 +99,46 @@ if(HAVE_CUDA)
...
@@ -96,6 +99,46 @@ if(HAVE_CUDA)
set
(
CPACK_COMPONENT_dev_DEPENDS libs
)
set
(
CPACK_COMPONENT_dev_DEPENDS libs
)
endif
()
endif
()
if
(
HAVE_TBB AND NOT BUILD_TBB
)
if
(
CPACK_DEB_DEV_PACKAGE_DEPENDS
)
set
(
CPACK_DEB_DEV_PACKAGE_DEPENDS
"
${
CPACK_DEB_DEV_PACKAGE_DEPENDS
}
, libtbb-dev"
)
else
()
set
(
CPACK_DEB_DEV_PACKAGE_DEPENDS
"libtbb-dev"
)
endif
()
endif
()
set
(
STD_OPENCV_LIBS opencv-data
)
set
(
STD_OPENCV_DEV libopencv-dev
)
foreach
(
module calib3d core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters
cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping
cudev features2d flann hal highgui imgcodecs imgproc ml objdetect ocl
photo shape stitching superres ts video videoio videostab viz
)
if
(
HAVE_opencv_
${
module
}
)
list
(
APPEND STD_OPENCV_LIBS
"libopencv-
${
module
}
3.0"
)
list
(
APPEND STD_OPENCV_DEV
"libopencv-
${
module
}
-dev"
)
endif
()
endforeach
()
string
(
REPLACE
";"
", "
CPACK_COMPONENT_LIBS_CONFLICTS
"
${
STD_OPENCV_LIBS
}
"
)
string
(
REPLACE
";"
", "
CPACK_COMPONENT_LIBS_PROVIDES
"
${
STD_OPENCV_LIBS
}
"
)
string
(
REPLACE
";"
", "
CPACK_COMPONENT_LIBS_REPLACES
"
${
STD_OPENCV_LIBS
}
"
)
string
(
REPLACE
";"
", "
CPACK_COMPONENT_DEV_CONFLICTS
"
${
STD_OPENCV_DEV
}
"
)
string
(
REPLACE
";"
", "
CPACK_COMPONENT_DEV_PROVIDES
"
${
STD_OPENCV_DEV
}
"
)
string
(
REPLACE
";"
", "
CPACK_COMPONENT_DEV_REPLACES
"
${
STD_OPENCV_DEV
}
"
)
set
(
CPACK_COMPONENT_PYTHON_CONFLICTS python-opencv
)
set
(
CPACK_COMPONENT_PYTHON_PROVIDES python-opencv
)
set
(
CPACK_COMPONENT_PYTHON_REPLACES python-opencv
)
set
(
CPACK_COMPONENT_JAVA_CONFLICTS
"libopencv3.0-java, libopencv3.0-jni"
)
set
(
CPACK_COMPONENT_JAVA_PROVIDES
"libopencv3.0-java, libopencv3.0-jni"
)
set
(
CPACK_COMPONENT_JAVA_REPLACES
"libopencv3.0-java, libopencv3.0-jni"
)
set
(
CPACK_COMPONENT_DOCS_CONFLICTS opencv-doc
)
set
(
CPACK_COMPONENT_SAMPLES_CONFLICTS opencv-doc
)
if
(
NOT OPENCV_CUSTOM_PACKAGE_INFO
)
if
(
NOT OPENCV_CUSTOM_PACKAGE_INFO
)
set
(
CPACK_COMPONENT_LIBS_DESCRIPTION
"Open Computer Vision Library"
)
set
(
CPACK_COMPONENT_LIBS_DESCRIPTION
"Open Computer Vision Library"
)
set
(
CPACK_DEBIAN_COMPONENT_LIBS_NAME
"lib
${
CMAKE_PROJECT_NAME
}
"
)
set
(
CPACK_DEBIAN_COMPONENT_LIBS_NAME
"lib
${
CMAKE_PROJECT_NAME
}
"
)
...
...
cmake/templates/opencv_run_all_tests_unix.sh.in
View file @
d945aff1
...
@@ -55,6 +55,15 @@ OPENCV_TEST_PATH=@CMAKE_INSTALL_PREFIX@/@OPENCV_TEST_INSTALL_PATH@
...
@@ -55,6 +55,15 @@ OPENCV_TEST_PATH=@CMAKE_INSTALL_PREFIX@/@OPENCV_TEST_INSTALL_PATH@
OPENCV_PYTHON_TESTS
=
@OPENCV_PYTHON_TESTS_LIST@
OPENCV_PYTHON_TESTS
=
@OPENCV_PYTHON_TESTS_LIST@
export
OPENCV_TEST_DATA_PATH
=
@CMAKE_INSTALL_PREFIX@/share/OpenCV/testdata
export
OPENCV_TEST_DATA_PATH
=
@CMAKE_INSTALL_PREFIX@/share/OpenCV/testdata
CUR_DIR
=
`
pwd
`
if
[
-d
"
$CUR_DIR
"
-a
-w
"
$CUR_DIR
"
]
;
then
echo
"
${
TEXT_CYAN
}
CUR_DIR :
$CUR_DIR
${
TEXT_RESET
}
"
else
echo
"
${
TEXT_RED
}
Error: Do not have permissions to write to
$CUR_DIR
${
TEXT_RESET
}
"
echo
"
${
TEXT_RED
}
Please run the script from directory with write access
${
TEXT_RESET
}
"
exit
1
fi
# Run tests
# Run tests
SUMMARY_STATUS
=
0
SUMMARY_STATUS
=
0
...
@@ -64,9 +73,8 @@ PASSED_TESTS=""
...
@@ -64,9 +73,8 @@ PASSED_TESTS=""
for
t
in
"
$OPENCV_TEST_PATH
/"
opencv_test_
*
"
$OPENCV_TEST_PATH
/"
opencv_perf_
*
;
for
t
in
"
$OPENCV_TEST_PATH
/"
opencv_test_
*
"
$OPENCV_TEST_PATH
/"
opencv_perf_
*
;
do
do
test_name
=
`
basename
"
$t
"
`
test_name
=
`
basename
"
$t
"
`
report
=
"
$test_name
-
`
date
--rfc-3339
=
date
`
.xml"
cmd
=
"
$t
--perf_min_samples=1 --perf_force_samples=1 --gtest_output=xml:
\"
$report
\"
"
cmd
=
"
$t
--perf_min_samples=1 --perf_force_samples=1 --gtest_output=xml:
$test_name
.xml
"
seg_reg
=
"s/^/
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
/"
# append test name
seg_reg
=
"s/^/
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
/"
# append test name
if
[
$COLOR_OUTPUT
-eq
1
]
;
then
if
[
$COLOR_OUTPUT
-eq
1
]
;
then
...
@@ -79,7 +87,7 @@ do
...
@@ -79,7 +87,7 @@ do
fi
fi
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RUN :
$cmd
"
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RUN :
$cmd
"
$cmd
|
sed
-r
"
$seg_reg
"
eval
"
$cmd
"
|
tee
"
$test_name
.log"
|
sed
-r
"
$seg_reg
"
ret
=
${
PIPESTATUS
[0]
}
ret
=
${
PIPESTATUS
[0]
}
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RETURN_CODE :
$ret
"
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RETURN_CODE :
$ret
"
...
@@ -98,14 +106,13 @@ done
...
@@ -98,14 +106,13 @@ done
for
t
in
$OPENCV_PYTHON_TESTS
;
for
t
in
$OPENCV_PYTHON_TESTS
;
do
do
test_name
=
`
basename
"
$t
"
`
test_name
=
`
basename
"
$t
"
`
report
=
"
$test_name
-
`
date
--rfc-3339
=
date
`
.xml"
cmd
=
"py.test --junitxml
$
report
\"
$OPENCV_TEST_PATH
\"
/
$t
"
cmd
=
"py.test --junitxml
$
test_name
.xml
\"
$OPENCV_TEST_PATH
\"
/
$t
"
seg_reg
=
"s/^/
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
/"
# append test name
seg_reg
=
"s/^/
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
/"
# append test name
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RUN :
$cmd
"
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RUN :
$cmd
"
eval
"
$cmd
"
|
sed
-r
"
$seg_reg
"
eval
"
$cmd
"
|
tee
"
$test_name
.log"
|
sed
-r
"
$seg_reg
"
ret
=
${
PIPESTATUS
[0]
}
ret
=
${
PIPESTATUS
[0]
}
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RETURN_CODE :
$ret
"
echo
"
${
TEXT_CYAN
}
[
$test_name
]
${
TEXT_RESET
}
RETURN_CODE :
$ret
"
...
...
modules/core/src/datastructs.cpp
View file @
d945aff1
...
@@ -1695,6 +1695,9 @@ cvSeqRemoveSlice( CvSeq* seq, CvSlice slice )
...
@@ -1695,6 +1695,9 @@ cvSeqRemoveSlice( CvSeq* seq, CvSlice slice )
slice
.
end_index
=
slice
.
start_index
+
length
;
slice
.
end_index
=
slice
.
start_index
+
length
;
if
(
slice
.
start_index
==
slice
.
end_index
)
return
;
if
(
slice
.
end_index
<
total
)
if
(
slice
.
end_index
<
total
)
{
{
CvSeqReader
reader_to
,
reader_from
;
CvSeqReader
reader_to
,
reader_from
;
...
...
modules/core/src/stat.cpp
View file @
d945aff1
...
@@ -2331,8 +2331,8 @@ void cv::minMaxIdx(InputArray _src, double* minVal,
...
@@ -2331,8 +2331,8 @@ void cv::minMaxIdx(InputArray _src, double* minVal,
size_t
minidx
=
0
,
maxidx
=
0
;
size_t
minidx
=
0
,
maxidx
=
0
;
int
iminval
=
INT_MAX
,
imaxval
=
INT_MIN
;
int
iminval
=
INT_MAX
,
imaxval
=
INT_MIN
;
float
fminval
=
FLT_MAX
,
fmaxval
=
-
FLT_MAX
;
float
fminval
=
std
::
numeric_limits
<
float
>::
infinity
(),
fmaxval
=
-
fminval
;
double
dminval
=
DBL_MAX
,
dmaxval
=
-
DBL_MAX
;
double
dminval
=
std
::
numeric_limits
<
double
>::
infinity
(),
dmaxval
=
-
dminval
;
size_t
startidx
=
1
;
size_t
startidx
=
1
;
int
*
minval
=
&
iminval
,
*
maxval
=
&
imaxval
;
int
*
minval
=
&
iminval
,
*
maxval
=
&
imaxval
;
int
planeSize
=
(
int
)
it
.
size
*
cn
;
int
planeSize
=
(
int
)
it
.
size
*
cn
;
...
@@ -2345,6 +2345,14 @@ void cv::minMaxIdx(InputArray _src, double* minVal,
...
@@ -2345,6 +2345,14 @@ void cv::minMaxIdx(InputArray _src, double* minVal,
for
(
size_t
i
=
0
;
i
<
it
.
nplanes
;
i
++
,
++
it
,
startidx
+=
planeSize
)
for
(
size_t
i
=
0
;
i
<
it
.
nplanes
;
i
++
,
++
it
,
startidx
+=
planeSize
)
func
(
ptrs
[
0
],
ptrs
[
1
],
minval
,
maxval
,
&
minidx
,
&
maxidx
,
planeSize
,
startidx
);
func
(
ptrs
[
0
],
ptrs
[
1
],
minval
,
maxval
,
&
minidx
,
&
maxidx
,
planeSize
,
startidx
);
if
(
!
src
.
empty
()
&&
mask
.
empty
())
{
if
(
minidx
==
0
)
minidx
=
1
;
if
(
maxidx
==
0
)
maxidx
=
1
;
}
if
(
minidx
==
0
)
if
(
minidx
==
0
)
dminval
=
dmaxval
=
0
;
dminval
=
dmaxval
=
0
;
else
if
(
depth
==
CV_32F
)
else
if
(
depth
==
CV_32F
)
...
...
modules/core/test/test_arithm.cpp
View file @
d945aff1
...
@@ -1792,7 +1792,6 @@ INSTANTIATE_TEST_CASE_P(Arithm, SubtractOutputMatNotEmpty, testing::Combine(
...
@@ -1792,7 +1792,6 @@ INSTANTIATE_TEST_CASE_P(Arithm, SubtractOutputMatNotEmpty, testing::Combine(
testing
::
Values
(
-
1
,
CV_16S
,
CV_32S
,
CV_32F
),
testing
::
Values
(
-
1
,
CV_16S
,
CV_32S
,
CV_32F
),
testing
::
Bool
()));
testing
::
Bool
()));
TEST
(
Core_FindNonZero
,
singular
)
TEST
(
Core_FindNonZero
,
singular
)
{
{
Mat
img
(
10
,
10
,
CV_8U
,
Scalar
::
all
(
0
));
Mat
img
(
10
,
10
,
CV_8U
,
Scalar
::
all
(
0
));
...
@@ -1816,3 +1815,21 @@ TEST(Core_BoolVector, support)
...
@@ -1816,3 +1815,21 @@ TEST(Core_BoolVector, support)
ASSERT_EQ
(
nz
,
countNonZero
(
test
)
);
ASSERT_EQ
(
nz
,
countNonZero
(
test
)
);
ASSERT_FLOAT_EQ
((
float
)
nz
/
n
,
(
float
)(
mean
(
test
)[
0
]));
ASSERT_FLOAT_EQ
((
float
)
nz
/
n
,
(
float
)(
mean
(
test
)[
0
]));
}
}
TEST
(
MinMaxLoc
,
Mat_IntMax_Without_Mask
)
{
Mat_
<
int
>
mat
(
50
,
50
);
int
iMaxVal
=
numeric_limits
<
int
>::
max
();
mat
.
setTo
(
iMaxVal
);
double
min
,
max
;
Point
minLoc
,
maxLoc
;
minMaxLoc
(
mat
,
&
min
,
&
max
,
&
minLoc
,
&
maxLoc
,
Mat
());
ASSERT_EQ
(
iMaxVal
,
min
);
ASSERT_EQ
(
iMaxVal
,
max
);
ASSERT_EQ
(
Point
(
0
,
0
),
minLoc
);
ASSERT_EQ
(
Point
(
0
,
0
),
maxLoc
);
}
modules/imgproc/test/test_imgwarp.cpp
View file @
d945aff1
...
@@ -1372,6 +1372,49 @@ void CV_GetQuadSubPixTest::prepare_to_validation( int /*test_case_idx*/ )
...
@@ -1372,6 +1372,49 @@ void CV_GetQuadSubPixTest::prepare_to_validation( int /*test_case_idx*/ )
dst
.
convertTo
(
dst0
,
dst0
.
depth
());
dst
.
convertTo
(
dst0
,
dst0
.
depth
());
}
}
////////////////////////////// resizeArea /////////////////////////////////
template
<
typename
T
>
static
void
check_resize_area
(
const
Mat
&
expected
,
const
Mat
&
actual
,
double
tolerance
=
1.0
)
{
ASSERT_EQ
(
actual
.
type
(),
expected
.
type
());
ASSERT_EQ
(
actual
.
size
(),
expected
.
size
());
Mat
diff
;
absdiff
(
actual
,
expected
,
diff
);
Mat
one_channel_diff
=
diff
;
//.reshape(1);
Size
dsize
=
actual
.
size
();
bool
next
=
true
;
for
(
int
dy
=
0
;
dy
<
dsize
.
height
&&
next
;
++
dy
)
{
const
T
*
eD
=
expected
.
ptr
<
T
>
(
dy
);
const
T
*
aD
=
actual
.
ptr
<
T
>
(
dy
);
for
(
int
dx
=
0
;
dx
<
dsize
.
width
&&
next
;
++
dx
)
if
(
fabs
(
static_cast
<
double
>
(
aD
[
dx
]
-
eD
[
dx
]))
>
tolerance
)
{
cvtest
::
TS
::
ptr
()
->
printf
(
cvtest
::
TS
::
SUMMARY
,
"Inf norm: %f
\n
"
,
static_cast
<
float
>
(
norm
(
actual
,
expected
,
NORM_INF
)));
cvtest
::
TS
::
ptr
()
->
printf
(
cvtest
::
TS
::
SUMMARY
,
"Error in : (%d, %d)
\n
"
,
dx
,
dy
);
const
int
radius
=
3
;
int
rmin
=
MAX
(
dy
-
radius
,
0
),
rmax
=
MIN
(
dy
+
radius
,
dsize
.
height
);
int
cmin
=
MAX
(
dx
-
radius
,
0
),
cmax
=
MIN
(
dx
+
radius
,
dsize
.
width
);
std
::
cout
<<
"Abs diff:"
<<
std
::
endl
<<
diff
<<
std
::
endl
;
std
::
cout
<<
"actual result:
\n
"
<<
actual
(
Range
(
rmin
,
rmax
),
Range
(
cmin
,
cmax
))
<<
std
::
endl
;
std
::
cout
<<
"expected result:
\n
"
<<
expected
(
Range
(
rmin
,
rmax
),
Range
(
cmin
,
cmax
))
<<
std
::
endl
;
next
=
false
;
}
}
ASSERT_EQ
(
0
,
norm
(
one_channel_diff
,
cv
::
NORM_INF
));
}
///////////////////////////////////////////////////////////////////////////
TEST
(
Imgproc_cvWarpAffine
,
regression
)
TEST
(
Imgproc_cvWarpAffine
,
regression
)
{
{
IplImage
*
src
=
cvCreateImage
(
cvSize
(
100
,
100
),
IPL_DEPTH_8U
,
1
);
IplImage
*
src
=
cvCreateImage
(
cvSize
(
100
,
100
),
IPL_DEPTH_8U
,
1
);
...
@@ -1501,41 +1544,45 @@ TEST(Imgproc_resize_area, regression)
...
@@ -1501,41 +1544,45 @@ TEST(Imgproc_resize_area, regression)
cv
::
resize
(
src
,
actual
,
cv
::
Size
(),
0.3
,
0.3
,
INTER_AREA
);
cv
::
resize
(
src
,
actual
,
cv
::
Size
(),
0.3
,
0.3
,
INTER_AREA
);
ASSERT_EQ
(
actual
.
type
(),
expected
.
type
()
);
check_resize_area
<
ushort
>
(
expected
,
actual
,
1.0
);
ASSERT_EQ
(
actual
.
size
(),
expected
.
size
());
}
Mat
diff
;
TEST
(
Imgproc_resize_area
,
regression_half_round
)
absdiff
(
actual
,
expected
,
diff
);
{
static
uchar
input_data
[
32
*
32
];
for
(
int
i
=
0
;
i
<
32
*
32
;
++
i
)
input_data
[
i
]
=
(
uchar
)(
i
%
2
+
253
+
i
/
(
16
*
32
));
Mat
one_channel_diff
=
diff
;
//.reshape(1);
static
uchar
expected_data
[
16
*
16
];
for
(
int
i
=
0
;
i
<
16
*
16
;
++
i
)
expected_data
[
i
]
=
(
uchar
)(
254
+
i
/
(
16
*
8
));
float
elem_diff
=
1.0
f
;
cv
::
Mat
src
(
32
,
32
,
CV_8UC1
,
input_data
);
Size
dsize
=
actual
.
size
();
cv
::
Mat
expected
(
16
,
16
,
CV_8UC1
,
expected_data
);
bool
next
=
true
;
cv
::
Mat
actual
(
expected
.
size
(),
expected
.
type
());
for
(
int
dy
=
0
;
dy
<
dsize
.
height
&&
next
;
++
dy
)
{
ushort
*
eD
=
expected
.
ptr
<
ushort
>
(
dy
);
ushort
*
aD
=
actual
.
ptr
<
ushort
>
(
dy
);
for
(
int
dx
=
0
;
dx
<
dsize
.
width
&&
next
;
++
dx
)
cv
::
resize
(
src
,
actual
,
cv
::
Size
(),
0.5
,
0.5
,
INTER_AREA
);
if
(
fabs
(
static_cast
<
float
>
(
aD
[
dx
]
-
eD
[
dx
]))
>
elem_diff
)
{
cvtest
::
TS
::
ptr
()
->
printf
(
cvtest
::
TS
::
SUMMARY
,
"Inf norm: %f
\n
"
,
static_cast
<
float
>
(
norm
(
actual
,
expected
,
NORM_INF
)));
cvtest
::
TS
::
ptr
()
->
printf
(
cvtest
::
TS
::
SUMMARY
,
"Error in : (%d, %d)
\n
"
,
dx
,
dy
);
const
int
radius
=
3
;
check_resize_area
<
uchar
>
(
expected
,
actual
,
0.5
);
int
rmin
=
MAX
(
dy
-
radius
,
0
),
rmax
=
MIN
(
dy
+
radius
,
dsize
.
height
);
}
int
cmin
=
MAX
(
dx
-
radius
,
0
),
cmax
=
MIN
(
dx
+
radius
,
dsize
.
width
);
std
::
cout
<<
"Abs diff:"
<<
std
::
endl
<<
diff
<<
std
::
endl
;
TEST
(
Imgproc_resize_area
,
regression_quarter_round
)
std
::
cout
<<
"actual result:
\n
"
<<
actual
(
Range
(
rmin
,
rmax
),
Range
(
cmin
,
cmax
))
<<
std
::
endl
;
{
std
::
cout
<<
"expected result:
\n
"
<<
expected
(
Range
(
rmin
,
rmax
),
Range
(
cmin
,
cmax
))
<<
std
::
endl
;
static
uchar
input_data
[
32
*
32
];
for
(
int
i
=
0
;
i
<
32
*
32
;
++
i
)
input_data
[
i
]
=
(
uchar
)(
i
%
2
+
253
+
i
/
(
16
*
32
));
next
=
false
;
static
uchar
expected_data
[
8
*
8
];
}
for
(
int
i
=
0
;
i
<
8
*
8
;
++
i
)
}
expected_data
[
i
]
=
254
;
cv
::
Mat
src
(
32
,
32
,
CV_8UC1
,
input_data
);
cv
::
Mat
expected
(
8
,
8
,
CV_8UC1
,
expected_data
);
cv
::
Mat
actual
(
expected
.
size
(),
expected
.
type
());
cv
::
resize
(
src
,
actual
,
cv
::
Size
(),
0.25
,
0.25
,
INTER_AREA
);
ASSERT_EQ
(
cvtest
::
norm
(
one_channel_diff
,
cv
::
NORM_INF
),
0
);
check_resize_area
<
uchar
>
(
expected
,
actual
,
0.5
);
}
}
...
...
modules/ts/src/ts_func.cpp
View file @
d945aff1
...
@@ -980,12 +980,12 @@ minMaxLoc_(const _Tp* src, size_t total, size_t startidx,
...
@@ -980,12 +980,12 @@ minMaxLoc_(const _Tp* src, size_t total, size_t startidx,
for
(
size_t
i
=
0
;
i
<
total
;
i
++
)
for
(
size_t
i
=
0
;
i
<
total
;
i
++
)
{
{
_Tp
val
=
src
[
i
];
_Tp
val
=
src
[
i
];
if
(
minval
>
val
)
if
(
minval
>
val
||
!
minpos
)
{
{
minval
=
val
;
minval
=
val
;
minpos
=
startidx
+
i
;
minpos
=
startidx
+
i
;
}
}
if
(
maxval
<
val
)
if
(
maxval
<
val
||
!
maxpos
)
{
{
maxval
=
val
;
maxval
=
val
;
maxpos
=
startidx
+
i
;
maxpos
=
startidx
+
i
;
...
@@ -997,12 +997,12 @@ minMaxLoc_(const _Tp* src, size_t total, size_t startidx,
...
@@ -997,12 +997,12 @@ minMaxLoc_(const _Tp* src, size_t total, size_t startidx,
for
(
size_t
i
=
0
;
i
<
total
;
i
++
)
for
(
size_t
i
=
0
;
i
<
total
;
i
++
)
{
{
_Tp
val
=
src
[
i
];
_Tp
val
=
src
[
i
];
if
(
minval
>
val
&&
mask
[
i
]
)
if
(
(
minval
>
val
||
!
minpos
)
&&
mask
[
i
]
)
{
{
minval
=
val
;
minval
=
val
;
minpos
=
startidx
+
i
;
minpos
=
startidx
+
i
;
}
}
if
(
maxval
<
val
&&
mask
[
i
]
)
if
(
(
maxval
<
val
||
!
maxpos
)
&&
mask
[
i
]
)
{
{
maxval
=
val
;
maxval
=
val
;
maxpos
=
startidx
+
i
;
maxpos
=
startidx
+
i
;
...
@@ -1049,8 +1049,8 @@ void minMaxLoc(const Mat& src, double* _minval, double* _maxval,
...
@@ -1049,8 +1049,8 @@ void minMaxLoc(const Mat& src, double* _minval, double* _maxval,
size_t
startidx
=
1
,
total
=
planes
[
0
].
total
();
size_t
startidx
=
1
,
total
=
planes
[
0
].
total
();
size_t
i
,
nplanes
=
it
.
nplanes
;
size_t
i
,
nplanes
=
it
.
nplanes
;
int
depth
=
src
.
depth
();
int
depth
=
src
.
depth
();
double
m
axval
=
depth
<
CV_32F
?
INT_MIN
:
depth
==
CV_32F
?
-
FLT_MAX
:
-
DBL_MAX
;
double
m
inval
=
0
;
double
m
inval
=
depth
<
CV_32F
?
INT_MAX
:
depth
==
CV_32F
?
FLT_MAX
:
DBL_MAX
;
double
m
axval
=
0
;
size_t
maxidx
=
0
,
minidx
=
0
;
size_t
maxidx
=
0
,
minidx
=
0
;
for
(
i
=
0
;
i
<
nplanes
;
i
++
,
++
it
,
startidx
+=
total
)
for
(
i
=
0
;
i
<
nplanes
;
i
++
,
++
it
,
startidx
+=
total
)
...
@@ -1093,9 +1093,6 @@ void minMaxLoc(const Mat& src, double* _minval, double* _maxval,
...
@@ -1093,9 +1093,6 @@ void minMaxLoc(const Mat& src, double* _minval, double* _maxval,
}
}
}
}
if
(
minidx
==
0
)
minval
=
maxval
=
0
;
if
(
_maxval
)
if
(
_maxval
)
*
_maxval
=
maxval
;
*
_maxval
=
maxval
;
if
(
_minval
)
if
(
_minval
)
...
...
modules/videoio/include/opencv2/videoio/cap_ios.h
View file @
d945aff1
...
@@ -71,6 +71,7 @@
...
@@ -71,6 +71,7 @@
@property
(
nonatomic
,
readonly
)
BOOL
captureSessionLoaded
;
@property
(
nonatomic
,
readonly
)
BOOL
captureSessionLoaded
;
@property
(
nonatomic
,
assign
)
int
defaultFPS
;
@property
(
nonatomic
,
assign
)
int
defaultFPS
;
@property
(
nonatomic
,
readonly
)
AVCaptureVideoPreviewLayer
*
captureVideoPreviewLayer
;
@property
(
nonatomic
,
assign
)
AVCaptureDevicePosition
defaultAVCaptureDevicePosition
;
@property
(
nonatomic
,
assign
)
AVCaptureDevicePosition
defaultAVCaptureDevicePosition
;
@property
(
nonatomic
,
assign
)
AVCaptureVideoOrientation
defaultAVCaptureVideoOrientation
;
@property
(
nonatomic
,
assign
)
AVCaptureVideoOrientation
defaultAVCaptureVideoOrientation
;
@property
(
nonatomic
,
assign
)
BOOL
useAVCaptureVideoPreviewLayer
;
@property
(
nonatomic
,
assign
)
BOOL
useAVCaptureVideoPreviewLayer
;
...
@@ -145,6 +146,7 @@
...
@@ -145,6 +146,7 @@
-
(
void
)
layoutPreviewLayer
;
-
(
void
)
layoutPreviewLayer
;
-
(
void
)
saveVideo
;
-
(
void
)
saveVideo
;
-
(
NSURL
*
)
videoFileURL
;
-
(
NSURL
*
)
videoFileURL
;
-
(
NSString
*
)
videoFileString
;
@end
@end
...
...
modules/videoio/src/cap_ios_video_camera.mm
View file @
d945aff1
...
@@ -41,7 +41,9 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
...
@@ -41,7 +41,9 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
@interface CvVideoCamera ()
@interface CvVideoCamera () {
int recordingCountDown;
}
- (void)createVideoDataOutput;
- (void)createVideoDataOutput;
- (void)createVideoFileOutput;
- (void)createVideoFileOutput;
...
@@ -98,6 +100,7 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
...
@@ -98,6 +100,7 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
- (void)start;
- (void)start;
{
{
recordingCountDown = 10;
[super start];
[super start];
if (self.recordVideo == YES) {
if (self.recordVideo == YES) {
...
@@ -551,7 +554,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
...
@@ -551,7 +554,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
});
});
if (self.recordVideo == YES) {
recordingCountDown--;
if (self.recordVideo == YES && recordingCountDown < 0) {
lastSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
lastSampleTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
// CMTimeShow(lastSampleTime);
// CMTimeShow(lastSampleTime);
if (self.recordAssetWriter.status != AVAssetWriterStatusWriting) {
if (self.recordAssetWriter.status != AVAssetWriterStatusWriting) {
...
@@ -571,6 +575,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
...
@@ -571,6 +575,8 @@ static CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}
withPresentationTime:lastSampleTime] ) {
withPresentationTime:lastSampleTime] ) {
NSLog(@"Video Writing Error");
NSLog(@"Video Writing Error");
}
}
if (pixelBuffer != nullptr)
CVPixelBufferRelease(pixelBuffer);
}
}
}
}
...
...
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