Commit Graph

192 Commits

Author SHA1 Message Date
Pavel Rojtberg
6c1a433c4c python: also catch general c++ exceptions
they might be thrown from third-party code (notably Ogre in the ovis
module).
While Linux is kind enough to print them, they cause instant termination
on Windows.
Arguably, they do not origin from OpenCV itself, but still this helps
understanding what went wrong when calling an OpenCV function.
2021-02-02 21:16:01 +01:00
Alexander Alekhin
cdf73f2e05 Merge pull request #19427 from alalek:issue_19426 2021-01-31 14:24:37 +00:00
Alexander Alekhin
c5bf15e009 build: fix cv2.cpp compilation 2021-01-30 11:32:27 +00:00
Vadim Levin
1d3207d7c7 feat: common fixed size sequence conversion for Python bindings 2021-01-25 08:08:38 +03:00
Vadim Levin
a0bdb78a99 feat: add overload resolution exception for Python bindings 2021-01-18 16:29:17 +03:00
Vadim Levin
7b0d7d0c9a fix: conversion to string in python bindings
If provided `PyObject` can't be converted to string `TypeError` is
 reported instead of `SytemError` without any message.
2020-12-16 15:11:58 +03:00
Pavel Rojtberg
e13a73d084 core: export getCPUFeaturesLine to bindings 2020-02-10 14:06:43 +01:00
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
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
Maksim Shabunin
10d61a2b44 Limited API support for Python3 2019-06-11 15:15:49 +03:00
Alexander Alekhin
f5ca9d3fe1 python: visibility 2019-06-07 07:23:15 +00: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
Hamdi Sahloul
03b3be0f51 MSVC: Slience external/meaningless warnings 2018-09-12 20:02:13 +09: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
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
c2d40b465d python: fix arg types of cv2_UMatWrapperObject functions 2018-05-30 18:07:03 +03:00
Alexander Alekhin
1207300e01 python: avoid direct cast PyCFunctionWithKeywords->PyCFunction 2018-05-30 17:24:43 +03:00
Dmitry Kurtaev
d5b9563263 Custom deep learning layers in Python 2018-04-26 09:25:18 +03:00
Alexander Alekhin
21026bf7cd python: fix support of UI callbacks 2018-04-19 18:42:01 +03:00
Alexander Alekhin
47e476c9cd Merge pull request #11217 from dan-masek:fix_issue_11206 2018-04-08 15:12:12 +00:00
Alexander Alekhin
d294e9d62a Merge pull request #11216 from dan-masek:fix_issue_11205 2018-04-04 15:37:57 +00:00
Dan Mašek
8c1d8eccdd Merge pull request #11207 from dan-masek:add_redirect_error
* Add Python support for error message handlers.

* Move the static variable to the only function that uses it.

* Remove the optional param (user data), since this can already be handled by closures.

* Correct the help string.

* python: added redirectError test
2018-04-03 21:16:34 +03:00
Dan Mašek
f6e299b58b Fix #11206 2018-04-03 03:24:49 +02:00
Dan Mašek
eae3ed0c08 Fix a leak described in issue #11205 2018-04-03 03:02:21 +02:00
Alexander Alekhin
25be4186bc python: apply CV_OVERRIDE/CV_FINAL 2018-03-28 18:43:28 +03:00
Andrei Costinescu
38d73123c1
#include <math.h> in cv2.cpp
My build fails with the error:
"C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/cmath:1136:11: error: '::hypot' has not been declared".
I have tried to fix it by adding "#include <cmath>" before the line "#include <Python.h>" but then the build has failed with the error:
"C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/math.h:91:12:: error: 'std::_hypot' has not been declared".
Adding "#include <math.h>" allowed me to build opencv.
2018-03-25 20:39:29 +02:00
luz.paz
d05714995c Misc. modules/ cont. pt2
Found via `codespell`
2018-02-13 11:28:11 -05:00
Alexander Alekhin
9e298ea1bb build: eliminate c++17 Python build warning 2018-02-09 17:09:36 +03:00
Alexander Alekhin
768f4cb7bc python: 'sub-module' for binding sources and documentation meta information 2017-12-09 21:01:46 +00:00
Vadim Pisarevsky
58a83e99c0 Merge pull request #9839 from terfendail:features/python_wrapper/surface_matching_cleanup 2017-10-27 11:22:10 +00:00
Vitaly Tuzov
868ad16041 Python wrappers for Vec and Matx 2017-10-23 18:50:49 +03:00
Igor Wodiany
e2499e5b2f
Move vector_size_t and vector_vector_Mat
These two typdefs are not compiled when BUILD_opencv_dnn is set to
false, however there are other modules that uses these typedef so
it may cause build errors. Moving typedef to the python module
ensures they are always defined.
2017-10-14 19:06:15 +01:00
Maksim Shabunin
2ac57a2b1f Merge pull request #9457 from alalek:type_traits_issue_7599 2017-09-06 13:34:29 +00:00
Lewis B
1caca2112b Merge pull request #8934 from lewisjb:python-classes
* Refactor Python Classes
2017-09-05 05:38:17 +00:00
Alexander Alekhin
72f789bf34 core: fix type traits 2017-08-31 15:05:46 +03:00
Alexander Alekhin
46f05f2db6 python: disable assertion in NumpyAllocator 2017-07-30 14:44:11 +03:00
Werner Palfinger
0f42031b10 fixed typo in pyopencv_from Point3d 2017-05-30 16:49:23 +02:00
Pavel Rojtberg
930611dfa8 python: move Ptr specializations above generic_vec to allow vector_Ptr_T 2017-04-27 11:28:31 +02:00
Peter Würtz
a4c70aebd0 Expose UMat OpenCL handles and buffer information to python 2017-04-22 09:42:27 +02:00
Hamdi Sahloul
89088937a7 Avoid memory leakage in smart pointers wrapper 2017-04-01 18:27:57 +09:00
Hamdi Sahloul
c75b589f89 Wraps smart pointers properly 2017-04-01 03:19:29 +09:00
Hans Gaiser
11b24eb49f Expose CirclesGridFinderParameters in findCirclesGrid. 2017-03-02 10:53:45 +01:00