Commit Graph

511 Commits

Author SHA1 Message Date
Vadim Levin
31289d2f32 Merge pull request #15915 from VadimLevin:dev/norm_fix
Fix implicit conversion from array to scalar in python bindings

* Fix wrong conversion behavior for primitive types

  - Introduce ArgTypeInfo namedtuple instead of plain tuple.
    If strict conversion parameter for type is set to true, it is
    handled like object argument in PyArg_ParseTupleAndKeywords and
    converted to concrete type with the appropriate pyopencv_to function
    call.
  - Remove deadcode and unused variables.
  - Fix implicit conversion from numpy array with 1 element to scalar
  - Fix narrowing conversion to size_t type.

* Fix wrong conversion behavior for primitive types

  - Introduce ArgTypeInfo namedtuple instead of plain tuple.
    If strict conversion parameter for type is set to true, it is
    handled like object argument in PyArg_ParseTupleAndKeywords and
    converted to concrete type with the appropriate pyopencv_to function
    call.
  - Remove deadcode and unused variables.
  - Fix implicit conversion from numpy array with 1 element to scalar
  - Fix narrowing conversion to size_t type.·
  - Enable tests with wrong conversion behavior
  - Restrict passing None as value
  - Restrict bool to integer/floating types conversion

* Add PyIntType support for Python 2

* Remove possible narrowing conversion of size_t

* Bindings conversion update

  - Remove unused macro
  - Add better conversion for types to numpy types descriptors
  - Add argument name to fail messages
  - NoneType treated as a valid argument. Better handling will be added
    as a standalone patch

* Add descriptor specialization for size_t

* Add check for signed to unsigned integer conversion safety

  - If signed integer is positive it can be safely converted
    to unsigned
  - Add check for plain python 2 objects
  - Add check for numpy scalars
  - Add simple type_traits implementation for better code style

* Resolve type "overflow" false negative in safe casting check

 - Move type_traits to separate header

* Add copyright message to type_traits.hpp

* Limit conversion scope for integral numpy types

  - Made canBeSafelyCasted specialized only for size_t, so
    type_traits header became unused and was removed.
  - Added clarification about descriptor pointer
2020-01-13 18:11:34 +03:00
Brian Wignall
f9c514b391 Fix spelling typos
backport commit 659ffaddb4
2019-12-27 12:46:53 +00:00
Alexander Alekhin
a45928045a
Merge pull request #16150 from alalek:cmake_avoid_deprecated_link_private
* cmake: avoid deprecated LINK_PRIVATE/LINK_PUBLIC

see CMP0023 (CMake 2.8.12+)

* cmake: fix 3rdparty list

- don't include OpenCV modules
2019-12-13 17:52:40 +03:00
Alexander Alekhin
15612ebd39 python: enable Python 3.8 2019-12-11 16:52:38 +03:00
Alexander Alekhin
4ec4ec844f python: fix issue with bindings loading on Python 3.8 2019-12-10 19:00:10 +00:00
Alexander Alekhin
76a27e3399 pre: OpenCV 3.4.9 (version++) 2019-12-05 18:28:38 +00:00
Alexander Alekhin
4dfa0a0383 bindings: basic support for #if preprocessor directives
- #if 0
- #ifdef __OPENCV_BUILD
2019-12-04 18:42:31 +03:00
Vadim Levin
8d74101f07 Merge pull request #15955 from VadimLevin:dev/vlevin/generator_tests
Tests for argument conversion of Python bindings generator

* Tests for parsing elemental types from Python bindings

  - Add positive and negative tests for int, float, double, size_t,
    const char*, bool.
  - Tests with wrong conversion behavior are skipped.

* Move implicit conversion of bool to integer/floating types to wrong
conversion behavior.
2019-11-29 16:24:13 +03:00
Alexander Alekhin
5d96f984b1 python: reduce code size of cv2.cpp 2019-11-19 22:43:28 +00:00
Alexander Alekhin
2f636b4456 Merge pull request #15918 from alalek:python_debug_parameter 2019-11-19 18:39:56 +00:00
Alexander Alekhin
7ec91aefc1 python: force using of ArgInfo 2019-11-15 19:16:22 +03:00
Alexander Alekhin
973b367da6 python: emit bindings conversion failures on OPENCV_PYTHON_DEBUG=1 2019-11-15 18:55:24 +03:00
Alexander Alekhin
d5bbb16066 Merge pull request #15834 from berak:python_fix_type_error 2019-11-02 18:50:46 +00:00
berak
b7c8e9e874 python: fix type error msg 2019-11-02 08:17:07 +01:00
Alexander Alekhin
0e40c8a031 fix pylint warnings
pylint 1.8.3
2019-10-16 18:49:33 +03:00
luz.paz
fcc7d8dd4e Fix modules/ typos
Found using `codespell -q 3 -S ./3rdparty -L activ,amin,ang,atleast,childs,dof,endwhile,halfs,hist,iff,nd,od,uint`

backporting of commit: ec43292e1e
2019-08-16 17:34:29 +03:00
gal0is
bb7dc5f992 Solve the import issue in Python2. 2019-06-16 06:10:00 +08:00
Maksim Shabunin
10d61a2b44 Limited API support for Python3 2019-06-11 15:15:49 +03:00
Alexander Alekhin
6d916c5bb4 Merge pull request #14440 from alalek:async_array 2019-06-08 20:57:15 +00:00
Alexander Alekhin
f5ca9d3fe1 python: visibility 2019-06-07 07:23:15 +00:00
Ahmed Ashour
5c56b8ce92 java: generated code to have javadoc 2019-06-05 12:44:03 +02:00
Alexander Alekhin
9340af1a8a core: Async API / AsyncArray 2019-05-18 19:32:23 +00:00
Alexander Alekhin
a0a1fb5fec python: discover tests from module/misc/python/test paths 2019-04-10 18:35:35 +00:00
Alexander Alekhin
470dfba96c python: update CMake install rules 2019-03-15 13:11:00 +03:00
Alexander Alekhin
030e955db7 python: support Python list for cv::Range 2019-03-01 20:52:35 +00:00
Alexander Alekhin
f5b58e5fc9 bindings: backport generator from OpenCV 4.x
- better handling of enum arguments
- less merge conflicts
2019-03-01 20:18:48 +00:00
Maksim Shabunin
8c1e0537ec Merge pull request #13889 from mshabunin:enable-narrowing-warning
* Enabled -Wnarrowing warning

* Fixed type narrowing issues

* Cast python constants

* Use long long for python constants

* Use int for python constants with fallback to long

* Update cv2.cpp
2019-02-26 13:15:59 +03:00
Pavel Rojtberg
f0ef4b2246 python: sys.path[0] is reserved for the main script 2019-02-08 17:24:31 +01:00
Alexander Alekhin
bb8c19aad3 cmake: fix python install paths 2018-12-17 14:32:29 +03:00
Alexander Alekhin
ad35b79e3f python: update install paths
- don't require "OPENCV_PYTHON{2,3}_INSTALL_PATH" if OPENCV_SKIP_PYTHON_LOADER=ON
- avoid unnecessary relative paths in generated config-X.Y.py
2018-11-24 13:55:46 +00:00
Alexander Alekhin
b321851e53
Merge pull request #12977 from alalek:python_package 2018-11-16 22:45:33 +03:00
Alexander Alekhin
ce6acd3ecd python: bindings loader package
Configures and loads OpenCV bindings extension including 3rdparty dependencies

Based on running Python specify:
- configure PYTHON_PATH (via "sys.path")
- configure LD_LIBRARY_PATH / PATH
2018-11-16 00:51:16 +00:00
Alexander Alekhin
2fa9bd221d core: add utils::findDataFile() / samples::findFile() 2018-11-16 00:25:06 +00:00
Alexander Alekhin
96c71dd3d2 dnn: reduce set of ignored warnings 2018-11-15 13:15:59 +03:00
Diego Barrios Romero
7a884ab6a5 Fix closing input file 2018-10-29 13:05:46 +01:00
Alexander Alekhin
aa6e296236 python: eliminate DeprecationWarning: SO -> EXT_SUFFIX
- https://python.readthedocs.io/en/stable/whatsnew/3.4.html
- The `sysconfig` key `SO` is deprecated, it has been replaced by `EXT_SUFFIX`
2018-10-25 04:23:45 +00:00
Alexander Alekhin
404893810c cmake: fix Python detection for standalone bindings 2018-10-10 16:58:23 +00:00
Dmitry Kurtaev
24ab751547 Merge pull request #12565 from dkurt:dnn_non_intel_gpu
* Remove isIntel check from deep learning layers

* Remove fp16->fp32 fallbacks where it's not necessary

* Fix Kernel::run to prevent localsize > globalsize
2018-09-26 16:27:00 +03:00
Alexander Alekhin
3cab9e7a9c 3.4: fixes 2018-09-18 08:31:11 +00:00
Dmitry Kurtaev
d259eb28bb Add python tests for dnn module 2018-09-17 15:22:47 +03:00
Hamdi Sahloul
03b3be0f51 MSVC: Slience external/meaningless warnings 2018-09-12 20:02:13 +09:00
Alexander Alekhin
95dd4b3f27 bindings: add debug helpers for args conversions 2018-09-08 12:23:08 +00:00
Hamdi Sahloul
a39e0daacf Utilize CV_UNUSED macro 2018-09-07 20:33:52 +09:00
berak
21f3987d53 python: add support for NMSBoxes 2018-08-25 08:44:45 +02:00
Maksim Shabunin
0aded5aae6 cmake: fixed builds in directories containing plus sign 2018-07-27 15:05:56 +03:00
Alexander Alekhin
270cc3bcbc videoio: add routines to query information about backends API
into cv::videoio_registry namespace
2018-07-19 17:27:37 +03:00
Alexander Alekhin
b09a4a98d4 opencv: Use cv::AutoBuffer<>::data() 2018-07-04 19:11:29 +03:00
ilovezfs
0c4328fbf3 Python 3.7 compatability
The result of PyUnicode_AsUTF8() is now of type const char * rather of 
char *.
2018-07-03 00:38:59 -07:00
Alexander Alekhin
dd7f88bd68 python: support standalone Python bindings build
- requires OpenCV source directory
- requires OpenCV binary directory with built modules and 'python_bindings_generator' target
2018-06-07 15:16:39 +03:00
Alexander Alekhin
dcb9bc2544 python: eliminate pylint warnings
Tested with:
- pylint 1.9.1
2018-06-04 17:58:06 +03:00