mirror of
https://github.com/opencv/opencv.git
synced 2026-07-28 23:03:03 +04:00
Merge pull request #26026 from Abdurrahheem:ash/python_bool_binding
Add support for boolan input/outputs in python bindings #26026 This PR add support boolean input/output binding in python. The issue what mention in ticket https://github.com/opencv/opencv/issues/26024 and the PR soleves it. Data and models are located in [here](https://github.com/opencv/opencv_extra/pull/1201) ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [x] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
committed by
GitHub
parent
7e8f2a1bc4
commit
45fd4d8217
@@ -562,6 +562,11 @@ static bool init_body(PyObject * m)
|
||||
PUBLISH(CV_16FC2);
|
||||
PUBLISH(CV_16FC3);
|
||||
PUBLISH(CV_16FC4);
|
||||
PUBLISH(CV_Bool);
|
||||
PUBLISH(CV_BoolC1);
|
||||
PUBLISH(CV_BoolC2);
|
||||
PUBLISH(CV_BoolC3);
|
||||
PUBLISH(CV_BoolC4);
|
||||
#undef PUBLISH_
|
||||
#undef PUBLISH
|
||||
|
||||
|
||||
@@ -137,7 +137,9 @@ bool pyopencv_to(PyObject* o, Mat& m, const ArgInfo& info)
|
||||
typenum == NPY_INT32 ? CV_32S :
|
||||
typenum == NPY_HALF ? CV_16F :
|
||||
typenum == NPY_FLOAT ? CV_32F :
|
||||
typenum == NPY_DOUBLE ? CV_64F : -1;
|
||||
typenum == NPY_DOUBLE ? CV_64F :
|
||||
typenum == NPY_BOOL ? CV_Bool :
|
||||
-1;
|
||||
|
||||
if( type < 0 )
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ UMatData* NumpyAllocator::allocate(int dims0, const int* sizes, int type, void*
|
||||
int typenum = depth == CV_8U ? NPY_UBYTE : depth == CV_8S ? NPY_BYTE :
|
||||
depth == CV_16U ? NPY_USHORT : depth == CV_16S ? NPY_SHORT :
|
||||
depth == CV_32S ? NPY_INT : depth == CV_32F ? NPY_FLOAT :
|
||||
depth == CV_64F ? NPY_DOUBLE : depth == CV_16F ? NPY_HALF : f*NPY_ULONGLONG + (f^1)*NPY_UINT;
|
||||
depth == CV_64F ? NPY_DOUBLE : depth == CV_16F ? NPY_HALF : depth == CV_Bool ? NPY_BOOL : f*NPY_ULONGLONG + (f^1)*NPY_UINT;
|
||||
int i, dims = dims0;
|
||||
cv::AutoBuffer<npy_intp> _sizes(dims + 1);
|
||||
for( i = 0; i < dims; i++ )
|
||||
|
||||
@@ -56,7 +56,7 @@ def export_matrix_type_constants(root: NamespaceNode) -> None:
|
||||
MAX_PREDEFINED_CHANNELS = 4
|
||||
|
||||
depth_names = ("CV_8U", "CV_8S", "CV_16U", "CV_16S", "CV_32S",
|
||||
"CV_32F", "CV_64F", "CV_16F")
|
||||
"CV_32F", "CV_64F", "CV_16F", "CV_Bool")
|
||||
for depth_value, depth_name in enumerate(depth_names):
|
||||
# Export depth constants
|
||||
root.add_constant(depth_name, str(depth_value))
|
||||
|
||||
Reference in New Issue
Block a user