pybaseutils 2.2.17__tar.gz → 2.2.19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/PKG-INFO +1 -1
  2. pybaseutils-2.2.19/pybaseutils/__init__.py +11 -0
  3. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/__init__.py +1 -1
  4. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/audio_utils.py +1 -1
  5. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/pyaudio_utils.py +1 -1
  6. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/vad_utils.py +1 -1
  7. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/base64_utils.py +1 -1
  8. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/batch_utils.py +1 -1
  9. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/__init__.py +1 -1
  10. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/cython_utils.py +1 -1
  11. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/pyarmor_utils.py +1 -1
  12. {pybaseutils-2.2.17/pybaseutils/converter → pybaseutils-2.2.19/pybaseutils/cluster}/__init__.py +1 -1
  13. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/kmean.py +1 -1
  14. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/maxmin_distance.py +1 -1
  15. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/similarity.py +1 -1
  16. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/config_utils.py +9 -1
  17. {pybaseutils-2.2.17/pybaseutils/cluster → pybaseutils-2.2.19/pybaseutils/converter}/__init__.py +1 -1
  18. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_cvat.py +1 -1
  19. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_labelme.py +1 -1
  20. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_voc.py +1 -1
  21. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_coco2labelme.py +1 -1
  22. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_coco2voc.py +1 -1
  23. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_cvat2labelme.py +1 -1
  24. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2cvat.py +1 -1
  25. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2labelme.py +1 -1
  26. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2voc.py +1 -1
  27. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2yolo.py +1 -1
  28. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_yolo2voc.py +1 -1
  29. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/coords_utils.py +7 -4
  30. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/__init__.py +1 -1
  31. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/corner_utils.py +1 -1
  32. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/mouse_utils.py +1 -1
  33. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/nms_utils.py +1 -1
  34. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/video_utils.py +2 -1
  35. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/__init__.py +1 -1
  36. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/balanced_classes.py +1 -1
  37. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/base_coco.py +1 -1
  38. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/base_dataset.py +3 -3
  39. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/data_resample.py +1 -1
  40. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_det.py +1 -1
  41. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_ins.py +1 -1
  42. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_kps.py +1 -1
  43. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_labelme.py +4 -1
  44. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_yolo.py +1 -1
  45. {pybaseutils-2.2.17/pybaseutils/tracking → pybaseutils-2.2.19/pybaseutils/filter}/QueueTable.py +1 -1
  46. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/__init__.py +1 -1
  47. {pybaseutils-2.2.17/pybaseutils/tracking → pybaseutils-2.2.19/pybaseutils/filter}/demo.py +1 -1
  48. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/kalman_filter.py +1 -1
  49. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/mean_filter.py +1 -1
  50. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/motion_filter.py +1 -1
  51. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/pose_filter.py +1 -1
  52. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/font_style/__init__.py +1 -1
  53. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/geometry_tools.py +1 -1
  54. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/heatmap_utils.py +1 -1
  55. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/http_utils.py +1 -1
  56. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/image_utils.py +57 -33
  57. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/json_utils.py +1 -1
  58. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/log.py +1 -1
  59. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/log_utils.py +1 -1
  60. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/__init__.py +1 -1
  61. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/accuracy.py +1 -1
  62. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/average_meter.py +1 -1
  63. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/class_report.py +1 -1
  64. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/plot_pr.py +1 -1
  65. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/plot_roc.py +1 -1
  66. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/numpy_utils.py +1 -1
  67. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pandas_utils.py +1 -1
  68. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/plot_utils.py +1 -1
  69. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/__init__.py +1 -1
  70. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/bones_utils.py +1 -1
  71. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/human_pose.py +1 -1
  72. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/pose_utils.py +1 -1
  73. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/main.py +1 -1
  74. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/server/__init__.py +1 -1
  75. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/server/apm_server.py +1 -1
  76. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/setup_config.py +1 -1
  77. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/singleton_utils.py +1 -1
  78. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/text_utils.py +1 -1
  79. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/thread_utils.py +1 -1
  80. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/time_utils.py +1 -1
  81. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracemalloc_utils.py +1 -1
  82. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracemalloc_utils2.py +1 -1
  83. {pybaseutils-2.2.17/pybaseutils/filter → pybaseutils-2.2.19/pybaseutils/tracking}/QueueTable.py +1 -1
  84. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/__init__.py +1 -1
  85. {pybaseutils-2.2.17/pybaseutils/filter → pybaseutils-2.2.19/pybaseutils/tracking}/demo.py +1 -1
  86. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/kalman_filter.py +1 -1
  87. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/mean_filter.py +1 -1
  88. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/motion_filter.py +1 -1
  89. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/pose_filter.py +1 -1
  90. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/__init__.py +1 -1
  91. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/affine_transform.py +1 -1
  92. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/augment_utils.py +1 -1
  93. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/face_alignment.py +1 -1
  94. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/transform_utils.py +1 -1
  95. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/web/__init__.py +1 -1
  96. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/web/st_image_web.py +38 -20
  97. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/word_utils.py +1 -1
  98. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/worker.py +7 -5
  99. pybaseutils-2.2.19/pybaseutils/yaml_utils.py +19 -0
  100. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/PKG-INFO +1 -1
  101. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/setup.py +7 -4
  102. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/Image_enhance/__init__.py +1 -1
  103. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/Image_enhance/dmeo01.py +1 -1
  104. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/__init__.py +1 -1
  105. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/__init__.py +1 -1
  106. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/__init__.py +1 -1
  107. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/action_dataset.py +1 -1
  108. {pybaseutils-2.2.17/test_py/cython_build → pybaseutils-2.2.19/test_py/aije}/build_cython.py +1 -1
  109. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/build_pyarmor.py +1 -1
  110. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/build_service.py +1 -1
  111. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_cvat2labelme.py +1 -1
  112. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_labelme2coco.py +1 -1
  113. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_labelme2voc.py +1 -1
  114. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/copy_move.py +1 -1
  115. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_labelme_crop.py +1 -1
  116. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_labelme_shock.py +1 -1
  117. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_video_aije.py +1 -1
  118. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_voc_crop.py +1 -1
  119. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_voc_vis.py +1 -1
  120. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/get_pair_data.py +1 -1
  121. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/video_convertor.py +1 -1
  122. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/__init__.py +1 -1
  123. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/demo.py +1 -1
  124. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/main.py +1 -1
  125. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/main_read.py +1 -1
  126. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/segment.py +1 -1
  127. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/speechbrain_demo.py +1 -1
  128. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/camera/__init__.py +1 -1
  129. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/captcha/__init__.py +1 -1
  130. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/captcha/demo.py +1 -1
  131. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/class_attribute.py +1 -1
  132. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/class_names.py +1 -1
  133. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/BITVehicle2voc.py +1 -1
  134. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/BSTLD2voc.py +1 -1
  135. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/CCPD.py +1 -1
  136. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/CCPD2voc.py +1 -1
  137. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/FL3D_dataset.py +1 -1
  138. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/FreiHAND2coco.py +1 -1
  139. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/MTFL2voc.py +1 -1
  140. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/TT100K.py +1 -1
  141. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/WaterMeters1.py +1 -1
  142. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/WaterMeters2.py +1 -1
  143. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/__init__.py +1 -1
  144. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_coco2voc.py +1 -1
  145. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_cvat2labelme.py +1 -1
  146. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_gesture2hand.py +1 -1
  147. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2coco.py +1 -1
  148. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2cvat.py +1 -1
  149. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_voc2labelme.py +1 -1
  150. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/fatigue_driving.py +1 -1
  151. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/fdd_dataset.py +1 -1
  152. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/get_pair_data.py +1 -1
  153. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/handpose2coco.py +1 -1
  154. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/insects_for_aichallenger.py +1 -1
  155. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/ua_detrac2voc.py +1 -1
  156. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/ucf101_dataset.py +1 -1
  157. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/voc_sbd2labelme.py +2 -2
  158. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/__init__.py +1 -1
  159. {pybaseutils-2.2.17/test_py/aije → pybaseutils-2.2.19/test_py/cython_build}/build_cython.py +1 -1
  160. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/build_pyarmor.py +1 -1
  161. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/cryptography_demo.py +1 -1
  162. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/fun_sum.py +1 -1
  163. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/main.py +1 -1
  164. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/date_demo.py +1 -1
  165. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo1.py +1 -1
  166. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo2.py +1 -1
  167. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_async_await1.py +1 -1
  168. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_async_await2.py +1 -1
  169. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_coco_vis.py +1 -1
  170. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_copy_files.py +1 -1
  171. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_copy_files_for_voc.py +1 -1
  172. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_ffmpy.py +1 -1
  173. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_pair_file.py +1 -1
  174. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_polygon.py +1 -1
  175. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_trt.py +1 -1
  176. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_gif.py +1 -1
  177. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_gif_video.py +1 -1
  178. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_image_crop.py +1 -1
  179. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_kpts.py +1 -1
  180. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_labelme.py +1 -1
  181. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_labelme_crop.py +1 -1
  182. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_lableme_vis.py +8 -6
  183. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_metrics.py +1 -1
  184. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_mouse.py +1 -1
  185. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_nii.py +1 -1
  186. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_pandas.py +1 -1
  187. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_plot.py +1 -1
  188. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_rename.py +1 -1
  189. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_standard_image .py +6 -4
  190. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_standard_video .py +7 -7
  191. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_taichi.py +1 -1
  192. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_video.py +1 -1
  193. pybaseutils-2.2.19/test_py/demo_video_crop.py +24 -0
  194. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_voc_crop.py +1 -1
  195. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_voc_vis.py +1 -1
  196. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_word_similar.py +1 -1
  197. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_worker1.py +1 -1
  198. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_worker2.py +1 -1
  199. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/__init__.py +1 -1
  200. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/__init__.py +1 -1
  201. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/demo.py +1 -1
  202. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/text_matching.py +1 -1
  203. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/__init__.py +1 -1
  204. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/func.py +1 -1
  205. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/server.py +1 -1
  206. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/get_file_list.py +1 -1
  207. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/__init__.py +1 -1
  208. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v1.py +1 -1
  209. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v2.py +1 -1
  210. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v3.py +1 -1
  211. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/kafka_worker.py +1 -1
  212. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/men_tracemalloc.py +1 -1
  213. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/__init__.py +1 -1
  214. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/demo01.py +1 -1
  215. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/demo02.py +1 -1
  216. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/hello_milvus.py +1 -1
  217. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/milvus_client.py +1 -1
  218. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/performance.py +1 -1
  219. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/pose/__init__.py +1 -1
  220. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/pose/human_pose.py +1 -1
  221. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/__init__.py +1 -1
  222. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/knn_search.py +1 -1
  223. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/__init__.py +1 -1
  224. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/base.py +1 -1
  225. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/component.py +1 -1
  226. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/main.py +1 -1
  227. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/register.py +1 -1
  228. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/GRU.py +1 -1
  229. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/TCN.py +1 -1
  230. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/__init__.py +1 -1
  231. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/demo.py +1 -1
  232. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/__init__.py +1 -1
  233. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/demo11.py +1 -1
  234. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/idcardocr.py +1 -1
  235. pybaseutils-2.2.17/pybaseutils/__init__.py +0 -8
  236. pybaseutils-2.2.17/pybaseutils/yaml_utils.py +0 -13
  237. pybaseutils-2.2.17/test_py/demo_video_crop.py +0 -21
  238. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/LICENCE +0 -0
  239. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/README.md +0 -0
  240. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/color_utils.py +0 -0
  241. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_coco.py +0 -0
  242. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/concat_coco.py +0 -0
  243. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  244. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  245. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  246. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2coco.py +0 -0
  247. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/monitor.py +0 -0
  248. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_image_folder.py +0 -0
  249. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_image_text.py +0 -0
  250. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_voc.py +0 -0
  251. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  252. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/file_utils.py +0 -0
  253. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/font_utils.py +0 -0
  254. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/__init__.py +0 -0
  255. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/demo.py +0 -0
  256. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/SOURCES.txt +0 -0
  257. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/dependency_links.txt +0 -0
  258. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/not-zip-safe +0 -0
  259. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/top_level.txt +0 -0
  260. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/setup.cfg +0 -0
  261. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/search_image.py +0 -0
  262. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
  263. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  264. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/camera/demo.py +0 -0
  265. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/AffectNet.py +0 -0
  266. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/AsianMovie.py +0 -0
  267. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/concat_coco.py +0 -0
  268. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2voc.py +0 -0
  269. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/tt100k_utils.py +0 -0
  270. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/model_des_enctypt.py +0 -0
  271. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/model_enctypt.py +0 -0
  272. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/date_dataset.py +0 -0
  273. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/datedataset_bk.py +0 -0
  274. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo3.py +0 -0
  275. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_get_file_label.py +0 -0
  276. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_get_file_list.py +0 -0
  277. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/demo.py +0 -0
  278. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/detect_face_person.py +0 -0
  279. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/predet_labelme.py +0 -0
  280. {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/redis_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pybaseutils
3
- Version: 2.2.17
3
+ Version: 2.2.19
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-02-18 16:10:49
7
+ # @Brief :
8
+ # --------------------------------------------------------
9
+ """
10
+
11
+ __version__ = '2.2.19'
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author :
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author :
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Project: IntelligentManufacture
4
4
  @File : maxmin_distance.py
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,12 @@
1
- # -*- coding:utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-02-18 16:10:49
7
+ # @Brief :
8
+ # --------------------------------------------------------
9
+ """
2
10
  import os
3
11
  import argparse
4
12
  import numbers
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,8 +1,11 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
- @Author : Pan
4
- @E-mail : 390737991@qq.com
5
- @Date : 2021-09-08 16:58:52
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-02-18 16:10:49
7
+ # @Brief :
8
+ # --------------------------------------------------------
6
9
  """
7
10
 
8
11
  import math
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -242,6 +242,7 @@ def video_capture(video_file: int or str, save_video: str or int = None, interva
242
242
  w, h, num_frames, fps = image_utils.get_video_info(video_cap)
243
243
  start = int(kwargs.get("start", 0) * fps)
244
244
  end = int(kwargs.get("end", num_frames / fps) * fps) if fps > 0 else 0
245
+ if num_frames <= 0: num_frames = end
245
246
  end = min(end, num_frames) # TODO 当num_frames<0时,使用0<end<count继续播放
246
247
  interval = fps if interval == -1 else interval # 当interval=-1,表示interval=fps,即一秒一帧
247
248
  save_fps = max(kwargs.get("speed", 1) * fps // interval, 1)
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : panjq
4
4
  @E-mail : pan_jinquan@163.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -67,8 +67,6 @@ class Dataset(object):
67
67
  """
68
68
  if isinstance(class_name, str):
69
69
  class_name = Dataset.read_file(class_name)
70
- elif isinstance(class_name, list) and "unique" in class_name:
71
- self.unique = True
72
70
  if isinstance(class_name, list) and len(class_name) > 0:
73
71
  class_dict = {}
74
72
  for i, name in enumerate(class_name):
@@ -85,6 +83,8 @@ class Dataset(object):
85
83
  for n, i in class_dict.items():
86
84
  class_name[i] = "{},{}".format(class_name[i], n) if i in class_name else n
87
85
  class_name = list(class_name.values())
86
+ if isinstance(class_name, list) and "unique" in class_name:
87
+ self.unique = True
88
88
  return class_name, class_dict
89
89
 
90
90
  @staticmethod
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -193,6 +193,7 @@ class LabelMeDataset(Dataset):
193
193
  bboxes, labels, points, groups, names, keypoints = [], [], [], [], [], []
194
194
  for anno in annotation:
195
195
  name = "unique" if unique else anno["label"]
196
+ shape_type = anno.get("shape_type", "polygon")
196
197
  label = name
197
198
  if class_dict:
198
199
  if not name in class_dict:
@@ -211,6 +212,8 @@ class LabelMeDataset(Dataset):
211
212
  pts[:, 0] = np.clip(pts[:, 0], 0, w - 1)
212
213
  pts[:, 1] = np.clip(pts[:, 1], 0, h - 1)
213
214
  box = image_utils.polygons2boxes([pts])[0]
215
+ if shape_type == "rectangle":
216
+ pts = image_utils.boxes2polygons([box])[0]
214
217
  names.append(name)
215
218
  labels.append(label)
216
219
  bboxes.append(box)
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Project: PyKinect2-OpenCV
4
4
  @File : geometry_tools.py
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*- coding:utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  import logging
3
3
  import time
4
4
  import requests
@@ -1,8 +1,11 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
- @Author : Pan
4
- @E-mail : 390737991@qq.com
5
- @Date : 2019-02-14 15:34:50
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-02-18 16:10:49
7
+ # @Brief :
8
+ # --------------------------------------------------------
6
9
  """
7
10
 
8
11
  import os
@@ -99,34 +102,6 @@ def boxes_protection(boxes, width, height):
99
102
  return boxes
100
103
 
101
104
 
102
- def tensor2image(batch_tensor, index=0):
103
- """
104
- convert tensor to image
105
- :param batch_tensor:
106
- :param index:
107
- :return:
108
- """
109
- image_tensor = batch_tensor[index, :]
110
- image = np.array(image_tensor, dtype=np.float32)
111
- image = np.squeeze(image)
112
- image = image.transpose(1, 2, 0) # 通道由[c,h,w]->[h,w,c]
113
- return image
114
-
115
-
116
- def get_image_tensor(image_path, image_size, transpose=False):
117
- image = read_image(image_path)
118
- # transform = default_transform(image_size)
119
- # torch_image = transform(image).detach().numpy()
120
- image = resize_image(image, size=(int(128 * image_size[0] / 112), int(128 * image_size[1] / 112)))
121
- image = center_crop(image, crop_size=image_size)
122
- image_tensor = image_normalize(image, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
123
- if transpose:
124
- image_tensor = image_tensor.transpose(2, 0, 1) # NHWC->NCHW
125
- image_tensor = image_tensor[np.newaxis, :]
126
- # std = np.std(torch_image-image_tensor)
127
- return image_tensor
128
-
129
-
130
105
  def image_clip(image):
131
106
  """
132
107
  :param image:
@@ -316,6 +291,55 @@ def swap_image(image):
316
291
  return image
317
292
 
318
293
 
294
+ def image2tensor(image, size=(), mean=(), std=()):
295
+ """
296
+ transform = transforms.Compose([
297
+ transforms.Resize(size=(input_size[1], input_size[0])),
298
+ transforms.ToTensor(),
299
+ transforms.Normalize(mean=rgb_mean, std=rgb_std),
300
+ ])
301
+ :param image:
302
+ :param input_size:
303
+ :return:
304
+ """
305
+ if size: image = cv2.resize(image, dsize=size)
306
+ image = np.array(image, dtype=np.float32) / 255.0
307
+ if mean: image = image - np.asarray(mean, dtype=np.float32)
308
+ if std: image = image / np.asarray(std, dtype=np.float32)
309
+ tensor = image.transpose(2, 0, 1) # HWC->CHW
310
+ tensor = tensor[np.newaxis, :]
311
+ return tensor
312
+
313
+
314
+ def tensor2image(tensor, mean=(), std=()):
315
+ """
316
+ :param tensor: (b,c,h,w)
317
+ :param index:
318
+ :return:
319
+ """
320
+ image = np.array(tensor, dtype=np.float32)
321
+ image = image.transpose(0, 2, 3, 1) # (b0,c1,h2,w3)->(b0,h2,w3,c1)
322
+ if std: image = image * np.asarray(std, dtype=np.float32)
323
+ if mean: image = image + np.asarray(mean, dtype=np.float32)
324
+ image = np.clip(image * 255, 0, 255)
325
+ image = np.array(image, dtype=np.uint8)
326
+ return image
327
+
328
+
329
+ def get_image_tensor(image_path, image_size, transpose=False):
330
+ image = read_image(image_path)
331
+ # transform = default_transform(image_size)
332
+ # torch_image = transform(image).detach().numpy()
333
+ image = resize_image(image, size=(int(128 * image_size[0] / 112), int(128 * image_size[1] / 112)))
334
+ image = center_crop(image, crop_size=image_size)
335
+ image_tensor = image_normalize(image, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
336
+ if transpose:
337
+ image_tensor = image_tensor.transpose(2, 0, 1) # NHWC->NCHW
338
+ image_tensor = image_tensor[np.newaxis, :]
339
+ # std = np.std(torch_image-image_tensor)
340
+ return image_tensor
341
+
342
+
319
343
  def image_normalize(image, mean=None, std=None):
320
344
  '''
321
345
  正则化,归一化
@@ -2979,7 +3003,7 @@ def get_video_info(video_cap: cv2.VideoCapture, vis=True):
2979
3003
  width = int(video_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
2980
3004
  height = int(video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
2981
3005
  num_frames = int(video_cap.get(cv2.CAP_PROP_FRAME_COUNT))
2982
- fps = int(video_cap.get(cv2.CAP_PROP_FPS))
3006
+ fps = video_cap.get(cv2.CAP_PROP_FPS)
2983
3007
  if vis: print("read video:width:{},height:{},fps:{},num_frames:{}".format(width, height, fps, num_frames))
2984
3008
  return width, height, num_frames, fps
2985
3009
 
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
4
  @E-mail :
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com
@@ -1,4 +1,4 @@
1
- # -*-coding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
  """
3
3
  @Author : Pan
4
4
  @E-mail : 390737991@qq.com