Compare commits

...

905 Commits
4.x ... 5.x

Author SHA1 Message Date
Alexander Smorkalov 6de28c21f8 Merge branch 4.x 3 weeks ago
Alexander Smorkalov 6437f182af
Merge pull request #3884 from asmorkalov:as/port_26932 3 weeks ago
Alexander Smorkalov 70104ed2b6 Replace deprecated tostring() with tobytes(). 3 weeks ago
Gursimar Singh 2b3ddc04f3
Merge pull request #3875 from gursimarsingh:mcc_pr3599_bugfix_5.xx 4 weeks ago
Alexander Smorkalov ae38440ffe
Merge pull request #3881 from asmorkalov:as/port_gapi_includes 1 month ago
Alexander Smorkalov e8076ae8f5 Port of OpenCV #26879 to contrib. 1 month ago
Alexander Smorkalov e13cb471f9 Merge branch 4.x 1 month ago
Maksim Shabunin b3b2257c06
CI: unified Linux pipeline (5.x) (#3857) 1 month ago
Alexander Smorkalov 1fd94a7654
Merge pull request #3862 from Kumataro:fixC3861 2 months ago
Kumataro 55271279c0 xobjdetect: fix to build world 2 months ago
Alexander Smorkalov 712f9758c5 Merge branch 4.x 3 months ago
Alexander Smorkalov f7d6288aeb
Merge pull request #3834 from asmorkalov:as/force_dnn_supperres_classic 3 months ago
Alexander Smorkalov fb2f42bfea
Merge pull request #3835 from asmorkalov:as/imclude_chrono_contrib 3 months ago
Alexander Smorkalov a08462cc79 Force to use dnn_supperres module to the use classic engine due to the new engine bug. 3 months ago
Alexander Smorkalov 54b7c4479e Fixed missing include chrono in g-api tests 3 months ago
Alexander Smorkalov 2d69dd1215
Merge pull request #3827 from asmorkalov:as/gapi_migration 3 months ago
Alexander Smorkalov af0b94e566
Merge pull request #3826 from mshabunin:cleanup-core 4 months ago
Maksim Shabunin 89576d4ada C-API cleanup: removed obsolete apps from xobjdetect 4 months ago
Alexander Smorkalov 1fe9800ebf Merge branch 4.x 4 months ago
WU Jia 2f69f9ec2b
Merge pull request #3820 from kaingwade:rename_features2d 4 months ago
Alexander Smorkalov fe10e50fb7
Merge pull request #3821 from asmorkalov:as/new_dnn_caffe 4 months ago
Alexander Smorkalov aaad40afbc Do not use forward to layer feature in WeChat to support the new dnn engine. 4 months ago
Alexander Smorkalov bd3b734731 Merge branch 4.x 4 months ago
Alexander Smorkalov ddfb5cf776
Merge pull request #3812 from asmorkalov:as/drop_convertFp16 5 months ago
Alexander Smorkalov 596471c5e8 drop convertFp16 in favor of cv::Mat::convertTo. 5 months ago
Alexander Smorkalov 3cc592369b
Merge pull request #3808 from mshabunin:cpp-cleanup 5 months ago
Vadim Pisarevsky 31be64eae7
Merge pull request #3794 from vpisarev:new_dnn_engine 5 months ago
Maksim Shabunin 974247ce41 C-API cleanup: removed legacy API usage 5 months ago
WU Jia d131137a14
Merge pull request #3709 from kaingwade:features2d_parts_to_contrib 5 months ago
Yuantao Feng 29d78749dd
Merge pull request #3787 from fengyuentau:imgproc/warpaffine_opt 5 months ago
Alexander Smorkalov a5d5e930e9 Merge branch 4.x 6 months ago
Alexander Smorkalov a15a0eaf0e Merge branch 4.x 6 months ago
Alexander Smorkalov cda2184147
Merge pull request #3780 from mshabunin:cpp-videoio-highgui 6 months ago
Alexander Smorkalov e09802b541
Merge pull request #3788 from asmorkalov:as/ml_build_fix 6 months ago
Maksim Shabunin 28c70fddbe C-API cleanup: use error codes enumeration 6 months ago
Alexander Smorkalov 0e428f078c
Merge pull request #3786 from mshabunin:cpp-error-ts 6 months ago
Maksim Shabunin 19ae44a454 C-API cleanup: removed unnecessary python adapter from ml module 6 months ago
Alexander Smorkalov 396675f307 Merge branch 4.x 7 months ago
Alexander Smorkalov bdd093bb29
Merge pull request #3782 from ivafanas:speedup_random_forest_getvotes 7 months ago
Ivan Afanasyev 2579b1e562 speedup random forest getVotes method. 7 months ago
Maksim Shabunin 0ba0af02e1 C-API cleanup: videoio and highgui interfaces 7 months ago
WU Jia 328b1b1309
Merge pull request #3771 from kaingwade:refine_ml_doc 7 months ago
Alexander Smorkalov 1af009236a Merge branch 4.x 8 months ago
Alexander Smorkalov 4e5b46b75f Merge branch 4.x 8 months ago
Alexander Smorkalov 496968cf63 Merge branch 4.x 8 months ago
Maksim Shabunin 9a3ab80a10 Merge remote-tracking branch 'upstream/4.x' into '5.x' 9 months ago
Alexander Smorkalov 8b4dac2d19
Merge pull request #3729 from WanliZhong:remove_goturn 10 months ago
Wanli 02e8476cc8 remove goturn related code 11 months ago
Alexander Smorkalov fe06856b0c
Merge pull request #3712 from kaingwade:clean_haarcascades_jsbindings 11 months ago
Alexander Smorkalov 140086338a Merge branch 4.x 11 months ago
Alexander Smorkalov d72bcfde6b Merge branch 4.x 11 months ago
Alexander Smorkalov ff95d083b0 Merge branch 4.x 11 months ago
kaingwade 5ce3b61cfe Fix broken js build after moving HaarCascades to contrib 11 months ago
Alexander Smorkalov 542e22aeff Merge branch 4.x 11 months ago
Alexander Smorkalov 02a72d146b
Merge pull request #3649 from asmorkalov:as/drop_old_aruco 12 months ago
Alexander Smorkalov 3fb8e96a2f
Merge pull request #3694 from WanliZhong:remove_darknet 12 months ago
Alexander Smorkalov b59db38068 Drop old Aruco module after migration to main repo in 4.x branch. 12 months ago
WU Jia 3f609aa21c
Move objdetect HaarCascadeClassifier and HOGDescriptor to contrib xobjdetect (#3692) 12 months ago
Wanli 79d29a6197 remove darknet 1 year ago
Maksim Shabunin 8f3a61b83c
Merge pull request #3687 from mshabunin:doc-upgrade-5.x 1 year ago
Maksim Shabunin 6f68a4ebcc
Merge pull request #3642 from mshabunin:cleanup-imgproc-1 1 year ago
Alexander Smorkalov d4a1aeaff4
Merge pull request #3648 from asmorkalov:al/dnn-type-inference 1 year ago
Alexander Lyulkov dd7d7e98a2 Added dnn type inference support 1 year ago
WU Jia cf63a7f71f
Merge pull request #3636 from kaingwade:ml_to_contrib 1 year ago
Alexander Smorkalov c5d22ddf14 Merge branch 4.x 1 year ago
Alexander Smorkalov efa11a447d Merge branch 4.x 1 year ago
Alexander Smorkalov f63396a48d Merge branch 4.x 1 year ago
Alexander Smorkalov d9275cbe21 Merge branch 4.x 1 year ago
Alexander Smorkalov 4b7de5ae4e Merge branch 4.x 1 year ago
Alexander Smorkalov 72721eb313 Merge branch 4.x 1 year ago
Alexander Smorkalov 219eaec156 Merge branch 4.x 1 year ago
Alexander Smorkalov 43530fc57f Merge branch 4.x 1 year ago
Vadim Pisarevsky 0200571aa3
attempt to add 0d/1d mat support (#3511) 1 year ago
Alexander Smorkalov f23a567f0d Merge branch 4.x 2 years ago
Vadim Pisarevsky 96257c2492
Added new data types (#3523) 2 years ago
Alexander Smorkalov 59076a5e48
Merge pull request #3543 from asmorkalov:as/5.x-ci-ubuntu22 2 years ago
Alexander Smorkalov 0b976a6405 Add CI configuration with Ubuntu 22.04 for 5.x branch. 2 years ago
Alexander Smorkalov a9d5b85c6d Merge branch 4.x 2 years ago
Alexander Smorkalov 31a01cf111 Merge branch 4.x 2 years ago
Alexander Smorkalov ec51e4f297 Merge branch '4.x' into 5.x-merge-4.x-origin 2 years ago
Alexander Smorkalov b46dc31729
Merge pull request #3446 from vovka643:5.x_depricated_backends 2 years ago
vovka643 5ca3feb064 changed CAP_OPENNI to CAP_OPENNI2 flag 2 years ago
Alexander Alekhin 55b585a03d Merge branch 4.x 2 years ago
Alexander Alekhin e38725dc28 Merge branch 4.x 2 years ago
Alexander Alekhin 73b5a78e83
Merge pull request #3417 from tomoaki0705:fix_warning 2 years ago
Tomoaki Teshima 52ec046681 suppress warnings 2 years ago
Alexander Alekhin d980cc3f98 Merge branch 4.x 2 years ago
Alexander Smorkalov 0335ba79ef
Merge pull request #3392 from asmorkalov:as/run_cuda_always_5x 2 years ago
Alexander Smorkalov baf7b7e50e 5.x: Always run CUDA branch on CI. 2 years ago
Alexander Alekhin 0207c9291c
Merge pull request #3370 from mshabunin:c-cleanup 2 years ago
Rostislav Vasilikhin bdf24e63cb
Merge pull request #3388 from savuor:pytsdf_from_scratch 2 years ago
Alexander Smorkalov 4d49ef7a7d
Merge pull request #3382 from savuor:volume_interface_etc 2 years ago
Rostislav Vasilikhin f8c4aaa57c fixed LargeKinFu compilation 2 years ago
Maksim Shabunin ab8f50a9a4 Cleanup C-API usage (imgproc, highgui) 2 years ago
Rostislav Vasilikhin 5a9d7fb20e
Merge pull request #3366 from savuor:icp_oframe_readonly 2 years ago
Alexander Smorkalov f2f05c27b6
Merge pull request #3364 from asenyaev:asen/cuda_pipelines_5.x 2 years ago
Andrey Senyaev df09e9fafa Workflow Ubuntu 20.04 x64 with CUDA support (5.x) 2 years ago
Alexander Alekhin 429d111c35 Merge branch 4.x 3 years ago
Alexander Smorkalov 255ee725d5 Merge pull request #3311 from asenyaev:asen/rename_jobs_5.x 3 years ago
Andrey Senyaev 818dc19eee Rename jobs in GHA for 5.x 3 years ago
Alexander Alekhin b9ccfebf24 Merge pull request #3279 from fengyuentau:macOS_workflows_for_5.x 3 years ago
fengyuentau 75a7d0db3e add workflows for macOS for contrib 5.x 3 years ago
hengguan e3cd1859ce
Merge pull request #2995 from hengguan:ppf_matching 3 years ago
Alexander Alekhin d78fbf8117 Merge pull request #3259 from asenyaev:asen/move_workflows_5.x 3 years ago
Andrey Senyaev 3321a437b4 Move workflows to a dedicated repository for 5.x branch 3 years ago
OpenCV Developers 0463a7af78 Merge branch 4.x 3 years ago
OpenCV Developers b8e4061a3f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
OpenCV Pushbot bbe04482d1
Merge pull request #3224 from AleksandrPanov:fix_testBoardSubpixelCoords 3 years ago
AleksandrPanov 2e9505617e fix testBoardSubpixelCoords 3 years ago
Alexander Alekhin 3b5a55876f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Pranay Pandit da967e070e
Merge pull request #3207 from aimbot6120:swtfix 3 years ago
Alexander Alekhin fe43396536 Merge pull request #3199 from kim-ninh:wechatqr/hybrid_binarizer 3 years ago
Ninh Huynh a2550a59b9 re-implement blockIntegral calculation 3 years ago
Alexander Alekhin 7a35d3df76 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
cudawarped 1490611d63
Merge pull request #3198 from cudawarped:cudacodec_add_frame_colour_format_request 3 years ago
Alexander Alekhin ed38f75f07 Merge pull request #3209 from cudawarped:cudacodec_change_n_decode_surfaces 3 years ago
Alexander Alekhin 172a0446cd Merge pull request #3211 from cudawarped:fix_cuda_minmax_python_bindings 3 years ago
cudawarped ea450e6378 Fix cuda::minMax and cuda::minMaxLoc python bindings to correctly output the results. 3 years ago
cudawarped c3ac120b48 Add facility to request the minimum number of decode surfaces when creating cudacodec::VideoReader. 3 years ago
Alexander Alekhin 508c8db05e Merge pull request #3196 from cudawarped:expose_cudacodec_format_to_python 3 years ago
cudawarped 54d1ae0417 Expose VideoReader::format() to python bindings and update python test to check for this. 3 years ago
Alexander Alekhin dd8be233ad Merge pull request #3191 from asmorkalov:as/cuda_meanstddev 3 years ago
Alexander Smorkalov df101fd7e3 Added 32FC1 type support and mask to cuda::meanStdDev implementation. 3 years ago
Mitul Vekariya 6a71751a64
Merge pull request #3185 from northvolt:hough_cuda_texture_obj 3 years ago
Alexander Alekhin cbd4bd7e7c Merge branch 4.x 3 years ago
Artem Saratovtsev 119fb7e073
Merge pull request #3162 from DumDereDum:new_volume 3 years ago
Alexander Alekhin a5b2490a3f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin 7882aea9c9 Merge pull request #3166 from aditya9710:my-readme-contribution 3 years ago
Alexander Alekhin 37570fac7f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin 6b8d5150a3 Merge pull request #3167 from cudawarped:issue_3163 3 years ago
Alexander Alekhin 933b0117ce Merge pull request #3153 from stal12:4.x 3 years ago
Alexander Panov 51078a539b
Merge pull request #3151 from AleksandrPanov:rebase_aruco_speedup 3 years ago
Alexander Alekhin 30156e9dd7 Merge pull request #3168 from cudawarped:fix_gpumat_dataend_bug 3 years ago
Stefano Allegretti 80eb045bf6 Add Connected Components Labeling in CUDA 3 years ago
cudawarped 55cbe767ac Add locateROI test case to check GpuMat::dataend calculation. 3 years ago
cudawarped 54a7c7c627 Fix bug due to missing step. 3 years ago
Aditya Mehrotra fa50e84c4c Grammatically updated the readme 3 years ago
Alexander Alekhin d4719b28f6 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin e223e1560a Merge pull request #3148 from paroj:ovisup 3 years ago
Alexander Alekhin 82bd0c69a4 Merge pull request #3158 from paroj:ovisfix 3 years ago
Alexander Alekhin 43f3c2f83e Merge pull request #3160 from sturkmen72:upd_templates 3 years ago
Suleyman TURKMEN 64a639e183 Update ISSUE_TEMPLATE.md and PULL_REQUEST_TEMPLATE.md 3 years ago
Pavel Rojtberg 678d0fc5be ovis: handle bg material change after shader genration 3 years ago
Dan d9e700891a
Merge pull request #3157 from danopdev:4.x 3 years ago
Alexander Alekhin 2c051d5243 Merge pull request #3154 from doprea:4.x 3 years ago
Dan Oprea 5c5dedcfc1 https://github.com/opencv/opencv_contrib/issues/3152 3 years ago
Alexander Alekhin bb3048d524 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
cudawarped fdb53d633d
Merge pull request #3144 from cudawarped:test_cuda_event 3 years ago
Pavel Rojtberg a3a2eedfd7 ovis: update documentation 3 years ago
Alexander Alekhin 92dccacae8 Merge branch 4.x 3 years ago
cudawarped 758c1a9b94
Merge pull request #3139 from cudawarped:pass_videocapture_params_to_videoreader 3 years ago
Rostislav Vasilikhin 28bc8d52fc
Merge pull request #3127 from savuor:levmarqfromscratch 3 years ago
Rostislav Vasilikhin 49e8f123ca
Merge pull request #3137 from savuor:backport_levmarqfromscratch 3 years ago
Alexander Alekhin 53365ce229 Merge pull request #3135 from paroj:ovisup 3 years ago
Alexander Alekhin 755beca9f2 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Pavel Rojtberg 0ad33e776b ovis: consistently use 0..1 value range for colors 3 years ago
Alexander Alekhin f31d203452 Merge pull request #3134 from asmorkalov:as/stereo_ub2 3 years ago
Alexander Smorkalov 3fa3b52191 Fixed array initialization in cuda::stereoBM. 3 years ago
Alexander Smorkalov ab006c9201
Merge pull request #3081 from asmorkalov:as/stereo_bm_uniqueness_ratio 3 years ago
Alexander Alekhin 80ff29a653 Merge pull request #3132 from asmorkalov:as/stereo_prefilter 3 years ago
Alexander Alekhin eed990a78e Merge pull request #3130 from ToFam:ed_segment_getter 3 years ago
ToFam e90e9fccee EdgeDrawing: Add getter for line edge segments 3 years ago
Alexander Smorkalov 412028cf61 Prefiltering for cuda::stereoBM. 3 years ago
cudawarped 1cecd2cea0
Merge pull request #3098 from cudawarped:rtsp_video_write 3 years ago
Alexander Alekhin 8bd63161fe Merge pull request #3128 from alalek:cmake_fix_opengl 3 years ago
Alexander Alekhin 744a459cec Merge pull request #3121 from paroj:colorfu 3 years ago
Pavel Rojtberg 04cafeb244 rgbd: colored kinfu - allow fetching colors for pointcloud 3 years ago
Alexander Alekhin d9c1d48e70 cmake: fix OPENGL_LIBRARIES handling 3 years ago
Artem Saratovtsev 5ab9997efb
Merge pull request #3055 from DumDereDum:new_odometry 3 years ago
Alexander Alekhin 41b70b0cb9 Merge pull request #3124 from duanqn:duanqn/fix-typo 3 years ago
Qingnan Duan 2812931a47 Fix typo 3 years ago
Alexander Alekhin 47f13d71f7 Merge pull request #3091 from asmorkalov:as/async_warp 3 years ago
Alexander Alekhin ca6f422163 Merge pull request #3123 from sturkmen72:legacy_constants 3 years ago
Suleyman TURKMEN 180775f5bb fix legacy contants 3 years ago
scloke a5cc475583
Merge pull request #3093 from scloke:master 3 years ago
Alexander Alekhin ebcc69caf5 Merge pull request #3113 from TracelessLe:master 3 years ago
Alexander Alekhin 43d897536e Merge pull request #3120 from AleksandrPanov:fix-aruco-tutorial 3 years ago
AleksandrPanov 4c77068196 add camera parameters for the tutorial 3 years ago
TracelessLe b4be7469fb
Update color_cvt.hpp 3 years ago
Alexander Alekhin a22e5a8b6b Merge pull request #3112 from berak:ximgproc_fix_edge_drawing 3 years ago
Your Name 3792e18661 ximgproc: fix delete calls in edge_drawing_common 3 years ago
Alexander Alekhin 0863f9c43f Merge pull request #3110 from Kumataro:4.x_fix3108 3 years ago
Kumataro 8703798a31 julia: Determine availability based on whether the HAVE_JULIA is defined 3 years ago
Alexander Alekhin 49ea8642e1 Merge pull request #3095 from JulieBar:remap_overflow 3 years ago
Alexander Alekhin 939129db2b Merge pull request #3107 from saurabheights:patch-1 3 years ago
Saurabh Khanduja f24fe53fa5
barcode - remove multiple color to gray conversion 3 years ago
Alexander Alekhin 7ddca22aa6 Merge pull request #3103 from aluaces:patch-1 3 years ago
Alberto Luaces f211fabdb2
Fix typo 3 years ago
クロポ e94ec40615
Merge pull request #3090 from kuloPo:add-hough_space_transform 3 years ago
Julie Bareeva ab13816360 add regression test for remap in case of overflow 3 years ago
Alexander Alekhin a26f713130 Merge pull request #3094 from thunderbirdtr:viz_samples 3 years ago
Alexander Alekhin 9100b8a99f Merge pull request #3092 from aimbot6120:sample_optimization 3 years ago
Onuralp SEZER 0d37127299
- Fixes multiple old viz function into new name 3 years ago
Pranay fa47500442 fixed /modules/text/textdetection.py sample 3 years ago
Alexander Smorkalov 4607b7d693 Pass warping matrix as parameter instead of const memory to exclude stream rases. 3 years ago
Alexander Alekhin 92987f8da2 Merge pull request #3089 from noahstier:tlv1_cuda_optimization 3 years ago
Noah Stier e245d4ae3a remove default stream sync in cuda TVL1 optical flow 3 years ago
Alexander Alekhin 3db7682c03 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin b3d3a55e94 Merge pull request #3086 from tomoaki0705:fixDependencyMCC 3 years ago
Tomoaki Teshima d87c310916 fix dependency of MCC 3 years ago
Alexander Alekhin 71f9dbd144 Merge pull request #3082 from sergiud:wordsize-undefined 3 years ago
Sergiu Deitsch b05bd65689 fixed redefinition error on clang with musl 3 years ago
Alexander Alekhin 7773114aca Merge pull request #3079 from Kumataro:Kumataro-patch-1 3 years ago
Alexander Alekhin e6ca777196 Merge pull request #3070 from asmorkalov:as/hw_optflow_destructor 3 years ago
Kumataro 878f5d9709
freetype: fix call sequence for Harfbuzz 3 years ago
Alexander Smorkalov 31bf226be0 Remove useless locks. 3 years ago
Alexander Alekhin fe4221e9b5 Merge branch 4.x 3 years ago
Alexander Alekhin 012fb2375d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin 4ed2c37a04 Merge pull request #3064 from sturkmen72:patch-2 3 years ago
Alexander Alekhin edcca752b0 Merge pull request #3065 from sturkmen72:patch-3 3 years ago
Alexander Smorkalov 46ec72afe4 Release HW related handles for Nvidia hardware accelerated optical flow. 3 years ago
Suleyman TURKMEN ae23e0c351 Update tutorial.markdown 3 years ago
Suleyman TURKMEN a7b380196f Update README.md 3 years ago
Alexander Alekhin 2bc3e1a169 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin 5e5609cc44 Merge pull request #3059 from sturkmen72:patch-2 3 years ago
Suleyman TURKMEN a36a67d12e
Update run_length_morphology.cpp 3 years ago
Alexander Alekhin 31f96a1705 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 3 years ago
Alexander Alekhin 08634b2a35 Merge pull request #3052 from kuloPo-com:fix-cudacodec-perf_video.cpp 3 years ago
kuloPo 9d2989fd5e Fix CV_FOURCC identifier not found while compiling 3 years ago
Alexander Alekhin 99ecbc16c8 Merge moved code from opencv/3.4 3 years ago
Tomoaki Teshima f5368a9d90 [moved from opencv] suppress GaussianBlur to generate empty images 3 years ago
Archit Rungta c3de0d3d90
Merge pull request #3009 from archit120:julia_21-phase2 3 years ago
Alexander Alekhin 9278ed8d8a Merge pull request #3049 from sturkmen72:clean_up_test_data 3 years ago
Gokberk Gul 9358d75e30
Merge pull request #3011 from gokberkgul:wrapper-drawCharucoDiamond 4 years ago
Suleyman TURKMEN 07a9245847 Update perf_video.cpp 4 years ago
Alexander Alekhin 28771e28c6 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Andreas Franek a1fe9c871f
Merge pull request #3024 from andy-held:charuco-selectAndRefineChessboardCorners 4 years ago
Alexander Alekhin 33b500b225 Merge pull request #3039 from paroj:ovis_off_aa 4 years ago
Pavel Rojtberg 2b16d26dc7 ovis: fix offscreen FSAA target not being resolved 4 years ago
Artem Saratovtsev 78acb196bc
Merge pull request #2981 from DumDereDum:kinfu_python_demo 4 years ago
Alexander Alekhin b83d965efd Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Rostislav Vasilikhin b9ad0d45c9
Merge pull request #2936 from savuor:rgbd_to_3d 4 years ago
Alexander Alekhin 907efb9668 Merge pull request #2994 from archit120:julia_phase1 4 years ago
Alexander Alekhin 66f4ad412a Merge pull request #3010 from alalek:cmake_eliminate_modules_scope 4 years ago
Alexander Alekhin e8ac023368 cmake: process modules in the same CMake scope 4 years ago
cudawarped 6a18431421
Merge pull request #3001 from cudawarped:fix_cudacodec_wh 4 years ago
cudawarped 2c5a77712b
Merge pull request #2999 from cudawarped:fix_cudacodec_stream 4 years ago
Archit Rungta 1b88234778 Add documentation for Julia binaries - GSoC 4 years ago
Artem Saratovtsev d5317d6297
Merge pull request #2964 from DumDereDum:icp_docs 4 years ago
Alexander Alekhin 8bba3b3d0a Merge pull request #2988 from vrabaud:master 4 years ago
Alexander Alekhin 457740fb90 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Vincent Rabaud bac6ee7f08 Do not use = 0 for a cv::Mat. 4 years ago
Alexander Alekhin 4024870fd9 Merge pull request #2979 from archit120:julia_typepatch 4 years ago
Alexander Alekhin f7b566fc89 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Archit Rungta 2a04f93ed8 julia - Fix type conversion bug 4 years ago
channings 10d1020952
Merge pull request #2972 from Channingss:date_type_fixer 4 years ago
Alexander Alekhin e745fe62ca Merge branch 4.x 4 years ago
Alexander Alekhin 8eec886808 Merge pull request #2967 from paroj:rapid_gos 4 years ago
Pavel Rojtberg f3f20a38e8 rapid: add global optimal search implementation 4 years ago
Alexander Alekhin ed9e79da00 Merge branch 4.x 4 years ago
Alexander Alekhin 029c283362 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 4fc6995375 Merge pull request #2951 from rogday:vtk9_world 4 years ago
Smirnov Egor 567e40c531 vtk 9.0 autoinit fix 4 years ago
Alexander Alekhin b619a06363 Merge pull request #2944 from paroj:ogre_devel 4 years ago
Pavel Rojtberg c7b27f8e77 ovis: allow using OGRE devel 4 years ago
Alexander Alekhin fc0cec623a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Frank Dana 0d74c5016f
Merge pull request #2931 from ferdnyc:wechat-iconv-fix 4 years ago
Junhao Liang ff9b0a10f6
Merge pull request #2929 from SUSTech-OpenCV:bugfix-barcode 4 years ago
DumDereDum 342f8924cc
Merge pull request #2926 from DumDereDum:iss2925 4 years ago
Killer_Quinn e673aa450a
Merge pull request #2757 from Certseeds:Barcode-Support 4 years ago
Alexander Alekhin 201cd5ba34 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 6d146a0702 Merge pull request #2922 from apatsekin:fix-cudafeatures2d-python-bind 4 years ago
Aleksandr Patsekin 69a5fdb8e5 fixing return value of python bindings for cudafeatures2d methods 4 years ago
Alexander Alekhin 70f7ca4541 Merge pull request #2920 from shimat:createRLEImage_const 4 years ago
shimat cf2e899486 [ximgproc::rl::createRLEImage] make runs const 4 years ago
Alexander Alekhin 68492c4b48 Merge branch 4.x 4 years ago
Alexander Alekhin 9163f86a40 Merge pull request #2918 from alalek:fix_whitespace 4 years ago
Alexander Alekhin f7c034c399 fix whitespace 4 years ago
Alexander Alekhin 4a36e77dba Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
DumDereDum da6a95e0db
Merge pull request #2878 from DumDereDum:colored_kinfu 4 years ago
Alexander Alekhin dc3cd0e3c0 Merge pull request #2916 from berak:wechat_qr_fix_iconv_mingw 4 years ago
berak ee5c1847ff wechat_qr: disable iconv dependancy for mingw 4 years ago
Alexander Alekhin a4e601f36d Merge pull request #2914 from pathbreak:dnn-sr-doc 4 years ago
pathbreak 87ce2b7345 dnn_superres: Fix arXiv URL typos in README.md 4 years ago
Alexander Alekhin f5d7f6712d Merge pull request #2906 from SunAriesCN:patch-2 4 years ago
LaurentBerger 5e0ff400fc
Merge pull request #2882 from LaurentBerger:python_viz 4 years ago
Sun Aries 0b5300f74b
consider the rectangle marker in the future. 4 years ago
Alexander Alekhin a75800a3ad Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 1491a5d3ae Merge moved code from opencv/3.4 4 years ago
Rostislav Vasilikhin 1341c05766
Merge pull request #2892 from savuor:posegraph_no_ceres 4 years ago
Alexander Alekhin 38ab933851 Merge pull request #2903 from alalek:cmake_fix_tracking_headers 4 years ago
DumDereDum c287e526f1
Merge pull request #2854 from DumDereDum:rgbd_test_refactoring 4 years ago
Alexander Alekhin a124db8895 Merge pull request #2900 from spirraw:master 4 years ago
Alexander Alekhin 4b20db546b [moved from opencv] cuda: fix inplace condition in cv::cuda::flip 4 years ago
Alexander Alekhin 0042b40c29 cmake: fix tracking detail headers 4 years ago
Alexander Alekhin 4739973b9c Merge pull request #2897 from Chester-zZz:wechat-qrcode 4 years ago
Jan-Kristian Herring 068b6c700e Fix aruco _filterTooCloseCandidates 4 years ago
Alexander Alekhin 7f6004eabb Merge pull request #2896 from paroj:otest 4 years ago
Alexander Alekhin bc49c5a482 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
chester ba281ca104 fix: add a safe score threshold(1E-5) to wechat_qrcode detector 4 years ago
Pavel Rojtberg bf067b4c43 ovis: add software-renderer based unit testing 4 years ago
Alexander Alekhin d882e6c873 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Dimitrios Psychogyios 0165d48da4
Merge pull request #2869 from dimitrisPs:QDS_getDisparity 4 years ago
Alexander Alekhin 974f90f079 Merge pull request #2875 from rgolovanov:master 4 years ago
Alexander Alekhin 8ab00205b3 Merge moved code from opencv/3.4 4 years ago
Tomoaki Teshima fdf80d7fcb [moved from opencv] remove danger race condition 4 years ago
amir.tulegenov 61e0a2de73 [moved from opencv] fix getDefaultName() 4 years ago
Alexander Alekhin 3ea44437ef Merge pull request #2868 from nkwangyh:local 4 years ago
DumDereDum 7ede6585f5
Merge pull request #2734 from DumDereDum:new_HashTSDF_GPU_class 4 years ago
Roman Golovanov 24baeaae27
Fix omnidir::undistortPoints 4 years ago
Yahui Wang d1099dc872 Fix CUDA GoodFeaturesToTrackDetector not threadsafe bug 4 years ago
Alexander Alekhin 4e85f8c6dc Merge pull request #2805 from nglee:dev_gpumatnd1 4 years ago
Alexander Alekhin ca4955d113 Merge pull request #2866 from paroj:ofix 4 years ago
Pavel Rojtberg 5f8f4b5b86 ovis: do not leak camera when !SCENE_SEPARATE 4 years ago
Pavel Rojtberg 1a5e6ed911 ovis: also unregister SceneManager when Window is deleted 4 years ago
dddzg 6c42250763
Merge pull request #2849 from WeChatCV:wechat_qrcode 4 years ago
Alexander Alekhin d98026b17c Merge pull request #2853 from DumDereDum:iss2817 4 years ago
Alexander Alekhin 0f46d02bf0 Merge pull request #2858 from tomoaki0705:fixRgbdSegmentationFault 4 years ago
Alexander Alekhin eaa4f33ddd Merge pull request #2860 from Sintun:master 4 years ago
Stefan Brechtken 483b39684d fixes #2662 4 years ago
Alexander Alekhin c61fbc7a37 Merge pull request #2832 from tsenst:Resolve_Issue_2796_RICInterpolation 4 years ago
Tobias Senst c56f818550 ximgproc(ric): resolve issue 2796 4 years ago
Namgoo Lee c918b08175 Test code - GpuMatND & Mat interoperability 4 years ago
Kévin Andrieux 461b56f602
Merge pull request #2845 from kevineor:DeltaECIEDE2000-fix 4 years ago
batters21 38f46874ae issue 2817 fixed 4 years ago
Tomoaki Teshima efbf1b8f4f fix segmentation fault on Arm 32bit platform 4 years ago
Alexander Alekhin 0def473619 Merge pull request #2831 from tomoaki0705:fixRgbdOpenCL 4 years ago
Alexander Alekhin 06d8b25787 Merge pull request #2851 from paroj:ofix 4 years ago
Pavel Rojtberg 8c385d58f6 ovis: also take down SceneManager when Window is deleted 4 years ago
Alexander Alekhin c10b07de6d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Tomoaki Teshima 241579a116 get rid of kernel build failure 4 years ago
Alexander Alekhin 5e8b651f1e Merge pull request #2839 from DumDereDum:issue_2818 4 years ago
Ubuntu 4e606621e2 valid point issue 2818 fix 4 years ago
Alexander Alekhin 327a1dab32 Merge pull request #2836 from tomoaki0705:fixBuildCudaOptFlow 4 years ago
Tomoaki Teshima 58ab920d04 fix build failure when CUDA >= 10.0 4 years ago
Alexander Alekhin 33ed4c3b05 Merge moved code from opencv/3.4 4 years ago
Tomoaki Teshima 3778fa373a [moved from opencv] fix peaky test failure 4 years ago
Alexander Alekhin 0b8aecd9eb Merge pull request #2824 from tomoaki0705:fixBuildCudaOptFlow 4 years ago
Tomoaki Teshima 6e52be36a5 disable NVIDIA Optical Flow SDK when CUDA < 10.0 4 years ago
Tomoaki Teshima 60bd284b83 [moved from opencv] fix wrong index 4 years ago
LaurentBerger d733a80100
Merge pull request #2819 from LaurentBerger:pyb_qd 4 years ago
Alexander Alekhin ae14c7cee5 Merge pull request #2827 from vpisarev:wechat_qrcode_win_fix 4 years ago
Vadim Pisarevsky 962fd354b5 hopefully fixed compile error on Windows 4 years ago
Vadim Pisarevsky edc5bb71e5
Merge pull request #2806 from vpisarev:kinfu_demo_orbbec 4 years ago
Alexander Alekhin 59a9c88e06 Merge pull request #2803 from amiller27:inrange 4 years ago
Vadim Pisarevsky 905994dc39 Merge pull request #2821 from WeChatCV:wechat_qrcode 4 years ago
dddzg be6718e52f remove useless cv:: 4 years ago
dddzg 9750e14937 use CV_Assert 4 years ago
dddzg 7b872c993d add precomp 4 years ago
dddzg 06f690fc82 remove licenses in samples 4 years ago
dddzg af72ddd320 remove useless license 4 years ago
dddzg 98acd62e7a add wechat qrcode module 4 years ago
Aaron Miller f1c0b5eae6 Implement cv::cuda::inRange (Fixes OpenCV #6295) 4 years ago
Alexander Alekhin ea1081cc4b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 1c957beaad Merge pull request #2807 from vchiluka5:NVIDIA_OPTICAL_FLOW_SDK_2.0_INTEGRATION 4 years ago
Vishal Chiluka 582fe44b7a NVIDIA_OPTICAL_FLOW_2_0_INTEGRATION 4 years ago
Alexander Alekhin 0b6b8ff9dd Merge pull request #2822 from DumDereDum:hash_tsdf_bug_fix 4 years ago
arsaratovtsev 7e992b89f2 replace lower with upper 4 years ago
Alexander Alekhin 768ad92925 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 697d9e2c6c Merge pull request #2804 from MrKepzie:optflow-rlof-crash 4 years ago
MrKepzie 55f5303cf3 rlof optflow: fix crash when no match are found 4 years ago
Atlas42 33ae078b09
Merge pull request #2801 from Atlas42:cuda-hough-stream-fix 4 years ago
Alexander Alekhin 6d5f440402 Merge pull request #2799 from paroj:oshadow 4 years ago
Pavel Rojtberg 234bf196f0 ovis: implement real-time shadows 4 years ago
Alexander Alekhin b91a781cbc Merge pull request #2795 from cudawarped:fix_nvidia_video_codec_11_0 4 years ago
Alexander Alekhin 913b446f29 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin ccdaf9d22c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 5d5be79b61 Merge pull request #2769 from ZEISS:feature/aruco_js 4 years ago
Alexander Alekhin 24be5b85a5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin dda1f3d7ab Merge pull request #2772 from fixstars:add_cudastereo_semi_global_matching_implementation 4 years ago
Iago Suárez bc1ea8f891
Merge pull request #2774 from iago-suarez:master 4 years ago
Alexander Alekhin d0a5ecfdda Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Kumataro 9b5a801148
Merge pull request #2776 from Kumataro:master_freetype2_doc 4 years ago
cudawarped 5f99ff97b9 Update cudacodec to work with Nvidia Video Codec SDK 11.0 4 years ago
Alexander Alekhin 9d32f0c83b Merge pull request #2775 from alalek:4.x_build_warnings_gcc_4.8.5 4 years ago
Alexander Alekhin ec294f62ce build warnings 4 years ago
Vadim Pisarevsky 5af8624f5e Merge pull request #2767 from vpisarev:3d_light 4 years ago
Vadim Pisarevsky 18f0bd2fa1 calib3d module in opencv is split into 3 modules: 3d, calib and stereo. 4 years ago
Steffen Urban 166e302a17 add js to aruco module 4 years ago
Alexander Alekhin b4459e1f06 Merge remote-tracking branch 'upstream/master' into merge-4.x 4 years ago
Shingo Otsuka 7883ec8b98 Add CUDA Stereo Semi Global Matching 4 years ago
Alexander Alekhin 960714d467
Merge pull request #2764 from alalek:4.x-xcode12 4 years ago
Alexander Alekhin 89e856b3fa build: xcode 12 support 4 years ago
Alexander Alekhin 4df89a863b Merge pull request #2762 from chargerKong:vizdoc 4 years ago
Akash Sharma f63965759d
Merge pull request #2751 from akashsharma02:master 4 years ago
Kong Liangqian f10d54be85 fix tutorials foc:Do not display pictures by default 4 years ago
riskiest 478cc124f5
Merge pull request #2671 from riskiest:color-calibration 4 years ago
Alexander Alekhin d3ade27b02 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
crownedone 672ba702cd
Merge pull request #2713 from crownedone:tbmr_features 4 years ago
Alexander Alekhin e9bad9fc40
Merge pull request #2753 from alalek:video_tracking_api 4 years ago
Alexander Alekhin a51b1b1e94 tracking: move Tracking API to the main repository 4 years ago
Alexander Alekhin aaf8ba28e2 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin f1c3d0e5e7 Merge pull request #2737 from alalek:tracking_api 4 years ago
Alexander Alekhin 80c197590c tracking: rework tracking API 4 years ago
Alexander Alekhin 2cb3f65131 tracking: move/copy files before modification 4 years ago
Alexander Alekhin ae4d5d3d0c Merge pull request #2748 from alalek:text_drop_ambiguous_api 4 years ago
Alexander Alekhin 52f5f056cc text: drop ambiguous call, fix bindings 4 years ago
sunitanyk ddafc73c53
Merge pull request #2729 from sunitanyk:master 4 years ago
Alexander Alekhin eacfc43751 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 0cf208593f Merge pull request #2741 from alalek:imgproc_drop_lsd 4 years ago
Alexander Alekhin 29eb2efa7f line_descriptor: removed LineSegmentDetector 4 years ago
EricFlorin ad756614be
Merge pull request #2610 from EricFlorin:VizWindowNamePrepend_Contrib 4 years ago
Alexander Alekhin a35c1e3273 Merge pull request #2732 from alalek:support_ceres_2.0.0 4 years ago
Alexander Alekhin c5390b22fc Merge remote-tracking branch 'upstream/3.4' into merge-3.4 4 years ago
Alexander Alekhin 23ee62a19b cmake: support Ceres 2.0.0 4 years ago
Alexander Alekhin b65b3cc373 Merge pull request #2730 from GArik:rgbd 4 years ago
Igor Murzov 65ca496a99 Fix build failure in rgbd's test 4 years ago
Alexander Alekhin c53cdfd2d9 Merge pull request #2728 from alalek:fix_uninitialized_var 4 years ago
Alexander Alekhin 21591028fb optflow(rlof): fix uninitialized variable 4 years ago
Alexander Alekhin a960877c0d Merge moved code from opencv/3.4 4 years ago
DumDereDum 10bfd2dc51
Merge pull request #2725 from DumDereDum:integrateVolumeUnit_fix 4 years ago
TT d8197c6ad6
Merge pull request #2716 from tsukada-cs:feature/fld-is_edge-option 4 years ago
Rob Timpe 5b640a53f1 [moved from opencv] Fix errors when building with cuda stubs 4 years ago
DumDereDum 9b328cf6b9
Merge pull request #2722 from DumDereDum:tsdf_integrate_replacement 4 years ago
DumDereDum 0b5ded4637
Merge pull request #2698 from DumDereDum:new_HashTSDF_implementation 4 years ago
Akash Sharma 7022f4e3e0
Merge pull request #2619 from akashsharma02:submap 4 years ago
Alexander Alekhin ef0c722f56 Merge pull request #2690 from pauljurczak:patch-2 4 years ago
Alexander Alekhin 37315babf9 Merge pull request #2664 from archit120:julia_calib3d 4 years ago
Vadim Pisarevsky 6f820455ac * catch exception when processing new variants of point cloud registration functions with UsacParams parameter; just skip this overloaded variant 4 years ago
Alexander Alekhin 68d5d32c41 Merge pull request #2696 from DumDereDum:fix_iss2691 4 years ago
arsaratovtsev fc0fdbee9f bug fix 4 years ago
Alexander Alekhin 00fad37aab Merge pull request #2694 from paroj:ovisup 4 years ago
Pavel Rojtberg 1222d63e93 ovis: update camera drawing to new Ogre API 5 years ago
Paul Jurczak 9126355c0d
Fixed a typo 5 years ago
DumDereDum 3ceb414a86
Merge pull request #2678 from DumDereDum:gpu_tsdf_pixNorm 5 years ago
Alexander Alekhin d643991af5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin b0a73f6d54 Merge moved code from opencv/3.4 5 years ago
Alexander Alekhin c7eb9e6038 Merge pull request #2684 from Kumataro:fix_contrib_issue_#2648 5 years ago
Alexander Alekhin 47c711a791 Merge pull request #2685 from cyyever:fix_bugs 5 years ago
cyy 0dc22f5cc5 add throw 5 years ago
Kumataro 0a229756b9 freetype2: Fix 'A function call in freetype.cpp causes overflow' 5 years ago
Tomoaki Teshima 46dba0f855 [moved from opencv] brush up by following the comments 5 years ago
Alexander Alekhin 74d0117176 Merge pull request #2679 from malfet:dynafu-win-opengl-fix 5 years ago
Nikita Shulga 790a9515e8 [rgbd/dynafu] Fix Windows compilation 5 years ago
Alexander Alekhin 5e9f48d384 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 961358faf8 Merge moved code from opencv/3.4 5 years ago
DumDereDum b267fc3d1d
Merge pull request #2629 from DumDereDum:tsdf_optimization 5 years ago
Tomoaki Teshima 2ae9011019 [moved from opencv] use only even number for inplace flip 5 years ago
dtmoodie 9ccd8eeecd
Merge pull request #2666 from dtmoodie:fix_cudev 5 years ago
Archit Rungta df3d848a35 Add calib3d to julia bindings 5 years ago
Alexander Alekhin e320d6aad0 Merge pull request #2660 from dtrodrigues:pr-template-license 5 years ago
Alexander Alekhin 86d07a58f2 Merge pull request #2659 from dtrodrigues:vtk-9 5 years ago
Dustin Rodrigues 869b12f3b5 update PR template to match license 5 years ago
Dustin Rodrigues aace65cc12 vtkCocoaInteractorFix.mm: explicity include vtkVersion.h 5 years ago
Alexander Alekhin be6aa0f660 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin e502f3053d Merge pull request #2651 from paroj:ovis_tex 5 years ago
Pavel Rojtberg 2e5a8d9ed0 ovis: streamline updating texture contents 5 years ago
Alexander Alekhin a025410a19 Merge pull request #2650 from paroj:reshader 5 years ago
Pavel Rojtberg 50ffa18e0d ovis: correctly handle material property updates at runtime 5 years ago
Alexander Alekhin 3013fa7dc9 Merge moved code from opencv/3.4 5 years ago
Alexander Alekhin aca03b789e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Namgoo Lee c7e8b709a2 [moved from opencv] Remove compiler warnings 5 years ago
Namgoo Lee 77a4585163 [moved from opencv] bit-exact cuda::equalizeHist 5 years ago
DumDereDum 80cdf41e3a
Merge pull request #2606 from DumDereDum:tsdf_fix_and_test 5 years ago
Vadim Pisarevsky 1d6480ae2c
Merge pull request #2628 from vpisarev:apache2_license 5 years ago
Alexander Alekhin da96ea9161 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 9d132e8778 Merge pull request #2625 from paroj:ovisdoc 5 years ago
Alexander Alekhin 7d6810b512 Merge pull request #2631 from archit120:julia_tutorial 5 years ago
Archit Rungta 091f97987a
Merge pull request #2622 from archit120:julia_phase3 5 years ago
Archit Rungta 8ecee96520 Add Julia Binding Tutorial 5 years ago
Alexander Alekhin ade39fed52 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 1a8fb37bb6 Merge moved code from opencv/3.4 5 years ago
Pavel Rojtberg c600d14720 ovis: add brief usage documentation 5 years ago
Alexander Alekhin 11c9439f1b
Merge pull request #2624 from opencv:garybradski-patch-1 5 years ago
Gary Bradski 9fa149acc0
Update README.md 5 years ago
Alexander Alekhin 23571409e7 Merge pull request #2609 from komakai:objc-contrib-wrappers 5 years ago
Ajit Pant 2554f41c47
Merge pull request #2532 from AjitPant:mcc 5 years ago
Namgoo Lee b364cfed1d [moved from opencv] test code 5 years ago
Maksim Shabunin c63778cc52 Merge pull request #2613 from marychrisgo:edit-readme 5 years ago
Alexander Alekhin 4642726123 Merge moved code from opencv/3.4 5 years ago
Tomoaki Teshima ccc5f3293a [moved from opencv] let the test pass on Jetson 5 years ago
Maksim Shabunin bdc01011b0 Merge pull request #2612 from nglee:dev_cudaFlipInplace 5 years ago
Mary Chris Go 4c3121230c Edit grammar, punctuation in readme 5 years ago
Namgoo Lee 3ba40a5316 Port opencv/#17863 5 years ago
Giles Payne 5174b0f39b Add Objective-C/Swift wrappers for opencv_contrib modules 5 years ago
Alexander Alekhin 5fae4082cc Merge pull request #2601 from MaKaNu:patch-1 5 years ago
Alexander Alekhin 44ceaa9ee2 Merge pull request #2603 from idscan:issue-2590-hide-tinyxml-in-cv-workspace 5 years ago
John Forrest cb681cd4db Update tinyxml2 to be under cv namespace 5 years ago
Alexander Alekhin edefe420cf Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
MaKaNu 500832dd72
Update README.md 5 years ago
Xavier Weber 5588ead693
Merge pull request #2599 from Saafke:dnn_superres_CUDA_support 5 years ago
Alexander Alekhin 6d801fca93 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin c6a17133c6 Merge pull request #2582 from archit120:julia-phase2-ver2 5 years ago
Akash Sharma 468345511f
Merge pull request #2566 from akashsharma02:master 5 years ago
Alexander Alekhin 52200a82e7 Merge pull request #2572 from paroj:rapid_ols 5 years ago
Alexander Alekhin db22cc3469 Merge pull request #2583 from alalek:cmake_cuda_cxx_flag 5 years ago
Alexander Alekhin 77fbea49e0 cmake(cuda): update handling of -std=c++11/14 flags 5 years ago
Archit Rungta 12e68c4843 copy => copy_if_different 5 years ago
Archit Rungta ff581614c8 add julia phase2 files 5 years ago
Alexander Alekhin 0c99a85a98 Merge pull request #2577 from paroj:ovis_tex 5 years ago
Pavel Rojtberg f2f4116916 ovis: setBackground - drop superficial pixel-center correction 5 years ago
Pavel Rojtberg 9e26865b5b ovis: fix loading textures from non-consecutive memory 5 years ago
Pavel Rojtberg aaaf37ed70 rapid: add "Optimal Local Search" implementation 5 years ago
Pavel Rojtberg 00fe2ed971 rapid: make correspondencies explicit for simpler data handling 5 years ago
Alexander Alekhin 0f56e6d8db Merge moved code from opencv/3.4 5 years ago
Tomoaki Teshima 3b597b9e2f [moved from opencv] fix build error on Jetson TX1 and TX2 5 years ago
Alexander Alekhin 58f9a9e4da [moved from opencv] cudacodec(build): fix detection in CMake, cleanup duplicate includes 5 years ago
archit120 522a062cad
Merge pull request #2547 from archit120:julia-phase1 5 years ago
Namgoo Lee 6ca24c818f [moved from opencv] cuda optflow tvl1 : async safety 5 years ago
Namgoo Lee 6ab1160dfc [moved from opencv] CUDA_OptFlow/OpticalFlowDual_TVL1 Asynchronous test 5 years ago
Tomoaki Teshima bab3d66c71 [moved from opencv] fix corner case of libnvcuvid 5 years ago
nosajthenitram 39ced2af67
Merge pull request #2554 from nosajthenitram:2048_cuda_cascade_no_longer_available 5 years ago
Maksim Shabunin 169ec66af1
Merge pull request #2549 from mshabunin:support-vtk9 5 years ago
Alexander Alekhin 7d64747a1b Merge pull request #2558 from paroj:ovis_share_bg 5 years ago
Pavel Rojtberg d3b80e7fdc ovis: fix destruction of SCENE_OFFSCREEN windows 5 years ago
Pavel Rojtberg e7bab1d21a ovis: ensure that bgplane is shared too when ~SCENE_SEPARATE 5 years ago
Alexander Alekhin 8fc6067b59 Merge pull request #2543 from vchiluka5:NVOF-Build-Error-Fix 5 years ago
Vishal Chiluka 2e6e9e9ece NVOF - Passing non null streams to create API 5 years ago
Alexander Alekhin a712bf79dd Merge pull request #2541 from vchiluka5:NVOF-Build-Error-Fix 5 years ago
Vishal Chiluka 3fd77d7e00 NVOF Build Error Fix 5 years ago
Alexander Alekhin 07191c92c8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin eec6ba7cfe Merge moved code from opencv/3.4 5 years ago
Daniel Mallia 17639965b3 [moved from opencv] Add next and previous navigation links to all tutorials 5 years ago
Alexander Alekhin 1311b05747 Merge pull request #2536 from vchiluka5:NVOF_Bug_Fixes 5 years ago
unknown c49d0b9064 Modified Stream support functionality. 5 years ago
Alexander Alekhin dfb6d9bf71 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin dbda4d2a68 Merge moved code from opencv/3.4 5 years ago
Daniel Mallia e438855470 [moved from opencv] Update tutorials tables of content for several modules 5 years ago
Alexander Alekhin b098b0563b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin d9e7b7f638 Merge moved code from opencv/3.4 5 years ago
Alexander Alekhin edada8c7da Merge pull request #2520 from catree:feat_BIMEF_doc_warning 5 years ago
catree 01d7105b7f Add documentation warning about BIMEF implementation: it does not provide same results compared to the original MATLAB code with some degraded results for bright areas. 5 years ago
QIU Xiaochen 1b7a06c463 [moved from opencv] Merge pull request opencv/opencv#17180 from PetWorm:3.4 5 years ago
Alexander Alekhin 49dde62300 Merge moved code from opencv/3.4 5 years ago
Paul Jurczak 79041db1fa [moved from opencv] Added to Camera constructor parameter description 5 years ago
Alexander Alekhin 69c8689338 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 10d42eeca3 Merge pull request #2503 from ogreen:median-reference 5 years ago
Alexander Alekhin 6d85574870 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 811f363d35 Merge pull request #2448 from catree:feat_BIMEF 5 years ago
catree a59932b52c Add BIMEF: A Bio-Inspired Multi-Exposure Fusion Framework for Low-light Image Enhancement. 5 years ago
Devansh Batra aba93d5fd5
Merge pull request #2464 from devanshbatra04:master 5 years ago
Oded Green 1d8b6423f4 Added references to GPU median filtering algorithm 5 years ago
Alexander Alekhin 2a293da61b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 1a0a7328d5 Merge moved code from opencv/3.4 5 years ago
Paul Jurczak 4143c3ef27 [moved from opencv] Added to description of WCube constructor 5 years ago
Tomoaki Teshima 90647fdd69 [moved from opencv] fix test failure on Jetson TX2 5 years ago
Alexander Alekhin 5deaa00595 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 264d43b8a3 Merge moved code from opencv/3.4 5 years ago
Tomoaki Teshima 5237387bb3 [moved from opencv] fix test failure on Jetson TX1/TX2/Nano 5 years ago
Alexander Alekhin bcfbc4fa58 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
shimat bebfd71748
Merge pull request #2491 from shimat:sauvola_r 5 years ago
Alexander Alekhin e6f32c6a69 Merge pull request #2487 from paroj:rapidup 5 years ago
Pavel Rojtberg 367d7beb06 rapid: add marker tracker sample 5 years ago
Pavel Rojtberg 9ca6b9b20c rapid: fix wrapping around at end of 2D contour 5 years ago
Tobias Senst 4b63202293
Merge pull request #2476 from tsenst:optimize_performance_rlof 5 years ago
Xavier Weber 8ab145c4bb
Merge pull request #2480 from Saafke:dnn_superres_pythonwrap 5 years ago
Alexander Alekhin 96b38d4a2f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 03730e1e67 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 79b71ec95d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
sunitanyk 88c4ed01fc
Computer Vision based Alpha Matting (#2306) 5 years ago
Alexander Alekhin bf0075a560 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Ayush Garg d442856fd6
Merge pull request #2447 from ayushgargdroid:kinfuParams 5 years ago
Alexander Alekhin 80deee6451 Merge pull request #2461 from asmorkalov:as/issue_template_update 5 years ago
Alexander Smorkalov 2d21d9c6d7 Synchronized issue template with main repository. 5 years ago
Alexander Alekhin 4ab7f82e9a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 93a79a6fa9 Merge pull request #2454 from paroj:ovisup 5 years ago
Pavel Rojtberg 788b783631 ovis: allow setting material at sub-entity granularity 5 years ago
Alexander Alekhin 1d77931b30 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 698f805ce7 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 96742da661 Merge pull request #2441 from asmorkalov:pr_template 5 years ago
Alexander Smorkalov 460f2306f4 Synchronized PR template with core reposiotry. 5 years ago
Igor Murzov a0d9138a5d
Merge pull request #2424 from GArik:master 5 years ago
Alexander Alekhin bdfd1e75d4 Merge pull request #2416 from alalek:fix_build_gcc48 5 years ago
Alexander Alekhin 12d1f6c4df Merge pull request #2421 from vchiluka5:nvof-bug-fix 5 years ago
Vishal Chiluka abcd448094 NVOF-Cuda Bug Fix. Should not reset runtime context 5 years ago
Alexander Alekhin d8c6d067b3 build: fix build with GCC 4.8 5 years ago
Alexander Alekhin e8916dae98 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 2dcd366c75 Merge pull request #2399 from elim-dk:algorithm/intensity-transformations 5 years ago
cudawarped d7d6360fce
Merge pull request #2396 from cudawarped:fix_python_cudawarping_cudaarithm 5 years ago
Alexander Alekhin 223a3cdab8 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Lim 9aa74df09e new module: intensity_transform (includes gamma correction, log transfomration, autoscaling, contrast stretching) 5 years ago
Rostislav Vasilikhin c8b405eb7f Merge pull request #2410 from savuor:fix/kinfu_fetch_checkzero 5 years ago
Alexander Alekhin 9c3e86b7ae Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 648db235cd Merge pull request #2397 from catree:fix_dnn_superres_build_without_quality 5 years ago
catree 94d0250b1b Fix build of dnn_superres module without the quality module. 5 years ago
Alexander Alekhin 58295b0768 Merge pull request #2356 from paroj:rapid 5 years ago
Alexander Alekhin 65abc7090d Merge moved code from opencv/3.4 5 years ago
jeffeDurand 12ffd7f0cf [moved from opencv] Merge pull request opencv/opencv#16090 from jeffeDurand:cuda_mog2_issue_5296 5 years ago
Alexander Alekhin f9bbe706d2 Merge pull request #2383 from catree:feat_LOGOS_matching 5 years ago
catree a9c1cfcb5d Add LOGOS (Local geometric support for high-outlier spatial verification) features matching strategy. 5 years ago
Alexander Alekhin 8a7a625a3c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 11638ada84 Merge pull request #2389 from cudawarped:fix_python_cudaarithm 5 years ago
cudawarped 454434bdff Cudaarithm python bindings for merge and split are inconsistent with the format of existing cuda python functions. Split does not return its output and merg's documentation is incorrect. 5 years ago
Alexander Alekhin d486e4150b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 18f1c02358 Merge moved code from opencv/3.4 5 years ago
Alexander Alekhin aaf67d6f61 [moved from opencv] Merge pull request opencv/opencv#16150 from alalek:cmake_avoid_deprecated_link_private 5 years ago
Alexander Alekhin b11fb78146 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Pavel Rojtberg d3d5f2adc1 add rapid module for silhouette based 3D object tracking 5 years ago
Tobias Senst 40b238b01d Merge pull request #2367 from tsenst:add_robust_interpolation_of_correspondence 5 years ago
Alexander Alekhin cacec38ec1 Merge pull request #2380 from cudawarped:patch_cudacodec_memory_leak 5 years ago
Alexander Alekhin 83ad5c6383 Merge pull request #2378 from bansan85:master 5 years ago
cudawarped 7cb627a372 Patch cv::cudacodec::createVideoReader() memory leak until cudacodec can be updated to miirror NVidia example code. 5 years ago
LE GARREC Vincent 9bc0d8d0b4
Fix compilation with +cuda -optflow 5 years ago
Alexander Alekhin 7011e1b1cb Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin d0d86695f8 Merge pull request #2369 from bwignall:typo 5 years ago
Alexander Alekhin dc1934410a Merge pull request #2372 from szk1509:invMarkerCorner 5 years ago
cudawarped 7cbe83f217 Merge pull request #2362 from cudawarped:fix_cudacodec_python 5 years ago
Lizeth Huertas 13f7637585 shift corner positions to the correct rotation 5 years ago
Brian Wignall 8c09249352 Fix typos 5 years ago
Alexander Alekhin 763a451654 Merge pull request #2365 from malfet:dont-use-VLA 5 years ago
Alexander Alekhin 3ae0e1256c Merge pull request #2364 from paroj:ovisup 5 years ago
Nikita Shulga 42e049278b Do not use VLA in dynafu.cpp 5 years ago
Pavel Rojtberg 8f2b705d0e ovis: implement setting diffuse color 5 years ago
Pavel Rojtberg 8a8d609afa ovis: drop several workarounds for old OGRE versions 5 years ago
Alexander Alekhin c9514b8049 Merge pull request #2358 from paroj:ovisup 5 years ago
Alexander Alekhin 6a9555886e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Pavel Rojtberg 647e79cfcc ovis: addResourceLocation - assert pre-condition 5 years ago
Pavel Rojtberg 3604786e6b ovis: add support for off-screen windows 5 years ago
Alexander Alekhin dff1422532 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
cudawarped 53b9880f8e Merge pull request #2180 from cudawarped:example_fix_for_cudacodec 5 years ago
Alexander Alekhin 35972a1ec4 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 64961f3794 Merge pull request #2332 from si40wiga:fsr-tutorial 5 years ago
Alexander Alekhin 863d6ad391 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
anna 35de0aa7ca add short tutorial 5 years ago
Alexander Alekhin fa50918ea3 Merge moved code from opencv/3.4 5 years ago
Gagandeep Singh 61cbb44539 Merge pull request #2336 from czgdp1807:issue-2333 5 years ago
Alexander Alekhin 3146e4a46d Merge pull request #2335 from paroj:ovisup 5 years ago
Pavel Rojtberg 29d8e6854f ovis: add createTriangleMesh method 5 years ago
czgdp1807 7a0ddd820a [moved from opencv] removed typo 5 years ago
Alexander Alekhin abfcde006f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 2d0c8a4f85 Merge moved code from opencv/3.4 5 years ago
si40wiga e67653eafc Merge pull request #2296 from si40wiga:fsr-inpaint 5 years ago
Gael Colas 277c4be95a [moved from opencv] Merge pull request opencv/opencv#15821 from ColasGael:colasg-viz-color 5 years ago
Alexander Alekhin 7d7312a99a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin 3e9ebc4b01 Merge pull request #2310 from paroj:ovisup 5 years ago
Pavel Rojtberg e639c8ef9a ovis: correctly destroy additional windows 5 years ago
Pavel Rojtberg 20dbe789ad ovis: add PF_DEPTH32F read-back support 5 years ago
Alexander Alekhin ceb68526ff Merge remote-tracking branch 'upstream/3.4' into merge-3.4 5 years ago
Alexander Alekhin f6a6e1fd67 Merge moved code from opencv/3.4 5 years ago
Josh Chien 78e3879ca0 Merge pull request #2302 from dogod621:master 5 years ago
Apoorv Goel 8b59dffc61 Merge pull request #2161 from UnderscoreAsterisk:dynafu 5 years ago
Alexander Alekhin 6a0e9fdd2e Merge pull request #2295 from sturkmen72:patch-4 5 years ago
Adam Rankin 1741141deb [moved from opencv] COMP: Enabling build with recent VTK version 5 years ago
Suleyman TURKMEN bf7bf33aa5
Update .travis.yml 5 years ago
Alexander Alekhin 82f3da5ef1 Merge pull request #2292 from huangqinjin:master 5 years ago
huangqinjin db647875f2 require OGRE 1.11+ for ovis 5 years ago
Alexander Alekhin 83e98d2424 Merge moved code from opencv/3.4 6 years ago
Alexander Alekhin 5cfdefbf40 Merge pull request #2284 from tolysz:patch-2 6 years ago
Alexander Alekhin a56d282f48 Merge pull request #2283 from tolysz:patch-1 6 years ago
Alexander Alekhin 92729b3c9e [moved from opencv] build: eliminate CUDA warnings 6 years ago
Marcin Tolysz ac627d2270
[cudalegacy] Fix warnings about tautologies 6 years ago
Marcin Tolysz a9639b2ba5
Fix compilation warnings about type-punned pointer 6 years ago
Alexander Alekhin a8c7a56b89 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Xavier Weber 4c1fb00829 Merge pull request #2231 from Saafke:dnn_superres_final_phase 6 years ago
Fanny Monori dda33bf36f Merge pull request #2229 from fannymonori:gsoc_dnn_superres 6 years ago
Alexander Alekhin 26129cfe69 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Josh Chien 5faa3ec873 Merge pull request #2250 from dogod621:master 6 years ago
Alexander Alekhin 4067fe8138 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 8ae597d031 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 934ce3b0a5 Merge pull request #2251 from clunietp:quality_issue_2226 6 years ago
Alexander Alekhin b72dc5e6ec Merge moved code from opencv 6 years ago
clunietp ea84c59b90 clamped BRISQUE output to 0-100 6 years ago
Maksim Shabunin 589e8b5c3a [moved from opencv] Assorted documentation fixes 6 years ago
Alexander Alekhin 1c60ce3088 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin fd004893cb Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin b56b3739c8 Merge pull request #2224 from Nuzhny007:master 6 years ago
Alexander Alekhin 54e75b4a46 Merge pull request #2215 from vchiluka5:lazy_load_nvcuda_dll 6 years ago
Nuzhny007 8f7e58ab31 Fixed bug in BTVL1 superres with UMat without OpenCL initialization 6 years ago
Alexander Alekhin 8532e65182 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 90780db92a Merge moved code from opencv 6 years ago
Vishal Bhaskar Chiluka c494a5db92 Lazy loading nvcuda.dll 6 years ago
Alexander Alekhin dccdaae27f Merge pull request #2199 from wugulabs:extend_interface_ORB 6 years ago
Tomoaki Teshima a7417334ba [moved from opencv] suppress noisy warning 6 years ago
Alexander Alekhin 3ad82f9d42 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 821b7fb67a Merge pull request #2206 from PaulDebus:sfm_importReconstruction 6 years ago
Paul Debus 2b8870deb5 Fix broken pyhton binding for sfm importReconstruction 6 years ago
Geert Willems a197133dd1 add get/set for FastThreshold 6 years ago
Alexander Alekhin 0915b7eadd Merge moved code from opencv 6 years ago
Tomoaki Teshima 1a162b1ba0 [moved from opencv] cudalegacy: fix test failure of SolvePnPRansac 6 years ago
Alexander Alekhin fde4b151c2 Merge pull request #2188 from LeonidBeynenson:lb/fix_copyrights_tracking_by_matching 6 years ago
Leonid Beynenson 4b6e4ef663 Fix copyrights in tracking_by_matching files 6 years ago
Alexander Alekhin 6886937e87 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 653bef233d Merge pull request #2165 from vchiluka5:NVIDIA_Optical_Flow 6 years ago
Vishal Chiluka 5e0783e1e9 NVIDIA Optical Flow Integration in OpenCV 6 years ago
Leonid Beynenson 0a2179b328 Merge pull request #2182 from LeonidBeynenson:lb/tracking_by_matching 6 years ago
Alexander Alekhin 1b636e7291 Merge pull request #2171 from AlexJ95:ovis-add-entity-LookAt 6 years ago
aj28faty 51b16a8fc5 Added a LookAt-method for entities and also a method to get the pose of an entity. 6 years ago
Alexander Alekhin 297e8be9fc Merge pull request #2175 from dnandha:ovis-fix-anim-multi 6 years ago
dnandha 173b7f51ea ovis: fix play / stop animation for multiple entities 6 years ago
Alexander Alekhin 3830f18680 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin f0d30f2ccb Merge pull request #2160 from dnandha:ovis-add-animation 6 years ago
dnandha 6810e6c894 ovis: add methods (+ sample) for setting entity animations 6 years ago
Alexander Alekhin 8acc8aaf1d Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 5b434d3c8b Merge pull request #2158 from paroj:ovisex_fix 6 years ago
Pavel Rojtberg adeae9972d ovis: fix build of cpp example, which depends on aruco 6 years ago
Alexander Alekhin 6cfc14e56b
Merge pull request #2150 from dnandha:ovis-add-samples-cpp 6 years ago
dnandha a05d30e419 ovis: add cpp samples 6 years ago
Alexander Alekhin 04b2f2c599 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin afad10293e Merge pull request #2146 from cudawarped:update_codecs_nvcuvid 6 years ago
James Bowley 66aba496f1 Add missing codecs to cudacodec which uses Nvidia Video Codec SDK including checks to ensure codec used in input video file is supported on the current device. 6 years ago
Alexander Alekhin 74ea5decff Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 4bce9ac145 Merge moved code from opencv 6 years ago
Alexander Alekhin 3644a1d994 Merge pull request #2141 from paroj:lambda 6 years ago
Pavel Rojtberg b2f082775e aruco: simplify code by using lambdas 6 years ago
Alexander Alekhin 250bcd9f91 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Rostislav Vasilikhin a1d873092f Merge pull request #2133 from savuor:kinfu_truncate 6 years ago
Ahmed Ashour 55f389e8fa [moved from opencv] java: generated code to have javadoc 6 years ago
Alexander Alekhin b6e2867525 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 2465def84f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
clunietp 24cd5e21a1 Merge pull request #2113 from clunietp:quality-refactor 6 years ago
Rostislav Vasilikhin 5eaa25c950 Merge pull request #2106 from savuor:kinfu_fix_ocl 6 years ago
Alexander Alekhin 8049208c8f Merge pull request #2109 from alalek:fix_cuda_build 6 years ago
Alexander Alekhin aa04285d13 videostab: fix CUDA build 6 years ago
Alexander Alekhin 996c6e7a63 Merge pull request #2052 from SBCV:feature_mask 6 years ago
Alexander Alekhin 64eba174dd Merge pull request #2096 from alalek:shape_remove_duplicate_python_test 6 years ago
sebastian ff0167b981 Added an option to mask features used for videostabilization 6 years ago
Alexander Alekhin fd10a4626c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 44087be025
Merge pull request #1987 from catree:improve_solvePnP 6 years ago
Tobias Senst 7ac648c2bd Merge pull request #2097 from tsenst:robust_optical_flow_fix 6 years ago
Alexander Alekhin 644f4289e5 Merge pull request #2095 from alalek:rlof_fix_check 6 years ago
Alexander Alekhin 3761c56542 shape: remove duplicate python test 6 years ago
Alexander Alekhin 8fce7e9fa7 optflow: fix RLOF SR_CROSS check 6 years ago
Alexander Alekhin eb7c61fa18 Merge pull request #2091 from berak:optflow_sparse_rlof_gray 6 years ago
berak 5bf98275f4 optflow: add a check for 3 channel images for sparse RLOF 6 years ago
Alexander Alekhin eda4575e4f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 01cfda40eb Merge pull request #2079 from paroj:ovisres 6 years ago
Pavel Rojtberg 310ca2b4a3 ovis: addResourceLocation - only retain unique locations 6 years ago
Alexander Alekhin 2c32791a9c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin c8ed08d0a2 Merge pull request #2058 from shimat:fix_superres_typo 6 years ago
shimat 9a5f442dd4 fix SuperResolution::getLabmda/setlabmda typo 6 years ago
JoeHowse b7e785233c Merge pull request #2046 from JoeHowse/master 6 years ago
Alexander Alekhin f2618a4ed4
Merge pull request #2033 from cv3d:python/surface_matching 6 years ago
Alexander Alekhin fd2ca91943 Merge pull request #2015 from krshrimali:krshrimali-patch-brisque 6 years ago
clunietp ebad13e0ba Updated to use OpenCV ML, removed libsvm. Updated model, tests and documentation. Provided cpp samples for model training and evaluation. 6 years ago
kushashwa ravi shrimali 4c2f5135dd BRISQUE commit 6 years ago
clunietp 476167ed81 BRISQUE initial commit 6 years ago
Alexander Alekhin 7753b5930e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin f0e70cbfd5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin f9a8f0edbe Merge moved code from opencv 6 years ago
Richard Veale 02645345c3 [moved from opencv] Merge pull request opencv/opencv#13695 from flyingfalling:3.4 6 years ago
Namgoo Lee 90d1627194 [moved from opencv] Move Ptr-related code from lut.cu to lut.cpp 6 years ago
Hamdi Sahloul e5763fae4b A pythonic interface for surface_matching module 6 years ago
Alexander Alekhin 75fcfa6093 Merge pull request #2028 from tomoaki0705:fixCudaImgProcFailure 6 years ago
Tomoaki Teshima a6b3254db9 fix test failure of CUDA_ImgProc 6 years ago
Alexander Alekhin 6f5d9835ba Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin debdc26b86 Merge moved code from opencv 6 years ago
Namgoo Lee 02b3d77b7b [moved from opencv] CUDA 10.1 Build Issue Fix 6 years ago
Alexander Alekhin 33f18dd60b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin f65010eadc Merge moved code from opencv 6 years ago
Namgoo Lee cade19501f [moved from opencv] cudev - Rework some code 6 years ago
Alexander Alekhin ca7cb77a7b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 7e569cec58 Merge moved code from opencv 6 years ago
Namgoo Lee 71f588bd8e [moved from opencv] cuda::StereoBM - fix hanging and racing issue 6 years ago
clunietp 796853e057 Merge pull request #1990 from clunietp:quality-2 6 years ago
Namgoo Lee 04041fd7ea [moved from opencv] cudalegacy: Use safe block scan function 6 years ago
Alexander Alekhin 301aa7e908 Merge moved code from opencv 6 years ago
Namgoo Lee fa3603a57c [moved from opencv] Add CV_16UC1 support for cuda::CLAHE 6 years ago
catree 650bf4308f Update code to take into account solvePnP and solvePnPRansac use InputOutputArray for rvec and tvec parameters. 6 years ago
Alexander Alekhin d6895a1b25 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 158af2f7c4 Merge pull request #1980 from mshabunin:clang-warnings 6 years ago
Alexander Alekhin cf4ad7a1f0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Maksim Shabunin 83fc27cb99 Fixed warnings produced by clang-9.0.0 6 years ago
Alexander Alekhin a17185c6dc Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Namgoo Lee 18439b4150 [moved from opencv] __shfl_up_sync with mask for CUDA >= 9 6 years ago
Namgoo Lee 1c6b74d791 [moved from opencv] Fix Farneback Optical Flow Algorithm 6 years ago
Alexander Alekhin ab2e83248f Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
tsenst 1c9e23745c Merge pull request #1940 from tsenst:add_robust_optical_flow_implementation 6 years ago
Dimitrios Psychogyios b1e9dd5454 Merge pull request #1941 from surgical-vision:quasi-dense-stereo 6 years ago
Alexander Alekhin 2522124473 Merge pull request #1946 from LinkeyLeo:master 6 years ago
LinkeyLeo fe7301eadb
add cuda 10 support for opencv_nvcuvid 6 years ago
Alexander Alekhin fd34389abf Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 74455ea4bd Merge pull request #1936 from paroj:lmfeats 6 years ago
Alexander Alekhin 2cb8399776 Merge pull request #1937 from indianocean10000:patch-1 6 years ago
indianocean10000 1c65e6366d
fix typo 6 years ago
Pavel Rojtberg b4dea4ef47 linemod: add drawFeatures method 6 years ago
Alexander Alekhin 7670ff2c01 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin db51dca45c Merge pull request #1928 from Bleach665:fix_win_perfvideo 6 years ago
Yuriy Obukh abbc450b27 Fix win build perf_video 6 years ago
Alexander Alekhin 84ac312fd0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 4a80c18c9c Merge pull request #1915 from NobuoTsukamoto:develop 6 years ago
塚本信男 675134eae9 fix build error. 6 years ago
Alexander Alekhin d511587cf0 Merge pull request #1911 from alalek:legacy_constants 6 years ago
Alexander Alekhin b686f4304c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 10b486726e fix legacy contants 6 years ago
Alexander Alekhin ec4d5c8556 Merge pull request #1905 from alalek:fix_1904 6 years ago
Alexander Alekhin c4419e4e65 cvv: repair build 6 years ago
Alexander Alekhin 6ef1983f08 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin a113dc61e1 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 2f516f1af3
Merge pull request #1896 from alalek:docs_fix_bib_Kroeger2016 6 years ago
LaurentBerger 67e15492da Merge pull request #1791 from LaurentBerger/ColorMatchTemplate 6 years ago
Alexander Alekhin ab42047b29 Merge pull request #1889 from alalek:fix_cuda_build 6 years ago
Alexander Alekhin 43ab2d8f39 cuda: disable code using obsolete objdetect API 6 years ago
Jukka Komulainen 3f0eaf6975 Merge pull request #1877 from ytyytyyt:master 6 years ago
Alexander Alekhin 6389627d8a Merge pull request #1885 from vpisarev:shuffle_optflow_algos 6 years ago
Vadim Pisarevsky dbfa4d7228 TVL1 optical flow example moved from opencv to opencv_contrib 6 years ago
Alexander Alekhin f39cb5b0ba Merge pull request #1887 from alalek:fix_surf_mask_keypoints 6 years ago
Alexander Alekhin 2fa9e65f4a xfeatures2d: validate keypoints mask for SURF 6 years ago
Vadim Pisarevsky 4f6e1c85a2
remove obsolete C API in the following modules: photo, video, imgcodecs, videoio (#1880) 6 years ago
Vadim Pisarevsky 2cc5ead103 moved DIS optical flow from opencv_contrib to opencv, moved TVL1 from opencv to opencv_contrib 6 years ago
Alexander Alekhin 2017be45db
Merge pull request #1881 from alalek:move_viz_contrib 6 years ago
Alexander Alekhin 2e195a134b
Merge pull request #1871 from alalek:move_videostab_contrib 6 years ago
Alexander Alekhin 97a92e2d55 viz: move samples/tutorials to opencv_contrib 6 years ago
Alexander Alekhin 4d2a81f34b viz: move to opencv_contrib 6 years ago
Alexander Alekhin ee8cac9709 videostab: move sample to opencv_contrib 6 years ago
Alexander Alekhin 94b6964bbe videostab: move to opencv_contrib 6 years ago
Alexander Alekhin 35fbfdd23a Merge pull request #1870 from alalek:move_superres_contrib 6 years ago
Alexander Alekhin 8654f76c67 Merge pull request #1869 from alalek:move_shape_contrib 6 years ago
Alexander Alekhin 299bbcc800 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 0b91ecceac shape: move sample to opencv_contrib 6 years ago
Alexander Alekhin bfdc06cb3c superres: move to opencv_contrib 6 years ago
Alexander Alekhin cab6c9542d shape: move to opencv_contrib 6 years ago
Alexander Alekhin 91e1657362 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Vadim Pisarevsky 4cf4cb099b
fixed compile error with the new C++ persistence in contrib (#1864) 6 years ago
Alexander Alekhin 7c57814052 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin fd63e17782 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 9110ccb295 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 6 years ago
Alexander Alekhin 3901fb76c3 Merge pull request #1841 from soyersoyer:kinfu_demo_start 6 years ago
soyer 1441c8e443 The kinfu_demo should open the default camera if I don't specify the camera in the cli 6 years ago
Alexander Alekhin 0c3b93495e Merge pull request #1842 from soyersoyer:cpp11 6 years ago
soyer 8a4c85b099 use the c++11's shiny initializer list feature 7 years ago
Alexander Alekhin 7c619cba33 Merge pull request #1839 from alalek:disable_nonfree_tests 7 years ago
Alexander Alekhin 811037d1fa rgbd: run non-free tests if OPENCV_ENABLE_NONFREE is defined 7 years ago
Alexander Alekhin 6c4cb5d8d3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin bdff2f70ed Merge pull request #1835 from alalek:rgbd_fix_opencl 7 years ago
Alexander Alekhin 6609d3e4fe rgbd: fix OpenCL includes 7 years ago
Alexander Alekhin 7f9f99d896 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin ec181a7137 Merge pull request #1813 from lvonasek:master 7 years ago
berak 78ad10ad8a Merge pull request #1819 from berak:fast_bilateral 7 years ago
Tomoaki Teshima 404a96ea42 [moved from opencv] update the threshold 7 years ago
Alexander Alekhin 42e0136592 Merge pull request #1829 from tomoaki0705:fixCudaImgprocColorGray_4_0 7 years ago
Tomoaki Teshima 62f55b4f1f fix test failure of cudaimgproc convert color of bgr2gray series 7 years ago
Alexander Alekhin 749fbda7f3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Hamdi Sahloul a547ddb462 [moved from opencv] CUDA/BgSegm: fix the threshold of MOG2.Update test when detectShadow=true (opencv/opencv#12762) 7 years ago
Lubos 3fbe8bc678 SFM::reconstruct - decompose K matrix correctly 7 years ago
Lubos e996686254 Compile on Clang 6 fixed 7 years ago
Alexander Alekhin 2f014f6f40 Merge pull request #1810 from JeffBail:document-how-to-build-samples 7 years ago
Jeff Bail 3b7edcba69 Added instructions on using BUILD_EXAMPLES=ON to build the samples 7 years ago
Tomoaki Teshima 74a4ed9efa [moved from opencv] fix test failure of StereoBeliefPropagation 7 years ago
Tomoaki Teshima b8dc51ad22 [moved from opencv] fix test failure of cudafilters Median_Accuracy 7 years ago
Alexander Alekhin cfab48b4be Merge pull request #1822 from alalek:fix_build_rgbd_samples 7 years ago
Alexander Alekhin 79052e15a3 fix build 7 years ago
Rostislav Vasilikhin 75bcd397af KinectFusion big update: OpenCL support, etc. (#1798) 7 years ago
Alexander Alekhin 96c2ecb53a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin a345402d3f Merge moved code from opencv 7 years ago
Antonio Borondo c7c7036121 [moved from opencv] Fix documentation of cv::cuda::compare 7 years ago
Alexander Alekhin 2e3cbde764 Merge pull request #1801 from cv3d:fix/cuda_python 7 years ago
Hamdi Sahloul 542b9acf5b CUDA/Python: Cleanup some manual enum wrappers 7 years ago
Tomoaki Teshima 53c60a9d50 [moved from opencv] fix test failure of cudev 7 years ago
Alexander Alekhin 530f1a2303 Merge pull request #1796 from cv3d:cleanup/python/enums 7 years ago
Alexander Alekhin 0879ce847b Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Hamdi Sahloul b0186947db Generate enum bindings automatically 7 years ago
Alexander Alekhin 14be1519fb Merge pull request #1784 from mshabunin:printf 7 years ago
Alexander Alekhin e6f5a4787c Merge pull request #1794 from tomoaki0705:fixFp16CudevFailure 7 years ago
Tomoaki Teshima ff7dbee60d fix CvFp16Test failure 7 years ago
Alexander Alekhin 3054618f6e Merge pull request #1789 from LaurentBerger:oillink 7 years ago
LaurentBerger 83ab94c238 rename Images in images 7 years ago
Hamdi Sahloul 4b1e26a9ca [moved from opencv] cuda::polarToCart: update documentation 7 years ago
Hamdi Sahloul 96320cacfc [moved from opencv] cuda::polarToCart: test double precision and tune tolerance 7 years ago
Hamdi Sahloul 4457f88244 [moved from opencv] cuda::polarToCart: Support double precision 7 years ago
Alexander Alekhin f9eaef9f38 Merge pull request #1744 from cv3d:chunks/enum_interface 7 years ago
Maksim Shabunin 696aa69f9a Fixed several incorrect printf format specifiers 7 years ago
Hamdi Sahloul 72e55f5ca3 Rename unnamed enum to ORB.ScoreType 7 years ago
Hamdi Sahloul 21b4630698 Renamed unnamed enum to FastFeatureDetector.DetectorType 7 years ago
Hamdi Sahloul 7ba7abb19e Renamed unnamed enum to CvFeatureParams.FeatureType 7 years ago
Hamdi Sahloul b6ece95da6 Rename unnamed enum to DAISY.NormalizationType 7 years ago
Hamdi Sahloul 8812513602 Remove cuda.HOG unnamed enum 7 years ago
Hamdi Sahloul bcf8f15a78 Convert unnamed FREAK enum to static const 7 years ago
Hamdi Sahloul f182eddbea Convert cuda.ORB unnamed enum to static const int 7 years ago
Hamdi Sahloul 3cadb4000b Convert cuda.FastFeatureDetector unnamed enum to static const int 7 years ago
Alexander Alekhin 9735ec666c
Merge pull request #1781 from alalek:move_cuda_modules 7 years ago
Alexander Alekhin 82733fe56b cuda: move CUDA modules to opencv_contrib 7 years ago
Alexander Alekhin 136baab937 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin da989664e0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin ac0b1d0da1
Merge pull request #1769 from LaurentBerger:I1767 7 years ago
LaurentBerger d3d3806351 solves I1767 7 years ago
LaurentBerger 7f5bb96dcc Merge pull request #1750 from LaurentBerger:oilpainting 7 years ago
Alexander Alekhin de3041bc71 Merge pull request #1765 from alalek:core_use_shared_ptr 7 years ago
Alexander Alekhin 402956703c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin abb211d064 avoid `Ptr<> == NULL` checks 7 years ago
Alexander Alekhin 5c36296895 Merge pull request #1759 from alalek:fix_contrib_1754 7 years ago
Alexander Alekhin 9312f74540 xfeatures2d(test): update GMS test thresholds 7 years ago
Alexander Alekhin 0bf687bc33 xfeatures2d(test): update extraction/invariance tests 7 years ago
Alexander Alekhin a2eae86c15 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 99573cb928 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin b516c2885f Merge pull request #1734 from cv3d:improvements/binding_python 7 years ago
Alexander Alekhin e29fc6b759 Merge pull request #1737 from sturkmen72:update_TrackerCSRT 7 years ago
Alexander Alekhin e993e8c014 Merge pull request #1739 from alalek:cleanup_stl_string_replacement 7 years ago
Alexander Alekhin 16daec9c5c Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 2b4c35766a hdf5: fix atread(string) 7 years ago
Hamdi Sahloul 8e840c8642 Fix enum wrapper 7 years ago
Suleyman TURKMEN d11ab6859f update TrackerCSRT 7 years ago
Vladislav Sovrasov b7fa9697f6 text: remove duplicated create method in OCRHMMDecoder class 7 years ago
Alexander Alekhin 5d3928e4f5 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 1404ce97ae Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 673900a84c Merge pull request #1724 from hrnr:video_remove_ransac 7 years ago
Alexander Alekhin dc6af711a7 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Jiri Horner 09c5e8cc81 replace internal usage of deprecated estimateRigidTransform in face 7 years ago
Alexander Alekhin 9adf7a58a0 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin fad9a51b82 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
simonreich 96953843be Merge pull request #1690 from simonreich:epf 7 years ago
Alexander Alekhin 483d7d98e3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin ef965066fa Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 426a665169 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 09e05b8471 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Dietrich Büsching 0f5d6ae194 Merge pull request #1672 from dbuesching:rl_morphology 7 years ago
Alexander Alekhin 729737ddc9 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Vadim Pisarevsky 96ea9a0d8a Merge pull request #1674 from criteo-forks:master 7 years ago
d.bouron 0e03fea432 Fix corruption exception in StaticSaliencySpectralResidual 7 years ago
Vadim Pisarevsky 21e1c8b448 Merge pull request #1669 from paroj:kinfupy 7 years ago
yarglawaldeg 4ea11a088b update structured_edge_detection (#1579) 7 years ago
Pavel Rojtberg 9e787377dc kinfu: allow basic wrapping for bindings 7 years ago
Rostislav Vasilikhin e351caedf7 KinectFusion demo: live input support added (#1671) 7 years ago
Alexander Alekhin 2231018c83 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Vadim Pisarevsky 84860f217d Merge pull request #1648 from xkunglu:master 7 years ago
Rostislav Vasilikhin 42a889ef4f KinectFusion implemented (#1627) 7 years ago
Unknown 9757b71806 minor fix to allow learn_color_balance.py to work with python 3+ 7 years ago
Alexander Alekhin f33d180808 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
LaurentBerger a798127837 Merge pull request #1634 from LaurentBerger:FD_bug 7 years ago
Alexander Alekhin beef60bab5 Merge pull request #1642 from fegorsch:rename-near-to-znear 7 years ago
fegorsch 78392f786d Rename `near` to `zNear` 7 years ago
Alexander Alekhin 1b588570e9 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 2b5eca6e17 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin fbc4d82fd3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin 309edb59c1 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
Alexander Alekhin aaf8fffcfb Merge remote-tracking branch 'upstream/3.4' into merge-3.4 7 years ago
  1. 20
      .github/workflows/PR-5.x.yaml
  2. 2
      modules/aruco/CMakeLists.txt
  3. 17
      modules/aruco/README.md
  4. 21
      modules/aruco/doc/aruco.bib
  5. 103
      modules/aruco/include/opencv2/aruco.hpp
  6. 180
      modules/aruco/include/opencv2/aruco/aruco_calib.hpp
  7. 110
      modules/aruco/include/opencv2/aruco/charuco.hpp
  8. 10
      modules/aruco/misc/objc/gen_dict.json
  9. 1296
      modules/aruco/misc/pattern_generator/MarkerPrinter.py
  10. 565
      modules/aruco/misc/pattern_generator/MarkerPrinterGUI.py
  11. 68
      modules/aruco/misc/pattern_generator/README.md
  12. BIN
      modules/aruco/misc/pattern_generator/arucoDictBytesList.npz
  13. BIN
      modules/aruco/misc/pattern_generator/doc/images/MarkerPrinterGUI.jpg
  14. 39
      modules/aruco/misc/python/test/test_aruco.py
  15. 143
      modules/aruco/src/aruco.cpp
  16. 98
      modules/aruco/src/aruco_calib.cpp
  17. 62
      modules/aruco/src/charuco.cpp
  18. 11
      modules/aruco/src/precomp.hpp
  19. 2
      modules/bgsegm/CMakeLists.txt
  20. 2
      modules/bgsegm/src/bgfg_gsoc.cpp
  21. 2
      modules/bioinspired/src/retina_ocl.cpp
  22. 4
      modules/bioinspired/src/retinafasttonemapping.cpp
  23. 18
      modules/bioinspired/src/transientareassegmentationmodule.cpp
  24. 2
      modules/ccalib/CMakeLists.txt
  25. 4
      modules/ccalib/include/opencv2/ccalib.hpp
  26. 4
      modules/ccalib/include/opencv2/ccalib/multicalib.hpp
  27. 7
      modules/ccalib/include/opencv2/ccalib/randpattern.hpp
  28. 3
      modules/ccalib/samples/omni_calibration.cpp
  29. 3
      modules/ccalib/samples/omni_stereo_calibration.cpp
  30. 3
      modules/ccalib/samples/random_pattern_calibration.cpp
  31. 8
      modules/ccalib/src/ccalib.cpp
  32. 2
      modules/ccalib/src/multicalib.cpp
  33. 1
      modules/ccalib/src/omnidir.cpp
  34. 6
      modules/ccalib/src/precomp.hpp
  35. 2
      modules/ccalib/tutorials/omnidir_tutorial.markdown
  36. 2
      modules/cnn_3dobj/CMakeLists.txt
  37. 2
      modules/cnn_3dobj/samples/classify.cpp
  38. 4
      modules/cnn_3dobj/samples/video.cpp
  39. 16
      modules/cudacodec/src/ffmpeg_video_source.cpp
  40. 2
      modules/cudafeatures2d/CMakeLists.txt
  41. 2
      modules/cudafeatures2d/include/opencv2/cudafeatures2d.hpp
  42. 2
      modules/cudafeatures2d/perf/perf_precomp.hpp
  43. 2
      modules/cudafeatures2d/src/precomp.hpp
  44. 2
      modules/cudafeatures2d/test/test_precomp.hpp
  45. 1
      modules/cudaimgproc/test/test_histogram.cpp
  46. 2
      modules/cudalegacy/CMakeLists.txt
  47. 4
      modules/cudalegacy/perf/perf_calib3d.cpp
  48. 4
      modules/cudalegacy/src/NCV.cpp
  49. 2
      modules/cudalegacy/src/calib3d.cpp
  50. 91
      modules/cudalegacy/src/cuda/NCVHaarObjectDetection.cu
  51. 75
      modules/cudalegacy/src/fgd.cpp
  52. 8
      modules/cudalegacy/src/precomp.hpp
  53. 4
      modules/cudalegacy/test/test_calib3d.cpp
  54. 2
      modules/cudaobjdetect/CMakeLists.txt
  55. 12
      modules/cudaobjdetect/include/opencv2/cudaobjdetect.hpp
  56. 2
      modules/cudaobjdetect/perf/perf_precomp.hpp
  57. 2
      modules/cudaobjdetect/src/precomp.hpp
  58. 2
      modules/cudaobjdetect/test/test_precomp.hpp
  59. 2
      modules/cudastereo/CMakeLists.txt
  60. 3
      modules/cudastereo/include/opencv2/cudastereo.hpp
  61. 3
      modules/cudastereo/perf/perf_precomp.hpp
  62. 3
      modules/cudastereo/test/test_precomp.hpp
  63. 2
      modules/cudev/include/opencv2/cudev/util/vec_traits.hpp
  64. 6
      modules/cudev/test/test_cvt.cu
  65. 4
      modules/cudev/test/test_integral.cu
  66. 6
      modules/cudev/test/test_nd.cu
  67. 2
      modules/cvv/CMakeLists.txt
  68. 2
      modules/cvv/include/opencv2/cvv/dmatch.hpp
  69. 10
      modules/cvv/samples/cvv_demo.cpp
  70. 2
      modules/cvv/src/gui/rawview_group_subtable.cpp
  71. 2
      modules/cvv/src/gui/rawview_table_row.hpp
  72. 2
      modules/cvv/src/impl/call.hpp
  73. 2
      modules/cvv/src/impl/match_call.hpp
  74. 2
      modules/cvv/src/qtutil/matchview/cvvkeypoint.hpp
  75. 2
      modules/cvv/src/qtutil/matchview/cvvmatch.hpp
  76. 2
      modules/cvv/src/qtutil/matchview/falsecolorkeypointpen.hpp
  77. 2
      modules/cvv/src/qtutil/matchview/falsecolormatchpen.hpp
  78. 2
      modules/cvv/src/qtutil/matchview/keypointintervallselection.hpp
  79. 2
      modules/cvv/src/qtutil/matchview/keypointmanagement.hpp
  80. 2
      modules/cvv/src/qtutil/matchview/keypointportionselector.hpp
  81. 2
      modules/cvv/src/qtutil/matchview/keypointselection.hpp
  82. 2
      modules/cvv/src/qtutil/matchview/keypointselectionselector.hpp
  83. 2
      modules/cvv/src/qtutil/matchview/keypointsettingsselector.hpp
  84. 2
      modules/cvv/src/qtutil/matchview/keypointshowsetting.hpp
  85. 2
      modules/cvv/src/qtutil/matchview/keypointvaluechooser.hpp
  86. 2
      modules/cvv/src/qtutil/matchview/matchintervallselection.hpp
  87. 2
      modules/cvv/src/qtutil/matchview/matchmanagement.hpp
  88. 2
      modules/cvv/src/qtutil/matchview/matchportionselector.hpp
  89. 2
      modules/cvv/src/qtutil/matchview/matchscene.hpp
  90. 2
      modules/cvv/src/qtutil/matchview/matchselection.hpp
  91. 2
      modules/cvv/src/qtutil/matchview/matchselectionselector.hpp
  92. 2
      modules/cvv/src/qtutil/matchview/matchsettingsselector.hpp
  93. 2
      modules/cvv/src/qtutil/matchview/matchshowsetting.hpp
  94. 2
      modules/cvv/src/qtutil/matchview/rawview_window.hpp
  95. 2
      modules/cvv/src/qtutil/matchview/showinrawviewwidget.hpp
  96. 2
      modules/cvv/src/qtutil/util.hpp
  97. 2
      modules/cvv/src/view/linematchview.hpp
  98. 2
      modules/cvv/src/view/match_view.hpp
  99. 2
      modules/cvv/src/view/pointmatchview.hpp
  100. 2
      modules/cvv/src/view/rawview.hpp
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,9 +1,9 @@
name: PR:4.x
name: PR:5.x
on:
pull_request:
branches:
- 4.x
- 5.x
jobs:
Linux:
@ -12,23 +12,19 @@ jobs:
workflow_branch: main
Ubuntu2004-ARM64:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-ARM64.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-ARM64.yaml@main
Ubuntu2004-x64-CUDA:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-U20-Cuda.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-U20-Cuda.yaml@main
Windows10-x64:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-W10.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-W10.yaml@main
macOS-ARM64:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-macOS-ARM64.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-macOS-ARM64.yaml@main
macOS-X64:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-macOS-x86_64.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-macOS-x86_64.yaml@main
Linux-RISC-V-Clang:
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-RISCV.yaml@main
openEuler2203-x64:
if: "${{ contains(github.event.pull_request.labels.*.name, 'category: cann') }}"
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-4.x-O22-CANN.yaml@main
uses: opencv/ci-gha-workflow/.github/workflows/OCV-Contrib-PR-5.x-RISCV.yaml@main

@ -1,2 +0,0 @@
set(the_description "ArUco Marker Detection")
ocv_define_module(aruco opencv_core opencv_imgproc opencv_calib3d opencv_objdetect WRAP python java objc js)

@ -1,17 +0,0 @@
ArUco Marker Detection
======================
**ArUco**
![markers](https://github.com/opencv/opencv_contrib/assets/810997/8d587456-f27f-49e4-9540-28a0477d43fc)
ArUco markers are easy to detect pattern grids that yield up to 1024 different patterns. They were built for augmented reality and later used for camera calibration. Since the grid uniquely orients the square, the detection algorithm can determing the pose of the grid.
**ChArUco**
![screen_charuco](https://github.com/opencv/opencv_contrib/assets/810997/64610da1-ee06-406c-a19b-006b02ac44fd)
ArUco markers were improved by interspersing them inside a checkerboard called ChArUco. Checkerboard corner intersections provide more stable corners because the edge location bias on one square is countered by the opposite edge orientation in the connecting square. By interspersing ArUco markers inside the checkerboard, each checkerboard corner gets a label which enables it to be used in complex calibration or pose scenarios where you cannot see all the corners of the checkerboard.
The smallest ChArUco board is 5 checkers and 4 markers called a "Diamond Marker".

@ -1,21 +0,0 @@
@article{Aruco2014,
title = "Automatic generation and detection of highly reliable fiducial markers under occlusion ",
journal = "Pattern Recognition ",
volume = "47",
number = "6",
pages = "2280 - 2292",
year = "2014",
issn = "0031-3203",
doi = "http://dx.doi.org/10.1016/j.patcog.2014.01.005",
url = "http://www.sciencedirect.com/science/article/pii/S0031320314000235",
author = "S. Garrido-Jurado and R. Mu\~noz-Salinas and F.J. Madrid-Cuevas and M.J. Mar\'in-Jim\'enez"
}
@inproceedings{wang2016iros,
AUTHOR = {John Wang and Edwin Olson},
TITLE = {{AprilTag} 2: Efficient and robust fiducial detection},
BOOKTITLE = {Proceedings of the {IEEE/RSJ} International Conference on Intelligent
Robots and Systems {(IROS)}},
YEAR = {2016},
MONTH = {October},
}

@ -1,103 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#ifndef OPENCV_ARUCO_HPP
#define OPENCV_ARUCO_HPP
#include "opencv2/objdetect/aruco_detector.hpp"
#include "opencv2/aruco/aruco_calib.hpp"
namespace cv {
namespace aruco {
/**
* @defgroup aruco Aruco markers, module functionality was moved to objdetect module
* @{
* ArUco Marker Detection, module functionality was moved to objdetect module
* @sa ArucoDetector, CharucoDetector, Board, GridBoard, CharucoBoard
* @}
*/
//! @addtogroup aruco
//! @{
/** @brief detect markers
@deprecated Use class ArucoDetector::detectMarkers
*/
CV_EXPORTS_W void detectMarkers(InputArray image, const Ptr<Dictionary> &dictionary, OutputArrayOfArrays corners,
OutputArray ids, const Ptr<DetectorParameters> &parameters = makePtr<DetectorParameters>(),
OutputArrayOfArrays rejectedImgPoints = noArray());
/** @brief refine detected markers
@deprecated Use class ArucoDetector::refineDetectedMarkers
*/
CV_EXPORTS_W void refineDetectedMarkers(InputArray image,const Ptr<Board> &board,
InputOutputArrayOfArrays detectedCorners,
InputOutputArray detectedIds, InputOutputArrayOfArrays rejectedCorners,
InputArray cameraMatrix = noArray(), InputArray distCoeffs = noArray(),
float minRepDistance = 10.f, float errorCorrectionRate = 3.f,
bool checkAllOrders = true, OutputArray recoveredIdxs = noArray(),
const Ptr<DetectorParameters> &parameters = makePtr<DetectorParameters>());
/** @brief draw planar board
@deprecated Use Board::generateImage
*/
CV_EXPORTS_W void drawPlanarBoard(const Ptr<Board> &board, Size outSize, OutputArray img, int marginSize,
int borderBits);
/** @brief get board object and image points
@deprecated Use Board::matchImagePoints
*/
CV_EXPORTS_W void getBoardObjectAndImagePoints(const Ptr<Board> &board, InputArrayOfArrays detectedCorners,
InputArray detectedIds, OutputArray objPoints, OutputArray imgPoints);
/** @deprecated Use Board::matchImagePoints and cv::solvePnP
*/
CV_EXPORTS_W int estimatePoseBoard(InputArrayOfArrays corners, InputArray ids, const Ptr<Board> &board,
InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec,
InputOutputArray tvec, bool useExtrinsicGuess = false);
/**
* @brief Pose estimation for a ChArUco board given some of their corners
* @param charucoCorners vector of detected charuco corners
* @param charucoIds list of identifiers for each corner in charucoCorners
* @param board layout of ChArUco board.
* @param cameraMatrix input 3x3 floating-point camera matrix
* \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$
* @param distCoeffs vector of distortion coefficients
* \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
* @param rvec Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board
* (see cv::Rodrigues).
* @param tvec Output vector (e.g. cv::Mat) corresponding to the translation vector of the board.
* @param useExtrinsicGuess defines whether initial guess for \b rvec and \b tvec will be used or not.
*
* This function estimates a Charuco board pose from some detected corners.
* The function checks if the input corners are enough and valid to perform pose estimation.
* If pose estimation is valid, returns true, else returns false.
* @deprecated Use CharucoBoard::matchImagePoints and cv::solvePnP
* @sa use cv::drawFrameAxes to get world coordinate system axis for object points
*/
CV_EXPORTS_W bool estimatePoseCharucoBoard(InputArray charucoCorners, InputArray charucoIds,
const Ptr<CharucoBoard> &board, InputArray cameraMatrix,
InputArray distCoeffs, InputOutputArray rvec,
InputOutputArray tvec, bool useExtrinsicGuess = false);
/** @deprecated Use cv::solvePnP
*/
CV_EXPORTS_W void estimatePoseSingleMarkers(InputArrayOfArrays corners, float markerLength,
InputArray cameraMatrix, InputArray distCoeffs,
OutputArray rvecs, OutputArray tvecs, OutputArray objPoints = noArray(),
const Ptr<EstimateParameters>& estimateParameters = makePtr<EstimateParameters>());
/** @deprecated Use CharucoBoard::checkCharucoCornersCollinear
*/
CV_EXPORTS_W bool testCharucoCornersCollinear(const Ptr<CharucoBoard> &board, InputArray charucoIds);
//! @}
}
}
#endif

@ -1,180 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#ifndef OPENCV_ARUCO_CALIB_POSE_HPP
#define OPENCV_ARUCO_CALIB_POSE_HPP
#include <opencv2/objdetect/aruco_board.hpp>
namespace cv {
namespace aruco {
//! @addtogroup aruco
//! @{
/** @brief rvec/tvec define the right handed coordinate system of the marker.
*
* PatternPositionType defines center this system and axes direction.
* Axis X (red color) - first coordinate, axis Y (green color) - second coordinate,
* axis Z (blue color) - third coordinate.
*
* @deprecated Use Board::matchImagePoints and cv::solvePnP
*
* @sa estimatePoseSingleMarkers()
*/
enum PatternPositionType {
/** @brief The marker coordinate system is centered on the middle of the marker.
*
* The coordinates of the four corners (CCW order) of the marker in its own coordinate system are:
* (-markerLength/2, markerLength/2, 0), (markerLength/2, markerLength/2, 0),
* (markerLength/2, -markerLength/2, 0), (-markerLength/2, -markerLength/2, 0).
*/
ARUCO_CCW_CENTER,
/** @brief The marker coordinate system is centered on the top-left corner of the marker.
*
* The coordinates of the four corners (CW order) of the marker in its own coordinate system are:
* (0, 0, 0), (markerLength, 0, 0),
* (markerLength, markerLength, 0), (0, markerLength, 0).
*
* These pattern dots are convenient to use with a chessboard/ChArUco board.
*/
ARUCO_CW_TOP_LEFT_CORNER
};
/** @brief Pose estimation parameters
*
* @param pattern Defines center this system and axes direction (default PatternPositionType::ARUCO_CCW_CENTER).
* @param useExtrinsicGuess Parameter used for SOLVEPNP_ITERATIVE. If true (1), the function uses the provided
* rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further
* optimizes them (default false).
* @param solvePnPMethod Method for solving a PnP problem: see @ref calib3d_solvePnP_flags (default SOLVEPNP_ITERATIVE).
*
* @deprecated Use Board::matchImagePoints and cv::solvePnP
*
* @sa PatternPositionType, solvePnP()
*/
struct CV_EXPORTS_W_SIMPLE EstimateParameters {
CV_PROP_RW PatternPositionType pattern;
CV_PROP_RW bool useExtrinsicGuess;
CV_PROP_RW int solvePnPMethod;
CV_WRAP EstimateParameters();
};
/**
* @brief Calibrate a camera using aruco markers
*
* @param corners vector of detected marker corners in all frames.
* The corners should have the same format returned by detectMarkers (see #detectMarkers).
* @param ids list of identifiers for each marker in corners
* @param counter number of markers in each frame so that corners and ids can be split
* @param board Marker Board layout
* @param imageSize Size of the image used only to initialize the intrinsic camera matrix.
* @param cameraMatrix Output 3x3 floating-point camera matrix
* \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . If CV\_CALIB\_USE\_INTRINSIC\_GUESS
* and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
* initialized before calling the function.
* @param distCoeffs Output vector of distortion coefficients
* \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
* @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view
* (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding
* k-th translation vector (see the next output parameter description) brings the board pattern
* from the model coordinate space (in which object points are specified) to the world coordinate
* space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1).
* @param tvecs Output vector of translation vectors estimated for each pattern view.
* @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.
* Order of deviations values:
* \f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,
* s_4, \tau_x, \tau_y)\f$ If one of parameters is not estimated, it's deviation is equals to zero.
* @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.
* Order of deviations values: \f$(R_1, T_1, \dotsc , R_M, T_M)\f$ where M is number of pattern views,
* \f$R_i, T_i\f$ are concatenated 1x3 vectors.
* @param perViewErrors Output vector of average re-projection errors estimated for each pattern view.
* @param flags flags Different flags for the calibration process (see #calibrateCamera for details).
* @param criteria Termination criteria for the iterative optimization algorithm.
*
* This function calibrates a camera using an Aruco Board. The function receives a list of
* detected markers from several views of the Board. The process is similar to the chessboard
* calibration in calibrateCamera(). The function returns the final re-projection error.
*
* @deprecated Use Board::matchImagePoints and cv::solvePnP
*/
CV_EXPORTS_AS(calibrateCameraArucoExtended)
double calibrateCameraAruco(InputArrayOfArrays corners, InputArray ids, InputArray counter, const Ptr<Board> &board,
Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, OutputArray stdDeviationsIntrinsics,
OutputArray stdDeviationsExtrinsics, OutputArray perViewErrors, int flags = 0,
const TermCriteria& criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON));
/** @overload
* @brief It's the same function as #calibrateCameraAruco but without calibration error estimation.
* @deprecated Use Board::matchImagePoints and cv::solvePnP
*/
CV_EXPORTS_W double calibrateCameraAruco(InputArrayOfArrays corners, InputArray ids, InputArray counter,
const Ptr<Board> &board, Size imageSize, InputOutputArray cameraMatrix,
InputOutputArray distCoeffs, OutputArrayOfArrays rvecs = noArray(),
OutputArrayOfArrays tvecs = noArray(), int flags = 0,
const TermCriteria& criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS,
30, DBL_EPSILON));
/**
* @brief Calibrate a camera using Charuco corners
*
* @param charucoCorners vector of detected charuco corners per frame
* @param charucoIds list of identifiers for each corner in charucoCorners per frame
* @param board Marker Board layout
* @param imageSize input image size
* @param cameraMatrix Output 3x3 floating-point camera matrix
* \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . If CV\_CALIB\_USE\_INTRINSIC\_GUESS
* and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
* initialized before calling the function.
* @param distCoeffs Output vector of distortion coefficients
* \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
* @param rvecs Output vector of rotation vectors (see Rodrigues ) estimated for each board view
* (e.g. std::vector<cv::Mat>>). That is, each k-th rotation vector together with the corresponding
* k-th translation vector (see the next output parameter description) brings the board pattern
* from the model coordinate space (in which object points are specified) to the world coordinate
* space, that is, a real position of the board pattern in the k-th pattern view (k=0.. *M* -1).
* @param tvecs Output vector of translation vectors estimated for each pattern view.
* @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.
* Order of deviations values:
* \f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,
* s_4, \tau_x, \tau_y)\f$ If one of parameters is not estimated, it's deviation is equals to zero.
* @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.
* Order of deviations values: \f$(R_1, T_1, \dotsc , R_M, T_M)\f$ where M is number of pattern views,
* \f$R_i, T_i\f$ are concatenated 1x3 vectors.
* @param perViewErrors Output vector of average re-projection errors estimated for each pattern view.
* @param flags flags Different flags for the calibration process (see #calibrateCamera for details).
* @param criteria Termination criteria for the iterative optimization algorithm.
*
* This function calibrates a camera using a set of corners of a Charuco Board. The function
* receives a list of detected corners and its identifiers from several views of the Board.
* The function returns the final re-projection error.
*
* @deprecated Use CharucoBoard::matchImagePoints and cv::solvePnP
*/
CV_EXPORTS_AS(calibrateCameraCharucoExtended)
double calibrateCameraCharuco(InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds,
const Ptr<CharucoBoard> &board, Size imageSize, InputOutputArray cameraMatrix,
InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
OutputArray stdDeviationsIntrinsics, OutputArray stdDeviationsExtrinsics,
OutputArray perViewErrors, int flags = 0, const TermCriteria& criteria = TermCriteria(
TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON));
/**
* @brief It's the same function as #calibrateCameraCharuco but without calibration error estimation.
*
* @deprecated Use CharucoBoard::matchImagePoints and cv::solvePnP
*/
CV_EXPORTS_W double calibrateCameraCharuco(InputArrayOfArrays charucoCorners, InputArrayOfArrays charucoIds,
const Ptr<CharucoBoard> &board, Size imageSize,
InputOutputArray cameraMatrix, InputOutputArray distCoeffs,
OutputArrayOfArrays rvecs = noArray(),
OutputArrayOfArrays tvecs = noArray(), int flags = 0,
const TermCriteria& criteria=TermCriteria(TermCriteria::COUNT +
TermCriteria::EPS, 30, DBL_EPSILON));
//! @}
}
}
#endif

@ -1,110 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#ifndef OPENCV_CHARUCO_HPP
#define OPENCV_CHARUCO_HPP
#include <opencv2/core.hpp>
#include <vector>
#include <opencv2/aruco.hpp>
#include <opencv2/objdetect/charuco_detector.hpp>
#include <opencv2/aruco/aruco_calib.hpp>
namespace cv {
namespace aruco {
//! @addtogroup aruco
//! @{
/**
* @brief Interpolate position of ChArUco board corners
* @param markerCorners vector of already detected markers corners. For each marker, its four
* corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the
* dimensions of this array should be Nx4. The order of the corners should be clockwise.
* @param markerIds list of identifiers for each marker in corners
* @param image input image necesary for corner refinement. Note that markers are not detected and
* should be sent in corners and ids parameters.
* @param board layout of ChArUco board.
* @param charucoCorners interpolated chessboard corners
* @param charucoIds interpolated chessboard corners identifiers
* @param cameraMatrix optional 3x3 floating-point camera matrix
* \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$
* @param distCoeffs optional vector of distortion coefficients
* \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
* @param minMarkers number of adjacent markers that must be detected to return a charuco corner
*
* This function receives the detected markers and returns the 2D position of the chessboard corners
* from a ChArUco board using the detected Aruco markers. If camera parameters are provided,
* the process is based in an approximated pose estimation, else it is based on local homography.
* Only visible corners are returned. For each corner, its corresponding identifier is
* also returned in charucoIds.
* The function returns the number of interpolated corners.
*
* @deprecated Use CharucoDetector::detectBoard
*/
CV_EXPORTS_W int interpolateCornersCharuco(InputArrayOfArrays markerCorners, InputArray markerIds,
InputArray image, const Ptr<CharucoBoard> &board,
OutputArray charucoCorners, OutputArray charucoIds,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(), int minMarkers = 2);
/**
* @brief Detect ChArUco Diamond markers
*
* @param image input image necessary for corner subpixel.
* @param markerCorners list of detected marker corners from detectMarkers function.
* @param markerIds list of marker ids in markerCorners.
* @param squareMarkerLengthRate rate between square and marker length:
* squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary.
* @param diamondCorners output list of detected diamond corners (4 corners per diamond). The order
* is the same than in marker corners: top left, top right, bottom right and bottom left. Similar
* format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f> > ).
* @param diamondIds ids of the diamonds in diamondCorners. The id of each diamond is in fact of
* type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the
* diamond.
* @param cameraMatrix Optional camera calibration matrix.
* @param distCoeffs Optional camera distortion coefficients.
* @param dictionary dictionary of markers indicating the type of markers.
*
* This function detects Diamond markers from the previous detected ArUco markers. The diamonds
* are returned in the diamondCorners and diamondIds parameters. If camera calibration parameters
* are provided, the diamond search is based on reprojection. If not, diamond search is based on
* homography. Homography is faster than reprojection, but less accurate.
*
* @deprecated Use CharucoDetector::detectDiamonds
*/
CV_EXPORTS_W void detectCharucoDiamond(InputArray image, InputArrayOfArrays markerCorners,
InputArray markerIds, float squareMarkerLengthRate,
OutputArrayOfArrays diamondCorners, OutputArray diamondIds,
InputArray cameraMatrix = noArray(),
InputArray distCoeffs = noArray(),
Ptr<Dictionary> dictionary = makePtr<Dictionary>
(getPredefinedDictionary(PredefinedDictionaryType::DICT_4X4_50)));
/**
* @brief Draw a ChArUco Diamond marker
*
* @param dictionary dictionary of markers indicating the type of markers.
* @param ids list of 4 ids for each ArUco marker in the ChArUco marker.
* @param squareLength size of the chessboard squares in pixels.
* @param markerLength size of the markers in pixels.
* @param img output image with the marker. The size of this image will be
* 3*squareLength + 2*marginSize,.
* @param marginSize minimum margins (in pixels) of the marker in the output image
* @param borderBits width of the marker borders.
*
* This function return the image of a ChArUco marker, ready to be printed.
*
* @deprecated Use CharucoBoard::generateImage()
*/
CV_EXPORTS_W void drawCharucoDiamond(const Ptr<Dictionary> &dictionary, Vec4i ids, int squareLength,
int markerLength, OutputArray img, int marginSize = 0,
int borderBits = 1);
//! @}
}
}
#endif

@ -1,10 +0,0 @@
{
"AdditionalImports" : {
"*" : [ "\"aruco.hpp\"", "\"aruco/charuco.hpp\"" ]
},
"func_arg_fix" : {
"Aruco" : {
"estimatePoseSingleMarkers" : { "estimateParameters" : {"defval" : "cv::makePtr<cv::aruco::EstimateParameters>()"} }
}
}
}

File diff suppressed because it is too large Load Diff

@ -1,565 +0,0 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: BSD-3-Clause
#
# Copyright (c) 2019, Josh Chien. All rights reserved.
from MarkerPrinter import *
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
import time
import PIL.Image
import PIL.ImageTk
class MarkerPrinterGUI:
def VisDPI(self, shape):
scale0 = float(self.displayShape[0]) / float(shape[0])
scale1 = float(self.displayShape[1]) / float(shape[1])
if(scale0 > scale1):
return scale1 * 96.0
else:
return scale0 * 96.0
def OnShowingHelpGithub(self):
messagebox.showinfo("Github",
"https://github.com/dogod621/OpenCVMarkerPrinter")
def OnCloseWindow(self):
if(self.window is not None):
if messagebox.askokcancel("Quit", "Do you want to quit?"):
self.window.destroy()
self.window = None
def OnSelectCharucoMarkerDictionary(self, pDictName):
self.charucoMarkerDictionaryStr.set(pDictName)
def __SaveMarker(GenMarkerImageCallback, *args, **kwargs):
if(kwargs.get("subSize",None) is not None):
subSizeX, subSizeY = kwargs["subSize"]
kwargs["subSize"] = None
if(subSizeX > 0):
if(subSizeY > 0):
kwargs["subSize"] = (subSizeX, subSizeY)
else:
kwargs["subSize"] = (subSizeX, sizeY)
else:
if(subSizeY > 0):
kwargs["subSize"] = (sizeX, subSizeY)
else:
kwargs["subSize"] = None
try:
askFileName = filedialog.asksaveasfilename(initialdir = os.path.abspath("./"), title = "Output", filetypes = (\
("scalable vector graphics files","*.svg"), \
("portable document format files","*.pdf"), \
("post script files","*.ps")),
defaultextension="*.*")
if (askFileName):
GenMarkerImageCallback(askFileName, *args, **kwargs)
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Save marker failed")
return
def OnPreviewOrSaveCharucoMarker(self, askSave = False):
try:
sizeX = int(self.charucoMarkerChessboardSizeXStr.get())
sizeY = int(self.charucoMarkerChessboardSizeYStr.get())
squareLength = float(self.charucoMarkerSquareLengthStr.get())
markerLength = float(self.charucoMarkerMarkerLengthStr.get())
borderBits = int(self.charucoMarkerBorderBitsStr.get())
dictionary = self.charucoMarkerDictionaryStr.get()
subSizeX = int(self.charucoMarkerSaveSubSizeXStr.get())
subSizeY = int(self.charucoMarkerSaveSubSizeYStr.get())
pageBorderX = float(self.charucoMarkerSavePageBorderXStr.get())
pageBorderY = float(self.charucoMarkerSavePageBorderYStr.get())
except ValueError as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Enter invalid parameters")
return
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Fail to get parameters")
return
# Preview
try:
dpi = self.VisDPI(((sizeY * squareLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (sizeX * squareLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter))
tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewCharucoMarkerImage(dictionary, (sizeX, sizeY), squareLength, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi))
self.charucoMarkerImageLabel.imgtk = tkImage
self.charucoMarkerImageLabel.config(image=tkImage)
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "create marker failed")
return
# Save
if(askSave):
MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenCharucoMarkerImage, \
dictionary, (sizeX, sizeY), squareLength, markerLength, borderBits=borderBits, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY))
def OnPreviewCharucoMarker(self):
self.OnPreviewOrSaveCharucoMarker(askSave = False)
def OnSaveCharucoMarker(self):
self.OnPreviewOrSaveCharucoMarker(askSave = True)
def InitCharucoMarkerTab(self):
self.charucoMarkerUIFrame = ttk.Frame(self.charucoMarkerTab)
self.charucoMarkerImageTab = ttk.Frame(self.charucoMarkerTab)
self.charucoMarkerUIFrame2 = ttk.Frame(self.charucoMarkerTab)
self.charucoMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW)
self.charucoMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW)
self.charucoMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW)
self.charucoMarkerImageLabel = tk.Label(self.charucoMarkerImageTab)
self.charucoMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="chessboardSizeX").grid(row=0, column=1, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="chessboardSizeY").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="squareLength (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame, text="borderBits").grid(row=0, column=5, sticky = tk.NSEW)
self.charucoMarkerDictionaryStr = tk.StringVar()
self.charucoMarkerChessboardSizeXStr = tk.StringVar()
self.charucoMarkerChessboardSizeXStr.set("16")
self.charucoMarkerChessboardSizeYStr = tk.StringVar()
self.charucoMarkerChessboardSizeYStr.set("9")
self.charucoMarkerSquareLengthStr = tk.StringVar()
self.charucoMarkerSquareLengthStr.set("0.09")
self.charucoMarkerMarkerLengthStr = tk.StringVar()
self.charucoMarkerMarkerLengthStr.set("0.07")
self.charucoMarkerBorderBitsStr = tk.StringVar()
self.charucoMarkerBorderBitsStr.set("1")
self.charucoMarkerDictionaryMenue = tk.OptionMenu(self.charucoMarkerUIFrame, self.charucoMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectCharucoMarkerDictionary)
self.charucoMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerChessboardSizeXStr).grid(row=1, column=1, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerChessboardSizeYStr).grid(row=1, column=2, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerSquareLengthStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerMarkerLengthStr).grid(row=1, column=4, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame, textvariable=self.charucoMarkerBorderBitsStr).grid(row=1, column=5, sticky = tk.NSEW)
tk.Button(self.charucoMarkerUIFrame2, text = "Preview", command = self.OnPreviewCharucoMarker).grid(row=1, column=0, sticky = tk.NSEW)
tk.Button(self.charucoMarkerUIFrame2, text = "Save", command = self.OnSaveCharucoMarker).grid(row=1, column=1, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="Save options:").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW)
tk.Label(self.charucoMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW)
self.charucoMarkerSaveSubSizeXStr = tk.StringVar()
self.charucoMarkerSaveSubSizeXStr.set("0")
self.charucoMarkerSaveSubSizeYStr = tk.StringVar()
self.charucoMarkerSaveSubSizeYStr.set("0")
self.charucoMarkerSavePageBorderXStr = tk.StringVar()
self.charucoMarkerSavePageBorderXStr.set("0.02")
self.charucoMarkerSavePageBorderYStr = tk.StringVar()
self.charucoMarkerSavePageBorderYStr.set("0.02")
tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW)
tk.Entry(self.charucoMarkerUIFrame2, textvariable=self.charucoMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW)
self.charucoMarkerDictionaryMenue['menu'].delete(0, 'end')
for dictName in self.dictList:
self.charucoMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.charucoMarkerDictionaryStr, dictName, self.OnSelectCharucoMarkerDictionary))
self.OnSelectCharucoMarkerDictionary("DICT_ARUCO_ORIGINAL")
def OnSelectArucoGridMarkerDictionary(self, pDictName):
self.arucoGridMarkerDictionaryStr.set(pDictName)
def OnPreviewOrSaveArucoGridMarker(self, askSave = False):
try:
markersX = int(self.arucoGridMarkerMarkersXStr.get())
markersY = int(self.arucoGridMarkerMarkersYStr.get())
markerLength = float(self.arucoGridMarkerMarkerLengthStr.get())
markerSeparation = float(self.arucoGridMarkerMarkerSeparationStr.get())
borderBits = int(self.arucoGridMarkerBorderBitsStr.get())
firstMarker = int(self.arucoGridMarkerFirstMarkerStr.get())
dictionary = self.arucoGridMarkerDictionaryStr.get()
subSizeX = int(self.arucoGridMarkerSaveSubSizeXStr.get())
subSizeY = int(self.arucoGridMarkerSaveSubSizeYStr.get())
pageBorderX = float(self.arucoGridMarkerSavePageBorderXStr.get())
pageBorderY = float(self.arucoGridMarkerSavePageBorderYStr.get())
except ValueError as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Enter invalid parameters")
return
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Fail to get parameters")
return
# Preview
try:
dpi=self.VisDPI(((markersY * markerLength + (markersY - 1) * markerSeparation + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (markersX * markerLength + (markersX - 1) * markerSeparation + pageBorderX * 2) * MarkerPrinter.ptPerMeter))
tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewArucoGridMarkerImage(dictionary, (markersX, markersY), markerLength, markerSeparation, firstMarker, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi))
self.arucoGridMarkerImageLabel.imgtk = tkImage
self.arucoGridMarkerImageLabel.config(image=tkImage)
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "create marker failed")
return
# Save
if(askSave):
MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenArucoGridMarkerImage, \
dictionary, (markersX, markersY), markerLength, markerSeparation, firstMarker, borderBits=borderBits, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY))
def OnPreviewArucoGridMarker(self):
self.OnPreviewOrSaveArucoGridMarker(askSave = False)
def OnSaveArucoGridMarker(self):
self.OnPreviewOrSaveArucoGridMarker(askSave = True)
def InitArucoGridMarkerTab(self):
self.arucoGridMarkerUIFrame = ttk.Frame(self.arucoGridMarkerTab)
self.arucoGridMarkerImageTab = ttk.Frame(self.arucoGridMarkerTab)
self.arucoGridMarkerUIFrame2 = ttk.Frame(self.arucoGridMarkerTab)
self.arucoGridMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW)
self.arucoGridMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW)
self.arucoGridMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW)
self.arucoGridMarkerImageLabel = tk.Label(self.arucoGridMarkerImageTab)
self.arucoGridMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="markersX").grid(row=0, column=1, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="markersY").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="markerSeparation (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="firstMarker").grid(row=0, column=5, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame, text="borderBits").grid(row=0, column=6, sticky = tk.NSEW)
self.arucoGridMarkerDictionaryStr = tk.StringVar()
self.arucoGridMarkerMarkersXStr = tk.StringVar()
self.arucoGridMarkerMarkersXStr.set("16")
self.arucoGridMarkerMarkersYStr = tk.StringVar()
self.arucoGridMarkerMarkersYStr.set("9")
self.arucoGridMarkerMarkerLengthStr = tk.StringVar()
self.arucoGridMarkerMarkerLengthStr.set("0.07")
self.arucoGridMarkerMarkerSeparationStr = tk.StringVar()
self.arucoGridMarkerMarkerSeparationStr.set("0.02")
self.arucoGridMarkerFirstMarkerStr = tk.StringVar()
self.arucoGridMarkerFirstMarkerStr.set("0")
self.arucoGridMarkerBorderBitsStr = tk.StringVar()
self.arucoGridMarkerBorderBitsStr.set("1")
self.arucoGridMarkerDictionaryMenue = tk.OptionMenu(self.arucoGridMarkerUIFrame, self.arucoGridMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectArucoGridMarkerDictionary)
self.arucoGridMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkersXStr).grid(row=1, column=1, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkersYStr).grid(row=1, column=2, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkerLengthStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerMarkerSeparationStr).grid(row=1, column=4, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerFirstMarkerStr).grid(row=1, column=5, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame, textvariable=self.arucoGridMarkerBorderBitsStr).grid(row=1, column=6, sticky = tk.NSEW)
tk.Button(self.arucoGridMarkerUIFrame2, text = "Preview", command = self.OnPreviewArucoGridMarker).grid(row=1, column=0, sticky = tk.NSEW)
tk.Button(self.arucoGridMarkerUIFrame2, text = "Save", command = self.OnSaveArucoGridMarker).grid(row=1, column=1, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="Save options:").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW)
tk.Label(self.arucoGridMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW)
self.arucoGridMarkerSaveSubSizeXStr = tk.StringVar()
self.arucoGridMarkerSaveSubSizeXStr.set("0")
self.arucoGridMarkerSaveSubSizeYStr = tk.StringVar()
self.arucoGridMarkerSaveSubSizeYStr.set("0")
self.arucoGridMarkerSavePageBorderXStr = tk.StringVar()
self.arucoGridMarkerSavePageBorderXStr.set("0.02")
self.arucoGridMarkerSavePageBorderYStr = tk.StringVar()
self.arucoGridMarkerSavePageBorderYStr.set("0.02")
tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW)
tk.Entry(self.arucoGridMarkerUIFrame2, textvariable=self.arucoGridMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW)
self.arucoGridMarkerDictionaryMenue['menu'].delete(0, 'end')
for dictName in self.dictList:
self.arucoGridMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.arucoGridMarkerDictionaryStr, dictName, self.OnSelectArucoGridMarkerDictionary))
self.OnSelectArucoGridMarkerDictionary("DICT_ARUCO_ORIGINAL")
def OnSelectArucoMarkerDictionary(self, pDictName):
self.arucoMarkerDictionaryStr.set(pDictName)
def OnPreviewOrSaveArucoMarker(self, askSave = False):
try:
markerID = int(self.arucoMarkerMarkerIDStr.get())
markerLength = float(self.arucoMarkerMarkerLengthStr.get())
borderBits = int(self.arucoMarkerBorderBitsStr.get())
dictionary = self.arucoMarkerDictionaryStr.get()
pageBorderX = float(self.arucoMarkerSavePageBorderXStr.get())
pageBorderY = float(self.arucoMarkerSavePageBorderYStr.get())
except ValueError as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Enter invalid parameters")
return
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Fail to get parameters")
return
# Preview
try:
dpi=self.VisDPI(((markerLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (markerLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter))
tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewArucoMarkerImage(dictionary, markerID, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY), dpi=dpi))
self.arucoMarkerImageLabel.imgtk = tkImage
self.arucoMarkerImageLabel.config(image=tkImage)
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "create marker failed")
return
# Save
if(askSave):
MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenArucoMarkerImage, \
dictionary, markerID, markerLength, borderBits=borderBits, pageBorder = (pageBorderX, pageBorderY))
def OnPreviewArucoMarker(self):
self.OnPreviewOrSaveArucoMarker(askSave = False)
def OnSaveArucoMarker(self):
self.OnPreviewOrSaveArucoMarker(askSave = True)
def InitArucoMarkerTab(self):
self.arucoMarkerUIFrame = ttk.Frame(self.arucoMarkerTab)
self.arucoMarkerImageTab = ttk.Frame(self.arucoMarkerTab)
self.arucoMarkerUIFrame2 = ttk.Frame(self.arucoMarkerTab)
self.arucoMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW)
self.arucoMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW)
self.arucoMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW)
self.arucoMarkerImageLabel = tk.Label(self.arucoMarkerImageTab)
self.arucoMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame, text="dictionary").grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame, text="markerID").grid(row=0, column=1, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame, text="markerLength (Unit: Meter)").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame, text="borderBits").grid(row=0, column=3, sticky = tk.NSEW)
self.arucoMarkerDictionaryStr = tk.StringVar()
self.arucoMarkerMarkerIDStr = tk.StringVar()
self.arucoMarkerMarkerIDStr.set("0")
self.arucoMarkerMarkerLengthStr = tk.StringVar()
self.arucoMarkerMarkerLengthStr.set("0.07")
self.arucoMarkerBorderBitsStr = tk.StringVar()
self.arucoMarkerBorderBitsStr.set("1")
self.arucoMarkerDictionaryMenue = tk.OptionMenu(self.arucoMarkerUIFrame, self.arucoMarkerDictionaryStr, "DICT_ARUCO_ORIGINAL", command = self.OnSelectArucoMarkerDictionary)
self.arucoMarkerDictionaryMenue.grid(row=1, column=0, sticky = tk.NSEW)
tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerMarkerIDStr).grid(row=1, column=1, sticky = tk.NSEW)
tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerMarkerLengthStr).grid(row=1, column=2, sticky = tk.NSEW)
tk.Entry(self.arucoMarkerUIFrame, textvariable=self.arucoMarkerBorderBitsStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Button(self.arucoMarkerUIFrame2, text = "Preview", command = self.OnPreviewArucoMarker).grid(row=0, column=0, sticky = tk.NSEW)
tk.Button(self.arucoMarkerUIFrame2, text = "Save", command = self.OnSaveArucoMarker).grid(row=0, column=1, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="Save options:").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="Border or page").grid(row=2, column=3, sticky = tk.NSEW)
tk.Label(self.arucoMarkerUIFrame2, text="Border or page").grid(row=2, column=4, sticky = tk.NSEW)
self.arucoMarkerSavePageBorderXStr = tk.StringVar()
self.arucoMarkerSavePageBorderXStr.set("0.02")
self.arucoMarkerSavePageBorderYStr = tk.StringVar()
self.arucoMarkerSavePageBorderYStr.set("0.02")
tk.Entry(self.arucoMarkerUIFrame2, textvariable=self.arucoMarkerSavePageBorderXStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.arucoMarkerUIFrame2, textvariable=self.arucoMarkerSavePageBorderYStr).grid(row=1, column=4, sticky = tk.NSEW)
self.arucoMarkerDictionaryMenue['menu'].delete(0, 'end')
for dictName in self.dictList:
self.arucoMarkerDictionaryMenue['menu'].add_command(label=dictName, command=tk._setit(self.arucoMarkerDictionaryStr, dictName, self.OnSelectArucoMarkerDictionary))
self.OnSelectArucoMarkerDictionary("DICT_ARUCO_ORIGINAL")
def OnPreviewOrSaveChessMarker(self, askSave = False):
try:
sizeX = int(self.chessMarkerChessboardSizeXStr.get())
sizeY = int(self.chessMarkerChessboardSizeYStr.get())
squareLength = float(self.chessMarkerSquareLengthStr.get())
subSizeX = int(self.chessMarkerSaveSubSizeXStr.get())
subSizeY = int(self.chessMarkerSaveSubSizeYStr.get())
pageBorderX = float(self.chessMarkerSavePageBorderXStr.get())
pageBorderY = float(self.chessMarkerSavePageBorderYStr.get())
except ValueError as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Enter invalid parameters")
return
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "Fail to get parameters")
return
# Preview
try:
dpi=self.VisDPI(((sizeY * squareLength + pageBorderY * 2) * MarkerPrinter.ptPerMeter, (sizeX * squareLength + pageBorderX * 2) * MarkerPrinter.ptPerMeter))
tkImage = PIL.ImageTk.PhotoImage(image = MarkerPrinter.PreviewChessMarkerImage((sizeX, sizeY), squareLength, pageBorder = (pageBorderX, pageBorderY), dpi=dpi))
self.chessMarkerImageLabel.imgtk = tkImage
self.chessMarkerImageLabel.config(image=tkImage)
except Exception as e:
warnings.warn(str(e))
messagebox.showinfo("Error", "create marker failed")
return
# Save
if(askSave):
MarkerPrinterGUI.__SaveMarker(MarkerPrinter.GenChessMarkerImage, \
(sizeX, sizeY), squareLength, subSize = (subSizeX, subSizeY), pageBorder = (pageBorderX, pageBorderY))
def OnPreviewChessMarker(self):
self.OnPreviewOrSaveChessMarker(askSave = False)
def OnSaveChessMarker(self):
self.OnPreviewOrSaveChessMarker(askSave = True)
def InitChessMarkerTab(self):
self.chessMarkerUIFrame = ttk.Frame(self.chessMarkerTab)
self.chessMarkerImageTab = ttk.Frame(self.chessMarkerTab)
self.chessMarkerUIFrame2 = ttk.Frame(self.chessMarkerTab)
self.chessMarkerUIFrame.grid(row=0, column=0, sticky = tk.NSEW)
self.chessMarkerImageTab.grid(row=1, column=0, sticky = tk.NSEW)
self.chessMarkerUIFrame2.grid(row=2, column=0, sticky = tk.NSEW)
self.chessMarkerImageLabel = tk.Label(self.chessMarkerImageTab)
self.chessMarkerImageLabel.grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame, text="chessboardSizeX").grid(row=0, column=0, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame, text="chessboardSizeY").grid(row=0, column=1, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame, text="squareLength (Unit: Meter)").grid(row=0, column=2, sticky = tk.NSEW)
self.chessMarkerChessboardSizeXStr = tk.StringVar()
self.chessMarkerChessboardSizeXStr.set("16")
self.chessMarkerChessboardSizeYStr = tk.StringVar()
self.chessMarkerChessboardSizeYStr.set("9")
self.chessMarkerSquareLengthStr = tk.StringVar()
self.chessMarkerSquareLengthStr.set("0.09")
tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerChessboardSizeXStr).grid(row=1, column=0, sticky = tk.NSEW)
tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerChessboardSizeYStr).grid(row=1, column=1, sticky = tk.NSEW)
tk.Entry(self.chessMarkerUIFrame, textvariable=self.chessMarkerSquareLengthStr).grid(row=1, column=2, sticky = tk.NSEW)
tk.Button(self.chessMarkerUIFrame2, text = "Preview", command = self.OnPreviewChessMarker).grid(row=1, column=0, sticky = tk.NSEW)
tk.Button(self.chessMarkerUIFrame2, text = "Save", command = self.OnSaveChessMarker).grid(row=1, column=1, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="Save options:").grid(row=0, column=2, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="(set 0 as disable)").grid(row=1, column=2, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="subSizeX").grid(row=0, column=3, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="subSizeY").grid(row=0, column=4, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="Divide to chunks, chunk sizeX").grid(row=2, column=3, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="Divide to chunks, chunk sizeY").grid(row=2, column=4, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="pageBorderX (Unit: Meter)").grid(row=0, column=5, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="pageBorderY (Unit: Meter)").grid(row=0, column=6, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="Border or page").grid(row=2, column=5, sticky = tk.NSEW)
tk.Label(self.chessMarkerUIFrame2, text="Border or page").grid(row=2, column=6, sticky = tk.NSEW)
self.chessMarkerSaveSubSizeXStr = tk.StringVar()
self.chessMarkerSaveSubSizeXStr.set("0")
self.chessMarkerSaveSubSizeYStr = tk.StringVar()
self.chessMarkerSaveSubSizeYStr.set("0")
self.chessMarkerSavePageBorderXStr = tk.StringVar()
self.chessMarkerSavePageBorderXStr.set("0.02")
self.chessMarkerSavePageBorderYStr = tk.StringVar()
self.chessMarkerSavePageBorderYStr.set("0.02")
tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSaveSubSizeXStr).grid(row=1, column=3, sticky = tk.NSEW)
tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSaveSubSizeYStr).grid(row=1, column=4, sticky = tk.NSEW)
tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSavePageBorderXStr).grid(row=1, column=5, sticky = tk.NSEW)
tk.Entry(self.chessMarkerUIFrame2, textvariable=self.chessMarkerSavePageBorderYStr).grid(row=1, column=6, sticky = tk.NSEW)
def Update(self):
time.sleep(0)
self.window.after(self.delay, self.Update)
def __init__(self, pDelay=15, pDisplayShape=(int(400), int(1200))):
self.delay = pDelay
self.displayShape = pDisplayShape
self.dictList = MarkerPrinter.arucoDictBytesList.keys()
# GUI
self.window = tk.Tk()
self.notebook = ttk.Notebook(self.window)
self.notebook.grid(row=0, column=0, sticky = tk.NSEW)
self.window.title("MarkerPrinterGUI")
self.window.config(cursor="arrow")
self.window.protocol("WM_DELETE_WINDOW", self.OnCloseWindow)
# Menues
self.menu = tk.Menu(self.window)
self.helpMenu = tk.Menu(self.menu, tearoff=0)
self.menu.add_cascade(label="Help", menu=self.helpMenu)
self.helpMenu.add_command(label="Github", command=self.OnShowingHelpGithub)
self.helpMenu.add_command(label="DEBUG_LINE_MODE", command=self.On_DEBUG_LINE_MODE)
self.helpMenu.add_command(label="DEBUG_BLOCK_MODE", command=self.On_DEBUG_BLOCK_MODE)
self.helpMenu.add_command(label="CLOSE_DEBUG_MODE", command=self.On_CLOSE_DEBUG_MODE)
self.window.config(menu=self.menu)
self.charucoMarkerTab = ttk.Frame(self.notebook)
self.arucoMarkerTab = ttk.Frame(self.notebook)
self.arucoGridMarkerTab = ttk.Frame(self.notebook)
self.chessMarkerTab = ttk.Frame(self.notebook)
self.notebook.add(self.charucoMarkerTab, text='ChArUco Marker')
self.notebook.add(self.arucoMarkerTab, text='ArUco Marker')
self.notebook.add(self.arucoGridMarkerTab, text='ArUcoGrid Marker')
self.notebook.add(self.chessMarkerTab, text='Chessboard Marker')
self.InitCharucoMarkerTab()
self.InitArucoMarkerTab()
self.InitArucoGridMarkerTab()
self.InitChessMarkerTab()
self.Update()
self.window.mainloop()
def On_DEBUG_LINE_MODE(self):
messagebox.showinfo("Note", "You enabled the debug mode: \"LINE\"")
MarkerPrinter.debugMode = "LINE"
def On_DEBUG_BLOCK_MODE(self):
messagebox.showinfo("Note", "You enabled the debug mode: \"BLOCK\"")
MarkerPrinter.debugMode = "BLOCK"
def On_CLOSE_DEBUG_MODE(self):
messagebox.showinfo("Note", "You closed the debug mode")
MarkerPrinter.debugMode = None
if __name__ == '__main__':
MarkerPrinterGUI()

@ -1,68 +0,0 @@
# OpenCVMarkerPrinter
## Description
This small app can save some commonly used opencv markers such as ArUco, ArUcoGrid, Chessboard and ChArUco to vector graphics file. **Supported vector graphics file format: .svg, .pdf and .ps.**
<img src="./doc/images/MarkerPrinterGUI.jpg" height="160" />
### Dependencies
#### MarkerPrinter
* numpy
* PIL(Pillow, for image processing)
* cairo(for drawing vector graphic)
* cairosvg(for svg to png)
#### MarkerPrinterGUI
* tkinter(for GUI)
## Tutorial
#### GUI
```
python MarkerPrinterGUI.py
```
You can switch ArUco, ArUcoGrid, Chessboard and ChArUco mode at the GUI tab, then you can select dictionary from the GUI menu and modify board shape, marker size, border width... etc. at the GUI entry, finally click the preview or save button to show the marker image on the GUI window or save it to file.
#### Command-Line
##### Print help
```
python MarkerPrinter.py
```
##### Print predefined dictionary list
```
python MarkerPrinter.py --list_dictionary
```
##### Save chessboard
```
python MarkerPrinter.py --chess --file "./chess.pdf" --size_x 16 --size_y 9 --square_length 0.09
```
##### Save ArUco
```
python MarkerPrinter.py --aruco --file "./aruco.pdf" --dictionary DICT_ARUCO_ORIGINAL --marker_length 0.07 --marker_id 0 --border_bits 1
```
##### Save ArUco Grid
```
python MarkerPrinter.py --aruco_grid --file "./aruco_grid.pdf" --dictionary DICT_ARUCO_ORIGINAL --size_x 16 --size_y 9 --marker_length 0.07 --marker_separation 0.02 --first_marker 0 --border_bits 1
```
##### Save ChArUco
```
python MarkerPrinter.py --charuco --file "./charuco.pdf" --dictionary DICT_ARUCO_ORIGINAL --size_x 16 --size_y 9 --square_length 0.09 --marker_length 0.07 --border_bits 1
```
## Useful Options:
### Divde output to chunks
If you are using consumer level printer, you will suffer from not able printing too large marker, so just set chunks shape at the GUI subSize entry before saving the marker to files, it will divide output marker to chunks. If you are using command-line interface, just add --sub_size_x x --sub_size_y y as parameters.
### Page border
If you are printing the image directly, you will need add page border to protect the marker, so just set page border at the GUI pageBorder entry before saving the marker to files. If you are using command-line interface, just add --page_border_x x --page_border_y y as parameters.
### Generate aruco data:
Although there is a built-in aruco dictionary data, but if you want to update the dictionary(If aruco update predefined dictionary list), just install opencv-python and opencv-contrib-python, and than run
```
python MarkerPrinter.py --generate arucoDictBytesList.npz
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

@ -1,39 +0,0 @@
#!/usr/bin/env python
# Python 2/3 compatibility
from __future__ import print_function
import os, numpy as np
import cv2 as cv
from tests_common import NewOpenCVTests
class aruco_test(NewOpenCVTests):
def test_aruco_detect_markers(self):
aruco_params = cv.aruco.DetectorParameters()
aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_250)
id = 2
marker_size = 100
offset = 10
img_marker = cv.aruco.generateImageMarker(aruco_dict, id, marker_size, aruco_params.markerBorderBits)
img_marker = np.pad(img_marker, pad_width=offset, mode='constant', constant_values=255)
gold_corners = np.array([[offset, offset],[marker_size+offset-1.0,offset],
[marker_size+offset-1.0,marker_size+offset-1.0],
[offset, marker_size+offset-1.0]], dtype=np.float32)
expected_corners, expected_ids, expected_rejected = cv.aruco.detectMarkers(img_marker, aruco_dict,
parameters=aruco_params)
self.assertEqual(1, len(expected_ids))
self.assertEqual(id, expected_ids[0])
for i in range(0, len(expected_corners)):
np.testing.assert_array_equal(gold_corners, expected_corners[i].reshape(4, 2))
def test_drawCharucoDiamond(self):
aruco_dict = cv.aruco.getPredefinedDictionary(cv.aruco.DICT_4X4_50)
img = cv.aruco.drawCharucoDiamond(aruco_dict, np.array([0, 1, 2, 3]), 100, 80)
self.assertTrue(img is not None)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()

@ -1,143 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#include "precomp.hpp"
#include "opencv2/aruco.hpp"
#include <opencv2/calib3d.hpp>
#include <opencv2/core/utils/logger.hpp>
namespace cv {
namespace aruco {
using namespace std;
void detectMarkers(InputArray _image, const Ptr<Dictionary> &_dictionary, OutputArrayOfArrays _corners,
OutputArray _ids, const Ptr<DetectorParameters> &_params,
OutputArrayOfArrays _rejectedImgPoints) {
ArucoDetector detector(*_dictionary, *_params);
detector.detectMarkers(_image, _corners, _ids, _rejectedImgPoints);
}
void refineDetectedMarkers(InputArray _image, const Ptr<Board> &_board,
InputOutputArrayOfArrays _detectedCorners, InputOutputArray _detectedIds,
InputOutputArrayOfArrays _rejectedCorners, InputArray _cameraMatrix,
InputArray _distCoeffs, float minRepDistance, float errorCorrectionRate,
bool checkAllOrders, OutputArray _recoveredIdxs,
const Ptr<DetectorParameters> &_params) {
RefineParameters refineParams(minRepDistance, errorCorrectionRate, checkAllOrders);
ArucoDetector detector(_board->getDictionary(), *_params, refineParams);
detector.refineDetectedMarkers(_image, *_board, _detectedCorners, _detectedIds, _rejectedCorners, _cameraMatrix,
_distCoeffs, _recoveredIdxs);
}
void drawPlanarBoard(const Ptr<Board> &board, Size outSize, const _OutputArray &img, int marginSize, int borderBits) {
board->generateImage(outSize, img, marginSize, borderBits);
}
void getBoardObjectAndImagePoints(const Ptr<Board> &board, InputArrayOfArrays detectedCorners, InputArray detectedIds,
OutputArray objPoints, OutputArray imgPoints) {
board->matchImagePoints(detectedCorners, detectedIds, objPoints, imgPoints);
}
int estimatePoseBoard(InputArrayOfArrays corners, InputArray ids, const Ptr<Board> &board,
InputArray cameraMatrix, InputArray distCoeffs, InputOutputArray rvec,
InputOutputArray tvec, bool useExtrinsicGuess) {
CV_Assert(corners.total() == ids.total());
// get object and image points for the solvePnP function
Mat objPoints, imgPoints;
board->matchImagePoints(corners, ids, objPoints, imgPoints);
CV_Assert(imgPoints.total() == objPoints.total());
if(objPoints.total() == 0) // 0 of the detected markers in board
return 0;
solvePnP(objPoints, imgPoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess);
// divide by four since all the four corners are concatenated in the array for each marker
return (int)objPoints.total() / 4;
}
bool estimatePoseCharucoBoard(InputArray charucoCorners, InputArray charucoIds,
const Ptr<CharucoBoard> &board, InputArray cameraMatrix,
InputArray distCoeffs, InputOutputArray rvec,
InputOutputArray tvec, bool useExtrinsicGuess) {
CV_Assert((charucoCorners.getMat().total() == charucoIds.getMat().total()));
if(charucoIds.getMat().total() < 4) return false;
// get object and image points for the solvePnP function
Mat objPoints, imgPoints;
board->matchImagePoints(charucoCorners, charucoIds, objPoints, imgPoints);
try {
solvePnP(objPoints, imgPoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess);
}
catch (const cv::Exception& e) {
CV_LOG_WARNING(NULL, "estimatePoseCharucoBoard: " << std::endl << e.what());
return false;
}
return objPoints.total() > 0ull;
}
bool testCharucoCornersCollinear(const Ptr<CharucoBoard> &board, InputArray charucoIds) {
return board->checkCharucoCornersCollinear(charucoIds);
}
/**
* @brief Return object points for the system centered in a middle (by default) or in a top left corner of single
* marker, given the marker length
*/
static Mat _getSingleMarkerObjectPoints(float markerLength, const EstimateParameters& estimateParameters) {
CV_Assert(markerLength > 0);
Mat objPoints(4, 1, CV_32FC3);
// set coordinate system in the top-left corner of the marker, with Z pointing out
if (estimateParameters.pattern == ARUCO_CW_TOP_LEFT_CORNER) {
objPoints.ptr<Vec3f>(0)[0] = Vec3f(0.f, 0.f, 0);
objPoints.ptr<Vec3f>(0)[1] = Vec3f(markerLength, 0.f, 0);
objPoints.ptr<Vec3f>(0)[2] = Vec3f(markerLength, markerLength, 0);
objPoints.ptr<Vec3f>(0)[3] = Vec3f(0.f, markerLength, 0);
}
else if (estimateParameters.pattern == ARUCO_CCW_CENTER) {
objPoints.ptr<Vec3f>(0)[0] = Vec3f(-markerLength/2.f, markerLength/2.f, 0);
objPoints.ptr<Vec3f>(0)[1] = Vec3f(markerLength/2.f, markerLength/2.f, 0);
objPoints.ptr<Vec3f>(0)[2] = Vec3f(markerLength/2.f, -markerLength/2.f, 0);
objPoints.ptr<Vec3f>(0)[3] = Vec3f(-markerLength/2.f, -markerLength/2.f, 0);
}
else
CV_Error(Error::StsBadArg, "Unknown estimateParameters pattern");
return objPoints;
}
void estimatePoseSingleMarkers(InputArrayOfArrays _corners, float markerLength,
InputArray _cameraMatrix, InputArray _distCoeffs,
OutputArray _rvecs, OutputArray _tvecs, OutputArray _objPoints,
const Ptr<EstimateParameters>& estimateParameters) {
CV_Assert(markerLength > 0);
Mat markerObjPoints = _getSingleMarkerObjectPoints(markerLength, *estimateParameters);
int nMarkers = (int)_corners.total();
_rvecs.create(nMarkers, 1, CV_64FC3);
_tvecs.create(nMarkers, 1, CV_64FC3);
Mat rvecs = _rvecs.getMat(), tvecs = _tvecs.getMat();
//// for each marker, calculate its pose
parallel_for_(Range(0, nMarkers), [&](const Range& range) {
const int begin = range.start;
const int end = range.end;
for (int i = begin; i < end; i++) {
solvePnP(markerObjPoints, _corners.getMat(i), _cameraMatrix, _distCoeffs, rvecs.at<Vec3d>(i),
tvecs.at<Vec3d>(i), estimateParameters->useExtrinsicGuess, estimateParameters->solvePnPMethod);
}
});
if(_objPoints.needed()){
markerObjPoints.convertTo(_objPoints, -1);
}
}
}
}

@ -1,98 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#include <opencv2/aruco/aruco_calib.hpp>
#include <opencv2/calib3d.hpp>
namespace cv {
namespace aruco {
using namespace std;
EstimateParameters::EstimateParameters() : pattern(ARUCO_CCW_CENTER), useExtrinsicGuess(false),
solvePnPMethod(SOLVEPNP_ITERATIVE) {}
double calibrateCameraAruco(InputArrayOfArrays _corners, InputArray _ids, InputArray _counter,
const Ptr<Board> &board, Size imageSize, InputOutputArray _cameraMatrix,
InputOutputArray _distCoeffs, OutputArrayOfArrays _rvecs,
OutputArrayOfArrays _tvecs,
OutputArray _stdDeviationsIntrinsics,
OutputArray _stdDeviationsExtrinsics,
OutputArray _perViewErrors,
int flags, const TermCriteria& criteria) {
// for each frame, get properly processed imagePoints and objectPoints for the calibrateCamera
// function
vector<Mat> processedObjectPoints, processedImagePoints;
size_t nFrames = _counter.total();
int markerCounter = 0;
for(size_t frame = 0; frame < nFrames; frame++) {
int nMarkersInThisFrame = _counter.getMat().ptr< int >()[frame];
vector<Mat> thisFrameCorners;
vector<int> thisFrameIds;
CV_Assert(nMarkersInThisFrame > 0);
thisFrameCorners.reserve((size_t) nMarkersInThisFrame);
thisFrameIds.reserve((size_t) nMarkersInThisFrame);
for(int j = markerCounter; j < markerCounter + nMarkersInThisFrame; j++) {
thisFrameCorners.push_back(_corners.getMat(j));
thisFrameIds.push_back(_ids.getMat().ptr< int >()[j]);
}
markerCounter += nMarkersInThisFrame;
Mat currentImgPoints, currentObjPoints;
board->matchImagePoints(thisFrameCorners, thisFrameIds, currentObjPoints,
currentImgPoints);
if(currentImgPoints.total() > 0 && currentObjPoints.total() > 0) {
processedImagePoints.push_back(currentImgPoints);
processedObjectPoints.push_back(currentObjPoints);
}
}
return calibrateCamera(processedObjectPoints, processedImagePoints, imageSize, _cameraMatrix, _distCoeffs, _rvecs,
_tvecs, _stdDeviationsIntrinsics, _stdDeviationsExtrinsics, _perViewErrors, flags, criteria);
}
double calibrateCameraAruco(InputArrayOfArrays _corners, InputArray _ids, InputArray _counter, const Ptr<Board> &board,
Size imageSize, InputOutputArray _cameraMatrix, InputOutputArray _distCoeffs,
OutputArrayOfArrays _rvecs, OutputArrayOfArrays _tvecs, int flags, const TermCriteria& criteria) {
return calibrateCameraAruco(_corners, _ids, _counter, board, imageSize, _cameraMatrix, _distCoeffs,
_rvecs, _tvecs, noArray(), noArray(), noArray(), flags, criteria);
}
double calibrateCameraCharuco(InputArrayOfArrays _charucoCorners, InputArrayOfArrays _charucoIds,
const Ptr<CharucoBoard> &_board, Size imageSize,
InputOutputArray _cameraMatrix, InputOutputArray _distCoeffs,
OutputArrayOfArrays _rvecs, OutputArrayOfArrays _tvecs,
OutputArray _stdDeviationsIntrinsics,
OutputArray _stdDeviationsExtrinsics,
OutputArray _perViewErrors,
int flags, const TermCriteria& criteria) {
CV_Assert(_charucoIds.total() > 0 && (_charucoIds.total() == _charucoCorners.total()));
// Join object points of charuco corners in a single vector for calibrateCamera() function
vector<vector<Point3f> > allObjPoints;
allObjPoints.resize(_charucoIds.total());
for(unsigned int i = 0; i < _charucoIds.total(); i++) {
unsigned int nCorners = (unsigned int)_charucoIds.getMat(i).total();
CV_Assert(nCorners > 0 && nCorners == _charucoCorners.getMat(i).total());
allObjPoints[i].reserve(nCorners);
for(unsigned int j = 0; j < nCorners; j++) {
int pointId = _charucoIds.getMat(i).at< int >(j);
CV_Assert(pointId >= 0 && pointId < (int)_board->getChessboardCorners().size());
allObjPoints[i].push_back(_board->getChessboardCorners()[pointId]);
}
}
return calibrateCamera(allObjPoints, _charucoCorners, imageSize, _cameraMatrix, _distCoeffs, _rvecs, _tvecs,
_stdDeviationsIntrinsics, _stdDeviationsExtrinsics, _perViewErrors, flags, criteria);
}
double calibrateCameraCharuco(InputArrayOfArrays _charucoCorners, InputArrayOfArrays _charucoIds,
const Ptr<CharucoBoard> &_board, Size imageSize, InputOutputArray _cameraMatrix,
InputOutputArray _distCoeffs, OutputArrayOfArrays _rvecs, OutputArrayOfArrays _tvecs,
int flags, const TermCriteria& criteria) {
return calibrateCameraCharuco(_charucoCorners, _charucoIds, _board, imageSize, _cameraMatrix, _distCoeffs, _rvecs,
_tvecs, noArray(), noArray(), noArray(), flags, criteria);
}
}
}

@ -1,62 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#include "precomp.hpp"
#include <opencv2/calib3d.hpp>
#include "opencv2/aruco/charuco.hpp"
#include <opencv2/imgproc.hpp>
namespace cv {
namespace aruco {
using namespace std;
int interpolateCornersCharuco(InputArrayOfArrays _markerCorners, InputArray _markerIds,
InputArray _image, const Ptr<CharucoBoard> &_board,
OutputArray _charucoCorners, OutputArray _charucoIds,
InputArray _cameraMatrix, InputArray _distCoeffs, int minMarkers) {
CharucoParameters params;
params.minMarkers = minMarkers;
params.cameraMatrix = _cameraMatrix.getMat();
params.distCoeffs = _distCoeffs.getMat();
CharucoDetector detector(*_board, params);
vector<Mat> markerCorners;
_markerCorners.getMatVector(markerCorners);
detector.detectBoard(_image, _charucoCorners, _charucoIds, markerCorners, _markerIds.getMat());
return (int)_charucoIds.total();
}
void detectCharucoDiamond(InputArray _image, InputArrayOfArrays _markerCorners, InputArray _markerIds,
float squareMarkerLengthRate, OutputArrayOfArrays _diamondCorners, OutputArray _diamondIds,
InputArray _cameraMatrix, InputArray _distCoeffs, Ptr<Dictionary> dictionary) {
CharucoParameters params;
params.cameraMatrix = _cameraMatrix.getMat();
params.distCoeffs = _distCoeffs.getMat();
CharucoBoard board({3, 3}, squareMarkerLengthRate, 1.f, *dictionary);
CharucoDetector detector(board, params);
vector<Mat> markerCorners;
_markerCorners.getMatVector(markerCorners);
detector.detectDiamonds(_image, _diamondCorners, _diamondIds, markerCorners, _markerIds.getMat());
}
void drawCharucoDiamond(const Ptr<Dictionary> &dictionary, Vec4i ids, int squareLength, int markerLength,
OutputArray _img, int marginSize, int borderBits) {
CV_Assert(squareLength > 0 && markerLength > 0 && squareLength > markerLength);
CV_Assert(marginSize >= 0 && borderBits > 0);
// assign the charuco marker ids
vector<int> tmpIds(4);
for(int i = 0; i < 4; i++)
tmpIds[i] = ids[i];
// create a charuco board similar to a charuco marker and print it
CharucoBoard board(Size(3, 3), (float)squareLength, (float)markerLength, *dictionary, tmpIds);
Size outSize(3 * squareLength + 2 * marginSize, 3 * squareLength + 2 * marginSize);
board.generateImage(outSize, _img, marginSize, borderBits);
}
}
}

@ -1,11 +0,0 @@
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html
#ifndef __OPENCV_CCALIB_PRECOMP__
#define __OPENCV_CCALIB_PRECOMP__
#include <opencv2/core.hpp>
#include <vector>
#endif

@ -1,2 +1,2 @@
set(the_description "Background Segmentation Algorithms")
ocv_define_module(bgsegm opencv_core opencv_imgproc opencv_video opencv_calib3d WRAP python java objc)
ocv_define_module(bgsegm opencv_core opencv_imgproc opencv_video opencv_3d WRAP python java objc)

@ -50,7 +50,7 @@
*/
#include "precomp.hpp"
#include <opencv2/calib3d.hpp>
#include <opencv2/3d.hpp>
#include <iostream>
#include "opencv2/core/cvdef.h"

@ -390,7 +390,7 @@ bool RetinaOCLImpl::convertToColorPlanes(const UMat& input, UMat &output)
}
else
{
CV_Error(-1, "Retina ocl only support 1, 3, 4 channel input");
CV_Error(cv::Error::StsError, "Retina ocl only support 1, 3, 4 channel input");
}
}
void RetinaOCLImpl::convertToInterleaved(const UMat& input, bool colorMode, UMat &output)

@ -107,7 +107,7 @@ public:
// basic error check
if (nbPixels <= 0)
throw cv::Exception(-1, "Bad retina size setup : size height and with must be superior to zero", "RetinaImpl::setup", "retinafasttonemapping.cpp", 0);
CV_Error(cv::Error::StsError, "Bad retina size setup : size height and with must be superior to zero");
// resize buffers
_inputBuffer.resize(nbPixels*3); // buffer supports gray images but also 3 channels color buffers... (larger is better...)
@ -222,7 +222,7 @@ bool _convertCvMat2ValarrayBuffer(InputArray inputMat, std::valarray<float> &out
const Mat inputMatToConvert=inputMat.getMat();
// first check input consistency
if (inputMatToConvert.empty())
throw cv::Exception(-1, "RetinaImpl cannot be applied, input buffer is empty", "RetinaImpl::run", "RetinaImpl.h", 0);
CV_Error(cv::Error::StsError, "RetinaImpl cannot be applied, input buffer is empty");
// retreive color mode from image input
int imageNumberOfChannels = inputMatToConvert.channels();

@ -413,17 +413,17 @@ void TransientAreasSegmentationModuleImpl::run(InputArray inputToProcess, const
// preliminary basic error check
if ( (inputToSegment.rows*inputToSegment.cols) != (int)_inputToSegment.size())
{
std::stringstream errorMsg;
errorMsg<<"Input matrix size does not match instance buffers setup !"
<<"\n\t Input size is : "<<inputToSegment.rows*inputToSegment.cols
<<"\n\t v.s. internalBuffer size is : "<< _inputToSegment.size();
throw cv::Exception(-1, errorMsg.str().c_str(), "SegmentationModule::run", "SegmentationModule.cpp", 0);
std::stringstream errorMsg;
errorMsg<<"Input matrix size does not match instance buffers setup !"
<<"\n\t Input size is : "<<inputToSegment.rows*inputToSegment.cols
<<"\n\t v.s. internalBuffer size is : "<< _inputToSegment.size();
CV_Error(cv::Error::StsError, errorMsg.str().c_str());
}
if (channelIndex >= inputToSegment.channels())
{
std::stringstream errorMsg;
errorMsg<<"Cannot access channel index "<<channelIndex<<" on the input matrix with channels quantity = "<<inputToSegment.channels();
throw cv::Exception(-1, errorMsg.str().c_str(), "SegmentationModule::run", "SegmentationModule.cpp", 0);
std::stringstream errorMsg;
errorMsg<<"Cannot access channel index "<<channelIndex<<" on the input matrix with channels quantity = "<<inputToSegment.channels();
CV_Error(cv::Error::StsError, errorMsg.str().c_str());
}
// create a cv::Mat header for the input valarray
@ -538,7 +538,7 @@ bool TransientAreasSegmentationModuleImpl::_convertCvMat2ValarrayBuffer(InputArr
const Mat inputMatToConvert=inputMat.getMat();
// first check input consistency
if (inputMatToConvert.empty())
throw cv::Exception(-1, "RetinaImpl cannot be applied, input buffer is empty", "RetinaImpl::run", "RetinaImpl.h", 0);
CV_Error(cv::Error::StsError, "RetinaImpl cannot be applied, input buffer is empty");
// retreive color mode from image input
int imageNumberOfChannels = inputMatToConvert.channels();

@ -1,2 +1,2 @@
set(the_description "Custom Calibration Pattern")
ocv_define_module(ccalib opencv_core opencv_imgproc opencv_calib3d opencv_features2d opencv_highgui opencv_imgcodecs WRAP python)
ocv_define_module(ccalib opencv_core opencv_imgproc opencv_3d opencv_calib opencv_features opencv_xfeatures2d opencv_highgui opencv_imgcodecs WRAP python)

@ -43,9 +43,9 @@
#define __OPENCV_CCALIB_HPP__
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/calib3d.hpp>
#include <opencv2/3d.hpp>
#include <vector>

@ -132,8 +132,8 @@ public:
MultiCameraCalibration(int cameraType, int nCameras, const std::string& fileName, float patternWidth,
float patternHeight, int verbose = 0, int showExtration = 0, int nMiniMatches = 20, int flags = 0,
TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 200, 1e-7),
Ptr<FeatureDetector> detector = AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f),
Ptr<DescriptorExtractor> descriptor = AKAZE::create(AKAZE::DESCRIPTOR_MLDB,0, 3, 0.006f),
Ptr<FeatureDetector> detector = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f),
Ptr<DescriptorExtractor> descriptor = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB,0, 3, 0.006f),
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce-L1"));
/* @brief load images

@ -42,7 +42,8 @@
#ifndef __OPENCV_RANDOMPATTERN_HPP__
#define __OPENCV_RANDOMPATTERN_HPP__
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "opencv2/xfeatures2d.hpp"
#include "opencv2/highgui.hpp"
namespace cv { namespace randpattern {
@ -79,8 +80,8 @@ public:
*/
RandomPatternCornerFinder(float patternWidth, float patternHeight,
int nminiMatch = 20, int depth = CV_32F, int verbose = 0, int showExtraction = 0,
Ptr<FeatureDetector> detector = AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.005f),
Ptr<DescriptorExtractor> descriptor = AKAZE::create(AKAZE::DESCRIPTOR_MLDB,0, 3, 0.005f),
Ptr<FeatureDetector> detector = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.005f),
Ptr<DescriptorExtractor> descriptor = xfeatures2d::AKAZE::create(xfeatures2d::AKAZE::DESCRIPTOR_MLDB,0, 3, 0.005f),
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce-L1"));
/* @brief Load pattern image and compute features for pattern

@ -1,7 +1,8 @@
#include "opencv2/ccalib/omnidir.hpp"
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/calib.hpp"
#include "opencv2/highgui.hpp"
#include <vector>
#include <iostream>

@ -2,7 +2,8 @@
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/calib.hpp"
#include <vector>
#include <iostream>
#include <string>

@ -1,7 +1,8 @@
#include "opencv2/ccalib/randpattern.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/calib.hpp"
#include <vector>
#include <iostream>
#include <time.h>

@ -47,10 +47,10 @@
#include "opencv2/ccalib.hpp"
#include <opencv2/core.hpp>
#include <opencv2/core/types_c.h> // CV_TERM
#include <opencv2/imgproc.hpp>
#include <opencv2/calib3d.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/3d.hpp>
#include <opencv2/calib.hpp>
#include <opencv2/features.hpp>
#include <vector>
#include <cstring>
@ -221,7 +221,7 @@ void CustomPattern::refinePointsPos(const Mat& img, vector<Point2f>& p)
Mat gray;
cvtColor(img, gray, COLOR_RGB2GRAY);
cornerSubPix(gray, p, Size(10, 10), Size(-1, -1),
TermCriteria(CV_TERMCRIT_ITER + CV_TERMCRIT_EPS, 30, 0.1));
TermCriteria(cv::TermCriteria::MAX_ITER + cv::TermCriteria::EPS, 30, 0.1));
}

@ -225,7 +225,7 @@ void MultiCameraCalibration::loadImages()
_xi[camera].convertTo(_xi[camera], CV_32F);
//else
//{
// CV_Error_(CV_StsOutOfRange, "Unknown camera type, use PINHOLE or OMNIDIRECTIONAL");
// CV_Error_(cv::Error::StsOutOfRange, "Unknown camera type, use PINHOLE or OMNIDIRECTIONAL");
//}
for (int i = 0; i < (int)_omEachCamera[camera].size(); ++i)

@ -58,6 +58,7 @@
*/
#include "precomp.hpp"
#include "opencv2/ccalib/omnidir.hpp"
#include "opencv2/stereo.hpp"
#include <fstream>
#include <iostream>
namespace cv { namespace

@ -44,8 +44,10 @@
#define __OPENCV_PRECOMP_H__
#include <opencv2/core.hpp>
#include <opencv2/calib3d.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/3d.hpp>
#include <opencv2/calib.hpp>
#include <opencv2/features.hpp>
#include "opencv2/xfeatures2d.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"

@ -17,7 +17,7 @@ This tutorial will introduce the following parts of omnidirectional camera calib
- calibrate a stereo pair of cameras.
- rectify images so that large distoration is removed.
- reconstruct 3D from two stereo images, with large filed of view.
- comparison with fisheye model in opencv/calib3d/
- comparison with fisheye model in opencv/calib/
Single Camera Calibration
---------------------

@ -39,7 +39,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${Caffe_INCLUDE_DIR})
set(the_description "CNN for 3D object recognition and pose estimation including a completed Sphere View on 3D objects")
ocv_define_module(cnn_3dobj opencv_core opencv_imgproc ${Caffe_LIBS} ${Glog_LIBS} ${Protobuf_LIBS} OPTIONAL opencv_features2d opencv_viz opencv_calib3d WRAP python)
ocv_define_module(cnn_3dobj opencv_core opencv_imgproc ${Caffe_LIBS} ${Glog_LIBS} ${Protobuf_LIBS} OPTIONAL opencv_features opencv_viz opencv_3d WRAP python)
ocv_add_testdata(testdata/cv contrib/cnn_3dobj)
if(TARGET opencv_test_cnn_3dobj)

@ -38,7 +38,7 @@
* @author Yida Wang
*/
#include <opencv2/cnn_3dobj.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <iomanip>
using namespace cv;
using namespace std;

@ -1,9 +1,9 @@
#include <opencv2/viz/vizcore.hpp>
#include <opencv2/calib3d.hpp>
#include <opencv2/3d.hpp>
#include <iostream>
#include <fstream>
#include <opencv2/cnn_3dobj.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <iomanip>
using namespace cv;
using namespace std;

@ -54,16 +54,12 @@ using namespace cv::cudacodec::detail;
static std::string fourccToString(int fourcc)
{
union {
int u32;
unsigned char c[4];
} i32_c;
i32_c.u32 = fourcc;
return cv::format("%c%c%c%c",
(i32_c.c[0] >= ' ' && i32_c.c[0] < 128) ? i32_c.c[0] : '?',
(i32_c.c[1] >= ' ' && i32_c.c[1] < 128) ? i32_c.c[1] : '?',
(i32_c.c[2] >= ' ' && i32_c.c[2] < 128) ? i32_c.c[2] : '?',
(i32_c.c[3] >= ' ' && i32_c.c[3] < 128) ? i32_c.c[3] : '?');
char str[5] = {'\0', '\0', '\0', '\0'};
for (int i = 0; i < 4; i++) {
char c = (char)(fourcc >> i*8);
str[i] = ' ' <= c && c < 128 ? c : '?';
}
return std::string(str);
}
static

@ -8,4 +8,4 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4100 /wd4324 /wd4512 /wd4515 -Wu
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
endif()
ocv_define_module(cudafeatures2d opencv_features2d opencv_cudafilters opencv_cudawarping WRAP python)
ocv_define_module(cudafeatures2d opencv_features opencv_cudafilters opencv_cudawarping WRAP python)

@ -48,7 +48,7 @@
#endif
#include "opencv2/core/cuda.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "opencv2/cudafilters.hpp"
/**

@ -46,7 +46,7 @@
#include "opencv2/ts/cuda_perf.hpp"
#include "opencv2/cudafeatures2d.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
namespace opencv_test {
using namespace perf;

@ -50,7 +50,7 @@
#include "opencv2/cudafeatures2d.hpp"
#include "opencv2/cudaarithm.hpp"
#include "opencv2/cudawarping.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "opencv2/core/private.cuda.hpp"

@ -46,7 +46,7 @@
#include "opencv2/ts/cuda_test.hpp"
#include "opencv2/cudafeatures2d.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "cvconfig.h"

@ -107,7 +107,6 @@ CUDA_TEST_P(HistEven, Accuracy)
Mat srcRoi = src(roi);
cv::calcHist(&srcRoi, 1, channels, cv::Mat(), hist_gold, 1, histSize, ranges);
hist_gold = hist_gold.t();
hist_gold.convertTo(hist_gold, CV_32S);
EXPECT_MAT_NEAR(hist_gold, hist, 0.0);

@ -9,4 +9,4 @@ if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
endif()
ocv_define_module(cudalegacy opencv_core opencv_video
OPTIONAL opencv_objdetect opencv_imgproc opencv_calib3d opencv_cudaarithm opencv_cudafilters opencv_cudaimgproc)
OPTIONAL opencv_objdetect opencv_xobjdetect opencv_imgproc opencv_3d opencv_stereo opencv_calib opencv_cudaarithm opencv_cudafilters opencv_cudaimgproc)

@ -42,9 +42,9 @@
#include "perf_precomp.hpp"
#ifdef HAVE_OPENCV_CALIB3D
#ifdef HAVE_OPENCV_3D
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
namespace opencv_test { namespace {

@ -739,12 +739,12 @@ struct RectConvert
static void groupRectangles(std::vector<NcvRect32u> &hypotheses, int groupThreshold, double eps, std::vector<Ncv32u> *weights)
{
#ifndef HAVE_OPENCV_OBJDETECT
#ifndef HAVE_OPENCV_XOBJDETECT
CV_UNUSED(hypotheses);
CV_UNUSED(groupThreshold);
CV_UNUSED(eps);
CV_UNUSED(weights);
CV_Error(cv::Error::StsNotImplemented, "This functionality requires objdetect module");
CV_Error(cv::Error::StsNotImplemented, "This functionality requires xobjdetect module");
#else
std::vector<cv::Rect> rects(hypotheses.size());
std::transform(hypotheses.begin(), hypotheses.end(), rects.begin(), RectConvert());

@ -45,7 +45,7 @@
using namespace cv;
using namespace cv::cuda;
#if !defined HAVE_CUDA || !defined HAVE_OPENCV_CALIB3D || defined(CUDA_DISABLER)
#if !defined HAVE_CUDA || !defined HAVE_OPENCV_3D || defined(CUDA_DISABLER)
void cv::cuda::transformPoints(const GpuMat&, const Mat&, const Mat&, GpuMat&, Stream&) { throw_no_cuda(); }

@ -64,9 +64,8 @@
#include "opencv2/opencv_modules.hpp"
#ifdef HAVE_OPENCV_OBJDETECT
# include "opencv2/objdetect.hpp"
//# include "opencv2/objdetect/objdetect_c.h"
#ifdef HAVE_OPENCV_XOBJDETECT
# include "opencv2/xobjdetect.hpp"
#endif
#include "opencv2/cudalegacy/NCV.hpp"
@ -1843,16 +1842,16 @@ static NCVStatus loadFromXML(const cv::String &filename,
std::vector<HaarClassifierNode128> &haarClassifierNodes,
std::vector<HaarFeature64> &haarFeatures)
{
const char *CUDA_CC_SIZE = "size";
const char *CUDA_CC_STAGES = "stages";
const char *CUDA_CC_STAGE_THRESHOLD = "stage_threshold";
const char *CUDA_CC_TREES = "trees";
const char *CUDA_CC_FEATURE = "feature";
const char *CUDA_CC_RECT = "rects";
const char *CUDA_CC_TILTED = "tilted";
const char *CUDA_CC_THRESHOLD = "threshold";
const char *CUDA_CC_SIZE = "size";
const char *CUDA_CC_STAGES = "stages";
const char *CUDA_CC_STAGE_THRESHOLD = "stage_threshold";
const char *CUDA_CC_TREES = "trees";
const char *CUDA_CC_FEATURE = "feature";
const char *CUDA_CC_RECT = "rects";
const char *CUDA_CC_TILTED = "tilted";
const char *CUDA_CC_THRESHOLD = "threshold";
const char *CUDA_CC_LEFT_VAL = "left_val";
const char *CUDA_CC_RIGHT_VAL = "right_val";
const char *CUDA_CC_RIGHT_VAL = "right_val";
const char *CUDA_CC_LEFT_NODE = "left_node";
const char *CUDA_CC_RIGHT_NODE = "right_node";
@ -1873,12 +1872,12 @@ static NCVStatus loadFromXML(const cv::String &filename,
haarClassifierNodes.resize(0);
haarFeatures.resize(0);
cv::FileStorage fs(filename, cv::FileStorage::READ | cv::FileStorage::FORMAT_XML);
if (!fs.isOpened())
cv::FileStorage fs(filename, cv::FileStorage::READ | cv::FileStorage::FORMAT_XML);
if (!fs.isOpened())
return NCV_FILE_ERROR;
const cv::FileNode &root = fs.getFirstTopLevelNode();
const cv::FileNode &root = fs.getFirstTopLevelNode();
const cv::FileNode &fnSize = root[CUDA_CC_SIZE];
// collect the cascade classifier window size
@ -1886,47 +1885,47 @@ static NCVStatus loadFromXML(const cv::String &filename,
haar.ClassifierSize.height = (int)fnSize[CUDA_CC_SIZE_H];
CV_Assert(haar.ClassifierSize.height > 0 && haar.ClassifierSize.width > 0);
const cv::FileNode &fnStages = root[CUDA_CC_STAGES];
const cv::FileNode &fnStages = root[CUDA_CC_STAGES];
cv::FileNodeIterator it = fnStages.begin(), it_end = fnStages.end();
for (; it != it_end; ++it) // by stages
{
cv::FileNode fnStage = *it;
for (; it != it_end; ++it) // by stages
{
cv::FileNode fnStage = *it;
HaarStage64 curStage;
curStage.setStartClassifierRootNodeOffset(static_cast<Ncv32u>(haarClassifierNodes.size()));
curStage.setStartClassifierRootNodeOffset(static_cast<Ncv32u>(haarClassifierNodes.size()));
curStage.setStageThreshold((float)fnStage[CUDA_CC_STAGE_THRESHOLD]);
// iterate over the trees
const cv::FileNode &fnTrees = fnStage[CUDA_CC_TREES];
cv::FileNodeIterator it1 = fnTrees.begin(), it1_end = fnTrees.end();
for (; it1 != it1_end; ++it1) // by trees
{
cv::FileNode tree = *it1;
Ncv32u nodeId = (size_t)0;
HaarClassifierNode128 curNode;
curNode.setThreshold((float)tree[0][CUDA_CC_THRESHOLD]);
NcvBool bIsLeftNodeLeaf = false;
NcvBool bIsRightNodeLeaf = false;
// iterate over the trees
const cv::FileNode &fnTrees = fnStage[CUDA_CC_TREES];
cv::FileNodeIterator it1 = fnTrees.begin(), it1_end = fnTrees.end();
for (; it1 != it1_end; ++it1) // by trees
{
cv::FileNode tree = *it1;
Ncv32u nodeId = (size_t)0;
HaarClassifierNode128 curNode;
curNode.setThreshold((float)tree[0][CUDA_CC_THRESHOLD]);
NcvBool bIsLeftNodeLeaf = false;
NcvBool bIsRightNodeLeaf = false;
HaarClassifierNodeDescriptor32 nodeLeft;
cv::FileNode leftNode = tree[0][CUDA_CC_LEFT_NODE];
if (leftNode.fs == NULL)
{
Ncv32f leftVal = tree[0][CUDA_CC_LEFT_VAL];
ncvStat = nodeLeft.create(leftVal);
Ncv32f leftVal = tree[0][CUDA_CC_LEFT_VAL];
ncvStat = nodeLeft.create(leftVal);
ncvAssertReturn(ncvStat == NCV_SUCCESS, ncvStat);
bIsLeftNodeLeaf = true;
}
else
{
Ncv32u leftNodeOffset = (int)tree[0][CUDA_CC_LEFT_NODE];
nodeLeft.create((Ncv32u)(h_TmpClassifierNotRootNodes.size() + leftNodeOffset - 1));
Ncv32u leftNodeOffset = (int)tree[0][CUDA_CC_LEFT_NODE];
nodeLeft.create((Ncv32u)(h_TmpClassifierNotRootNodes.size() + leftNodeOffset - 1));
haar.bHasStumpsOnly = false;
}
@ -1937,15 +1936,15 @@ static NCVStatus loadFromXML(const cv::String &filename,
if (rightNode.fs == NULL)
{
Ncv32f rightVal = tree[0][CUDA_CC_RIGHT_VAL];
ncvStat = nodeRight.create(rightVal);
Ncv32f rightVal = tree[0][CUDA_CC_RIGHT_VAL];
ncvStat = nodeRight.create(rightVal);
ncvAssertReturn(ncvStat == NCV_SUCCESS, ncvStat);
bIsRightNodeLeaf = true;
}
else
{
Ncv32u rightNodeOffset = (int)tree[0][CUDA_CC_RIGHT_NODE];
nodeRight.create((Ncv32u)(h_TmpClassifierNotRootNodes.size() + rightNodeOffset - 1));
Ncv32u rightNodeOffset = (int)tree[0][CUDA_CC_RIGHT_NODE];
nodeRight.create((Ncv32u)(h_TmpClassifierNotRootNodes.size() + rightNodeOffset - 1));
haar.bHasStumpsOnly = false;
}
@ -1955,9 +1954,9 @@ static NCVStatus loadFromXML(const cv::String &filename,
Ncv32u tiltedVal = (int)fnFeature[CUDA_CC_TILTED];
haar.bNeedsTiltedII = (tiltedVal != 0);
cv::FileNodeIterator it2 = fnFeature[CUDA_CC_RECT].begin(), it2_end = fnFeature[CUDA_CC_RECT].end();
cv::FileNodeIterator it2 = fnFeature[CUDA_CC_RECT].begin(), it2_end = fnFeature[CUDA_CC_RECT].end();
Ncv32u featureId = 0;
Ncv32u featureId = 0;
for (; it2 != it2_end; ++it2) // by feature
{
cv::FileNode rect = *it2;

@ -54,7 +54,6 @@ Ptr<cuda::BackgroundSubtractorFGD> cv::cuda::createBackgroundSubtractorFGD(const
#else
#include "cuda/fgd.hpp"
#include "opencv2/imgproc/imgproc_c.h"
/////////////////////////////////////////////////////////////////////////
// FGDParams
@ -345,69 +344,29 @@ namespace
namespace
{
void seqToContours(CvSeq* _ccontours, CvMemStorage* storage, OutputArrayOfArrays _contours)
{
Seq<CvSeq*> all_contours(cvTreeToNodeSeq(_ccontours, sizeof(CvSeq), storage));
size_t total = all_contours.size();
_contours.create((int) total, 1, 0, -1, true);
SeqIterator<CvSeq*> it = all_contours.begin();
for (size_t i = 0; i < total; ++i, ++it)
{
CvSeq* c = *it;
((CvContour*)c)->color = (int)i;
_contours.create((int)c->total, 1, CV_32SC2, (int)i, true);
Mat ci = _contours.getMat((int)i);
CV_Assert( ci.isContinuous() );
cvCvtSeqToArray(c, ci.data);
}
}
int findForegroundRegions(GpuMat& d_foreground, Mat& h_foreground, std::vector< std::vector<Point> >& foreground_regions,
CvMemStorage* storage, const FGDParams& params)
const FGDParams& params)
{
int region_count = 0;
// Discard under-size foreground regions:
d_foreground.download(h_foreground);
IplImage ipl_foreground = cvIplImage(h_foreground);
CvSeq* first_seq = 0;
cvFindContours(&ipl_foreground, storage, &first_seq, sizeof(CvContour), CV_RETR_LIST);
std::vector<std::vector<cv::Point> > contours, result;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(h_foreground, contours, hierarchy, cv::RETR_CCOMP, cv::CHAIN_APPROX_SIMPLE);
CV_Assert(contours.size() > 0);
for (CvSeq* seq = first_seq; seq; seq = seq->h_next)
// adding top-level contours to results, filtering by size
for (size_t i = 0; i < contours.size(); ++i)
{
CvContour* cnt = reinterpret_cast<CvContour*>(seq);
if (cnt->rect.width * cnt->rect.height < params.minArea || (params.is_obj_without_holes && CV_IS_SEQ_HOLE(seq)))
{
// Delete under-size contour:
CvSeq* prev_seq = seq->h_prev;
if (prev_seq)
{
prev_seq->h_next = seq->h_next;
if (seq->h_next)
seq->h_next->h_prev = prev_seq;
}
else
{
first_seq = seq->h_next;
if (seq->h_next)
seq->h_next->h_prev = NULL;
}
}
else
{
region_count++;
}
const std::vector<cv::Point> & cnt = contours[i];
const cv::Rect brect = cv::boundingRect(cnt);
bool isHole = hierarchy[i][3] >= 0; // contour with parent is hole
if (brect.area() < params.minArea || (isHole && params.is_obj_without_holes))
continue;
foreground_regions.push_back(cnt);
}
seqToContours(first_seq, storage, foreground_regions);
h_foreground.setTo(0);
drawContours(h_foreground, foreground_regions, -1, Scalar::all(255), -1);
@ -612,19 +571,14 @@ namespace
Ptr<cuda::Filter> dilateFilter_;
Ptr<cuda::Filter> erodeFilter_;
#endif
CvMemStorage* storage_;
};
FGDImpl::FGDImpl(const FGDParams& params) : params_(params), frameSize_(0, 0)
{
storage_ = cvCreateMemStorage();
CV_Assert( storage_ != 0 );
}
FGDImpl::~FGDImpl()
{
cvReleaseMemStorage(&storage_);
}
void FGDImpl::apply(InputArray _frame, OutputArray fgmask, double)
@ -640,7 +594,6 @@ namespace
CV_Assert( curFrame.type() == CV_8UC3 || curFrame.type() == CV_8UC4 );
CV_Assert( curFrame.size() == prevFrame_.size() );
cvClearMemStorage(storage_);
foreground_regions_.clear();
foreground_.setTo(Scalar::all(0));
@ -655,7 +608,7 @@ namespace
#endif
if (params_.minArea > 0 || params_.is_obj_without_holes)
findForegroundRegions(foreground_, h_foreground_, foreground_regions_, storage_, params_);
findForegroundRegions(foreground_, h_foreground_, foreground_regions_, params_);
// Check ALL BG update condition:
const double BGFG_FGD_BG_UPDATE_TRESH = 0.5;

@ -63,8 +63,12 @@
# include "opencv2/objdetect.hpp"
#endif
#ifdef HAVE_OPENCV_CALIB3D
# include "opencv2/calib3d.hpp"
#ifdef HAVE_OPENCV_XOBJDETECT
# include "opencv2/xobjdetect.hpp"
#endif
#ifdef HAVE_OPENCV_3D
# include "opencv2/3d.hpp"
#endif
#ifdef HAVE_OPENCV_CUDAARITHM

@ -42,9 +42,9 @@
#include "test_precomp.hpp"
#if defined HAVE_CUDA && defined HAVE_OPENCV_CALIB3D
#if defined HAVE_CUDA && defined HAVE_OPENCV_3D
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
namespace opencv_test { namespace {

@ -6,4 +6,4 @@ set(the_description "CUDA-accelerated Object Detection")
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-declarations -Wshadow -Wstrict-aliasing)
ocv_define_module(cudaobjdetect opencv_objdetect opencv_cudaarithm opencv_cudawarping OPTIONAL opencv_cudalegacy WRAP python)
ocv_define_module(cudaobjdetect opencv_objdetect opencv_xobjdetect opencv_cudaarithm opencv_cudawarping OPTIONAL opencv_cudalegacy WRAP python)

@ -48,7 +48,7 @@
#endif
#include "opencv2/core/cuda.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/xobjdetect.hpp"
/**
@addtogroup cuda
@ -70,11 +70,11 @@ namespace cv { namespace cuda {
@note
- An example applying the HOG descriptor for people detection can be found at
opencv_source_code/samples/cpp/peopledetect.cpp
xobjdetect_module/samples/peopledetect.cpp
- A CUDA example applying the HOG descriptor for people detection can be found at
opencv_source_code/samples/gpu/hog.cpp
xobjdetect_module/samples/gpu/hog.cpp
- (Python) An example applying the HOG descriptor for people detection can be found at
opencv_source_code/samples/python/peopledetect.py
xobjdetect_module/samples/python/peopledetect.py
*/
class CV_EXPORTS_W HOG : public Algorithm
{
@ -222,8 +222,8 @@ public:
/** @brief Cascade classifier class used for object detection. Supports HAAR and LBP cascades. :
@note
- A cascade classifier example can be found at
opencv_source_code/samples/gpu/cascadeclassifier.cpp
- A cascade classifier example can be found at
xobjdetect_module/samples/gpu/cascadeclassifier.cpp
- A Nvidea API specific cascade classifier example can be found at
opencv_source_code/samples/gpu/cascadeclassifier_nvidia_api.cpp
*/

@ -46,7 +46,7 @@
#include "opencv2/ts/cuda_perf.hpp"
#include "opencv2/cudaobjdetect.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/xobjdetect.hpp"
namespace opencv_test { using namespace perf; }

@ -48,7 +48,7 @@
#include "opencv2/cudaobjdetect.hpp"
#include "opencv2/cudaarithm.hpp"
#include "opencv2/cudawarping.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/xobjdetect.hpp"
#include "opencv2/core/private.cuda.hpp"
#include "opencv2/core/utility.hpp"

@ -48,7 +48,7 @@
#include "opencv2/ts/cuda_test.hpp"
#include "opencv2/cudaobjdetect.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/xobjdetect.hpp"
#include "cvconfig.h"

@ -8,4 +8,4 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4127 /wd4324 /wd4512 -Wundef -Wmissing-d
if(ENABLE_CUDA_FIRST_CLASS_LANGUAGE)
ocv_module_include_directories(${CUDAToolkit_INCLUDE_DIRS})
endif()
ocv_define_module(cudastereo opencv_calib3d OPTIONAL opencv_cudev WRAP python)
ocv_define_module(cudastereo opencv_3d opencv_stereo OPTIONAL opencv_cudev WRAP python)

@ -48,7 +48,8 @@
#endif
#include "opencv2/core/cuda.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/stereo.hpp"
/**
@addtogroup cuda

@ -46,7 +46,8 @@
#include "opencv2/ts/cuda_perf.hpp"
#include "opencv2/cudastereo.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/stereo.hpp"
namespace opencv_test {
using namespace perf;

@ -46,7 +46,8 @@
#include "opencv2/ts/cuda_test.hpp"
#include "opencv2/cudastereo.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/3d.hpp"
#include "opencv2/stereo.hpp"
#include "cvconfig.h"

@ -188,6 +188,7 @@ template<> struct VecTraits<char4>
namespace cv {
#ifndef CV_32U
template <> class DataType<uint>
{
public:
@ -202,6 +203,7 @@ public:
type = CV_MAKE_TYPE(depth, channels)
};
};
#endif
#define CV_CUDEV_DATA_TYPE_INST(_depth_type, _channel_num) \
template <> class DataType< _depth_type ## _channel_num > \

@ -102,10 +102,10 @@ public:
// Fp32 -> Fp16
cv::cuda::convertFp16(g_src, g_dst);
cv::convertFp16(src, dst);
src.convertTo(dst, CV_16F);
// Fp16 -> Fp32
cv::cuda::convertFp16(g_dst.clone(), g_dst);
cv::convertFp16(dst, ref);
dst.convertTo(ref, CV_32F);
g_dst.download(dst);
EXPECT_MAT_NEAR(dst, ref, 0.0);
@ -128,7 +128,7 @@ public:
// Fp32 -> Fp16
cv::cuda::convertFp16(g_src, g_dst);
cv::convertFp16(src, ref);
src.convertTo(ref, CV_16F);
g_dst.download(dst);
EXPECT_MAT_NEAR(dst, ref, 0.0);

@ -48,7 +48,7 @@ using namespace cv::cuda;
using namespace cv::cudev;
using namespace cvtest;
TEST(Integral, _8u)
TEST(DISABLED_Integral, _8u)
{
const Size size = randomSize(100, 400);
@ -84,7 +84,7 @@ TEST(Integral, _32f)
ASSERT_PRED_FORMAT2(cvtest::MatComparator(1e-5, 0), dst_gold, Mat(dst));
}
TEST(Integral, _8u_opt)
TEST(DISABLED_Integral, _8u_opt)
{
const Size size(640, 480);

@ -41,12 +41,6 @@ public:
else
ret.push_back(Range::all());
if (dims == 1)
{
// Mat expects two ranges even in this case
ret.push_back(Range::all());
}
return ret;
}

@ -4,7 +4,7 @@ if(NOT HAVE_QT OR NOT HAVE_CXX11 OR QT_VERSION_MAJOR LESS 5)
endif()
set(the_description "Debug visualization framework")
ocv_add_module(cvv opencv_core opencv_imgproc opencv_features2d WRAP python)
ocv_add_module(cvv opencv_core opencv_imgproc opencv_features WRAP python)
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wshadow -Wmissing-declarations)
# Qt

@ -4,7 +4,7 @@
#include <string>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "call_meta_data.hpp"
#include "debug_mode.hpp"

@ -3,10 +3,8 @@
// library includes
#include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/imgproc/types_c.h>
#include <opencv2/features.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/videoio/videoio_c.h>
#define CVVISUAL_DEBUGMODE
#include <opencv2/cvv/debug_mode.hpp>
@ -33,8 +31,6 @@ template<class T> std::string toString(const T& p_arg)
int
main(int argc, char** argv)
{
cv::Size* resolution = nullptr;
// parser keys
const char *keys =
"{ help h usage ? | | show this message }"
@ -58,8 +54,8 @@ main(int argc, char** argv)
if (res_w>0 && res_h>0) {
printf("Setting resolution to %dx%d\n", res_w, res_h);
capture.set(CV_CAP_PROP_FRAME_WIDTH, res_w);
capture.set(CV_CAP_PROP_FRAME_HEIGHT, res_h);
capture.set(cv::CAP_PROP_FRAME_WIDTH, res_w);
capture.set(cv::CAP_PROP_FRAME_HEIGHT, res_h);
}

@ -4,7 +4,7 @@
#include <algorithm>
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <QVBoxLayout>
#include <QStringList>

@ -5,7 +5,7 @@
#include <utility>
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <QTableWidget>
#include <QString>

@ -6,7 +6,7 @@
#include <QString>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "opencv2/cvv/call_meta_data.hpp"

@ -6,7 +6,7 @@
#include <type_traits>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "call.hpp"

@ -10,7 +10,7 @@
#include <QGraphicsScene>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointsettings.hpp"
#include "../zoomableimage.hpp"

@ -10,7 +10,7 @@
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchsettings.hpp"
#include "cvvkeypoint.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointvaluechooser.hpp"
#include "keypointsettings.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchsettings.hpp"

@ -1,7 +1,7 @@
#ifndef CVVISUAL_KEY_POINT_INTERVALL_SELECTOR
#define CVVISUAL_KEY_POINT_INTERVALL_SELECTOR
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointselection.hpp"
#include "keypointvaluechooser.hpp"

@ -5,7 +5,7 @@
#include "../../util/util.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointselectionselector.hpp"
#include "keypointsettingsselector.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointselection.hpp"
#include "keypointvaluechooser.hpp"

@ -3,7 +3,7 @@
#include <QFrame>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
namespace cvv{ namespace qtutil{

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointselection.hpp"
#include "../registerhelper.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointsettings.hpp"
#include "../registerhelper.hpp"

@ -5,7 +5,7 @@
#include <QPushButton>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "keypointsettings.hpp"
namespace cvv{ namespace qtutil{

@ -4,7 +4,7 @@
#include <QWidget>
#include <QComboBox>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
namespace cvv{ namespace qtutil{

@ -1,7 +1,7 @@
#ifndef CVVISUAL_MATCH_INTERVALL_SELECTOR
#define CVVISUAL_MATCH_INTERVALL_SELECTOR
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchselection.hpp"
#include "../intervallselector.hpp"

@ -3,7 +3,7 @@
#include <QCheckBox>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchselectionselector.hpp"
#include "matchsettingsselector.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchselection.hpp"
#include "../portionselector.hpp"

@ -9,7 +9,7 @@
#include <QGraphicsProxyWidget>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "cvvmatch.hpp"
#include "cvvkeypoint.hpp"
#include "zoomableproxyobject.hpp"

@ -3,7 +3,7 @@
#include <QFrame>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
namespace cvv{ namespace qtutil{

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchselection.hpp"
#include "../registerhelper.hpp"

@ -3,7 +3,7 @@
#include <vector>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchsettings.hpp"
#include "../registerhelper.hpp"

@ -5,7 +5,7 @@
#include <QPushButton>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchsettings.hpp"
#include "cvvmatch.hpp"

@ -4,7 +4,7 @@
#include <vector>
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <QMainWindow>
#include <QString>

@ -3,7 +3,7 @@
#include <QWidget>
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "matchmanagement.hpp"
#include "keypointmanagement.hpp"

@ -11,7 +11,7 @@
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
namespace cvv

@ -4,7 +4,7 @@
#include <vector>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "../qtutil/matchview/matchmanagement.hpp"
#include "../qtutil/matchview/keypointmanagement.hpp"

@ -6,7 +6,7 @@
#include <vector>
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include "../impl/match_call.hpp"

@ -4,7 +4,7 @@
#include <vector>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/features.hpp"
#include "../qtutil/matchview/matchmanagement.hpp"
#include "match_view.hpp"

@ -4,7 +4,7 @@
#include <vector>
#include <opencv2/core.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/features.hpp>
#include <QWidget>
#include <QString>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save