pybaseutils 2.4.1__tar.gz → 2.4.3__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 (307) hide show
  1. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/PKG-INFO +1 -1
  2. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/video_utils.py +7 -3
  4. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_labelme.py +15 -17
  5. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/file_utils.py +16 -13
  6. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/PKG-INFO +1 -1
  7. pybaseutils-2.4.3/test_py/demo4.py +19 -0
  8. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_lableme_vis.py +4 -4
  9. pybaseutils-2.4.1/test_py/demo4.py +0 -25
  10. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/LICENCE +0 -0
  11. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/README.md +0 -0
  12. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/__init__.py +0 -0
  13. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/audio_utils.py +0 -0
  14. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/pyaudio_utils.py +0 -0
  15. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/vad_utils.py +0 -0
  16. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/__init__.py +0 -0
  17. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/dict_queue.py +0 -0
  18. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/list_queue.py +0 -0
  19. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base64_utils.py +0 -0
  20. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/batch_utils.py +0 -0
  21. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/__init__.py +0 -0
  22. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/cython_utils.py +0 -0
  23. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
  24. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/__init__.py +0 -0
  25. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/kmean.py +0 -0
  26. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/maxmin_distance.py +0 -0
  27. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/similarity.py +0 -0
  28. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/color_utils.py +0 -0
  29. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/config_utils.py +0 -0
  30. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/__init__.py +0 -0
  31. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_coco.py +0 -0
  32. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_cvat.py +0 -0
  33. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_labelme.py +0 -0
  34. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_voc.py +0 -0
  35. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/concat_coco.py +0 -0
  36. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  37. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_coco2voc.py +0 -0
  38. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
  39. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  40. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  41. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2labelme.py +0 -0
  42. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  43. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  44. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2coco.py +0 -0
  45. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2labelme.py +0 -0
  46. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2voc.py +0 -0
  47. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  48. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_yolo2labelme.py +0 -0
  49. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  50. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/prelabelme.py +0 -0
  51. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/coords_utils.py +0 -0
  52. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/__init__.py +0 -0
  53. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/corner_utils.py +0 -0
  54. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/monitor.py +0 -0
  55. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/mouse_utils.py +0 -0
  56. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/nms_utils.py +0 -0
  57. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/data_utils.py +0 -0
  58. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/__init__.py +0 -0
  59. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/balanced_classes.py +0 -0
  60. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/base_coco.py +0 -0
  61. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/base_dataset.py +0 -0
  62. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/data_resample.py +0 -0
  63. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  64. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  65. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  66. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_image_folder.py +0 -0
  67. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_image_text.py +0 -0
  68. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_labelme_crop.py +0 -0
  69. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_voc.py +0 -0
  70. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_yolo.py +0 -0
  71. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  72. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dict_uils.py +0 -0
  73. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/QueueTable.py +0 -0
  74. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/__init__.py +0 -0
  75. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/demo.py +0 -0
  76. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/kalman_filter.py +0 -0
  77. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/mean_filter.py +0 -0
  78. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/motion_filter.py +0 -0
  79. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/pose_filter.py +0 -0
  80. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/font_style/__init__.py +0 -0
  81. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/font_utils.py +0 -0
  82. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/geometry_tools.py +0 -0
  83. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/heatmap_utils.py +0 -0
  84. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/http_utils.py +0 -0
  85. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/image_utils.py +0 -0
  86. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/json_utils.py +0 -0
  87. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/log.py +0 -0
  88. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/log_utils.py +0 -0
  89. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/media/__init__.py +0 -0
  90. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/media/ffmpeg_utils.py +0 -0
  91. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/__init__.py +0 -0
  92. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/accuracy.py +0 -0
  93. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/average_meter.py +0 -0
  94. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/class_report.py +0 -0
  95. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/plot_pr.py +0 -0
  96. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/plot_roc.py +0 -0
  97. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/numpy_utils.py +0 -0
  98. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pandas_utils.py +0 -0
  99. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/plot_utils.py +0 -0
  100. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/__init__.py +0 -0
  101. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/bones_utils.py +0 -0
  102. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/human_pose.py +0 -0
  103. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/pose_utils.py +0 -0
  104. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/__init__.py +0 -0
  105. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/demo.py +0 -0
  106. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/main.py +0 -0
  107. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/server/__init__.py +0 -0
  108. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/server/apm_server.py +0 -0
  109. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/setup_config.py +0 -0
  110. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/singleton_utils.py +0 -0
  111. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/text_utils.py +0 -0
  112. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/thread_utils.py +0 -0
  113. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/time_utils.py +0 -0
  114. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracemalloc_utils.py +0 -0
  115. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracemalloc_utils2.py +0 -0
  116. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/QueueTable.py +0 -0
  117. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/__init__.py +0 -0
  118. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/demo.py +0 -0
  119. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/kalman_filter.py +0 -0
  120. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/mean_filter.py +0 -0
  121. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/motion_filter.py +0 -0
  122. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/pose_filter.py +0 -0
  123. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/__init__.py +0 -0
  124. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/affine_transform.py +0 -0
  125. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/augment_utils.py +0 -0
  126. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/face_alignment.py +0 -0
  127. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/transform_utils.py +0 -0
  128. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/__init__.py +0 -0
  129. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_gradio_image.py +0 -0
  130. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_stweb_image.py +0 -0
  131. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_webio_image.py +0 -0
  132. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/demo.py +0 -0
  133. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/word_utils.py +0 -0
  134. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/worker.py +0 -0
  135. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/yaml_utils.py +0 -0
  136. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/SOURCES.txt +0 -0
  137. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/dependency_links.txt +0 -0
  138. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/not-zip-safe +0 -0
  139. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/top_level.txt +0 -0
  140. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/setup.cfg +0 -0
  141. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/setup.py +0 -0
  142. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/Image_enhance/__init__.py +0 -0
  143. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/Image_enhance/dmeo01.py +0 -0
  144. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/__init__.py +0 -0
  145. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/search_baidu.py +0 -0
  146. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/search_biying.py +0 -0
  147. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/__init__.py +0 -0
  148. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/__init__.py +0 -0
  149. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/action_dataset.py +0 -0
  150. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_cython.py +0 -0
  151. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_pyarmor.py +0 -0
  152. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_service.py +0 -0
  153. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_cvat2labelme.py +0 -0
  154. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_labelme2coco.py +0 -0
  155. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_labelme2voc.py +0 -0
  156. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/copy_move.py +0 -0
  157. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_labelme_crop.py +0 -0
  158. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_labelme_shock.py +0 -0
  159. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_video_aije.py +0 -0
  160. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_voc_crop.py +0 -0
  161. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_voc_vis.py +0 -0
  162. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/get_pair_data.py +0 -0
  163. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/video_convertor.py +0 -0
  164. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/__init__.py +0 -0
  165. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/demo.py +0 -0
  166. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/main.py +0 -0
  167. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/main_read.py +0 -0
  168. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/segment.py +0 -0
  169. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  170. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/speechbrain_demo.py +0 -0
  171. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio_demo1.py +0 -0
  172. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/camera/__init__.py +0 -0
  173. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/camera/demo.py +0 -0
  174. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/captcha/__init__.py +0 -0
  175. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/captcha/demo.py +0 -0
  176. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/class_attribute.py +0 -0
  177. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/class_names.py +0 -0
  178. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/AffectNet.py +0 -0
  179. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/AsianMovie.py +0 -0
  180. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/BITVehicle2voc.py +0 -0
  181. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/BSTLD2voc.py +0 -0
  182. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/CCPD.py +0 -0
  183. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/CCPD2voc.py +0 -0
  184. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/FL3D_dataset.py +0 -0
  185. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/FreiHAND2coco.py +0 -0
  186. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/MTFL2voc.py +0 -0
  187. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/TT100K.py +0 -0
  188. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/WaterMeters1.py +0 -0
  189. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/WaterMeters2.py +0 -0
  190. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/__init__.py +0 -0
  191. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/concat_coco.py +0 -0
  192. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_coco2voc.py +0 -0
  193. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_cvat2labelme.py +0 -0
  194. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_gesture2hand.py +0 -0
  195. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2coco.py +0 -0
  196. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2cvat.py +0 -0
  197. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2labelme.py +0 -0
  198. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2voc.py +0 -0
  199. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_voc2labelme.py +0 -0
  200. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/fatigue_driving.py +0 -0
  201. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/fdd_dataset.py +0 -0
  202. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/get_pair_data.py +0 -0
  203. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/handpose2coco.py +0 -0
  204. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/insects_for_aichallenger.py +0 -0
  205. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/tt100k_utils.py +0 -0
  206. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/ua_detrac2voc.py +0 -0
  207. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/ucf101_dataset.py +0 -0
  208. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/voc_sbd2labelme.py +0 -0
  209. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/__init__.py +0 -0
  210. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/build_cython.py +0 -0
  211. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/build_pyarmor.py +0 -0
  212. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/cryptography_demo.py +0 -0
  213. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/fun_sum.py +0 -0
  214. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/main.py +0 -0
  215. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/model_des_enctypt.py +0 -0
  216. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/model_enctypt.py +0 -0
  217. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/date_dataset.py +0 -0
  218. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/date_demo.py +0 -0
  219. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/datedataset_bk.py +0 -0
  220. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo1.py +0 -0
  221. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo2.py +0 -0
  222. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo3.py +0 -0
  223. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_async_await1.py +0 -0
  224. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_async_await2.py +0 -0
  225. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_coco_vis.py +0 -0
  226. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_copy_files.py +0 -0
  227. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_copy_files_for_voc.py +0 -0
  228. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_ffmpy.py +0 -0
  229. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_annular_to_rect.py +0 -0
  230. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_pair_file.py +0 -0
  231. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_polygon.py +0 -0
  232. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_trt.py +0 -0
  233. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_get_file_label.py +0 -0
  234. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_get_file_list.py +0 -0
  235. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_gif.py +0 -0
  236. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_gif_video.py +0 -0
  237. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_image_crop.py +0 -0
  238. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_kpts.py +0 -0
  239. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_labelme.py +0 -0
  240. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_labelme_crop.py +0 -0
  241. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_metrics.py +0 -0
  242. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_mosaic.py +0 -0
  243. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_mouse.py +0 -0
  244. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_nii.py +0 -0
  245. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_pandas.py +0 -0
  246. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_plot.py +0 -0
  247. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_prelabelme.py +0 -0
  248. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_rename.py +0 -0
  249. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_standard_image .py +0 -0
  250. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_standard_video .py +0 -0
  251. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_taichi.py +0 -0
  252. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_video.py +0 -0
  253. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_video_crop.py +0 -0
  254. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_voc_crop.py +0 -0
  255. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_voc_vis.py +0 -0
  256. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_word_similar.py +0 -0
  257. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_worker1.py +0 -0
  258. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_worker2.py +0 -0
  259. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/__init__.py +0 -0
  260. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/demo.py +0 -0
  261. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/detect_face_person.py +0 -0
  262. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/predet_labelme.py +0 -0
  263. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/__init__.py +0 -0
  264. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/demo.py +0 -0
  265. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/text_matching.py +0 -0
  266. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/__init__.py +0 -0
  267. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/app.py +0 -0
  268. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/utils/__init__.py +0 -0
  269. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/utils/utils.py +0 -0
  270. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/get_file_list.py +0 -0
  271. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/gradio_app.py +0 -0
  272. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/gradio_app_v2.py +0 -0
  273. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/__init__.py +0 -0
  274. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v1.py +0 -0
  275. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v2.py +0 -0
  276. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v3.py +0 -0
  277. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/kafka_worker.py +0 -0
  278. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/men_tracemalloc.py +0 -0
  279. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/__init__.py +0 -0
  280. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/demo01.py +0 -0
  281. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/demo02.py +0 -0
  282. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/hello_milvus.py +0 -0
  283. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/milvus_client.py +0 -0
  284. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/model_process.py +0 -0
  285. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/performance.py +0 -0
  286. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/pose/__init__.py +0 -0
  287. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/pose/human_pose.py +0 -0
  288. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/__init__.py +0 -0
  289. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/knn_search.py +0 -0
  290. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/redis_client.py +0 -0
  291. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/__init__.py +0 -0
  292. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/base.py +0 -0
  293. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/component.py +0 -0
  294. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/main.py +0 -0
  295. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/register.py +0 -0
  296. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/GRU.py +0 -0
  297. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/TCN.py +0 -0
  298. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/__init__.py +0 -0
  299. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/demo.py +0 -0
  300. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/slowfastnet.py +0 -0
  301. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/__init__.py +0 -0
  302. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/demo11.py +0 -0
  303. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/idcardocr.py +0 -0
  304. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/__init__.py +0 -0
  305. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/asr_clients.py +0 -0
  306. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/asr_service.py +0 -0
  307. {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/chat_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybaseutils
3
- Version: 2.4.1
3
+ Version: 2.4.3
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -8,4 +8,4 @@
8
8
  # --------------------------------------------------------
9
9
  """
10
10
 
11
- __version__ = '2.4.1'
11
+ __version__ = '2.4.3'
@@ -222,7 +222,8 @@ def video_capture(video_file: int or str, save_video: str or int = None, interva
222
222
  title: 控制显示窗口名
223
223
  :return:
224
224
  """
225
- assert os.path.exists(video_file), f"video_file={video_file}"
225
+ video_file = file_utils.str2number(video_file)
226
+ if isinstance(video_file, str): assert os.path.exists(video_file), f"video_file={video_file}"
226
227
  video_cap = image_utils.get_video_capture(video_file)
227
228
  w, h, num_frames, fps = image_utils.get_video_info(video_cap)
228
229
  start = int(kwargs.get("start", 0) * fps)
@@ -279,7 +280,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
279
280
  speed: 播放速度
280
281
  :return: frame, count, w, h, fps =data_info['frame'],data_info['count'],data_info['w'],data_info['h'],data_info['fps']
281
282
  """
282
- if isinstance(video_file, str) and len(video_file) == 1: video_file = int(video_file)
283
+ video_file = file_utils.str2number(video_file)
283
284
  if isinstance(video_file, str): assert os.path.exists(video_file), f"video_file={video_file}"
284
285
  video_cap = image_utils.get_video_capture(video_file, fps=None)
285
286
  w, h, num_frames, fps = image_utils.get_video_info(video_cap)
@@ -292,6 +293,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
292
293
  count = 0
293
294
  video_writer = None
294
295
  use_fast = kwargs.get("use_fast", False)
296
+ data_info = {}
295
297
  while True:
296
298
  ret, frame = (False, None) if use_fast else video_cap.read()
297
299
  if count % interval == 0 and count >= start:
@@ -302,7 +304,8 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
302
304
  if not ret or 0 < end < count or frame is None: break
303
305
  if size: frame = image_utils.resize_image(frame, size=size)
304
306
  if task: frame = task(frame, **kwargs)
305
- data_info = {"frame": frame, "count": count, "w": w, "h": h, "fps": fps}
307
+ t = round(count / fps, 3)
308
+ data_info = {"count": count, "time": t, "frame": frame, "w": w, "h": h, "fps": fps, "offset": count}
306
309
  # TODO 返回data_info
307
310
  yield data_info
308
311
  frame = data_info["frame"]
@@ -316,6 +319,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
316
319
  if video_writer:
317
320
  print("save video:{}".format(save_video))
318
321
  video_writer.release()
322
+ # yield data_info # TODO FIX 最后一帧数据重复返回
319
323
 
320
324
 
321
325
  def resize_task(frame, **kwargs):
@@ -14,8 +14,6 @@ import glob
14
14
  import random
15
15
  import numbers
16
16
  import json
17
-
18
- from shapely.predicates import is_valid
19
17
  from tqdm import tqdm
20
18
  from pybaseutils import image_utils, file_utils, json_utils, text_utils
21
19
  from pybaseutils.dataloader.base_dataset import Dataset, ConcatDataset
@@ -152,7 +150,8 @@ class LabelMeDataset(Dataset):
152
150
  if not os.path.exists(image_file):
153
151
  continue
154
152
  annotation, width, height = self.load_annotations(anno_file)
155
- data_info = self.parser_annotation(annotation, self.total_names, min_points=self.min_points,
153
+ data_info = self.parser_annotation(annotation, self.total_names, size=(width, height),
154
+ min_points=self.min_points,
156
155
  unique=self.unique)
157
156
  if self.use_kpt:
158
157
  data_info = self.get_kpts_info(data_info, anno_file=anno_file, check_kpt=self.check_kpt, disp=True)
@@ -210,12 +209,12 @@ class LabelMeDataset(Dataset):
210
209
  annotation, width, height = self.load_annotations(anno_file)
211
210
  if self.kwargs.get("read_image", True): # 是否读取图片
212
211
  image = self.read_image(image_file, use_rgb=self.use_rgb)
213
- shape = image.shape
214
- size = (shape[1], shape[0])
212
+ height, width = image.shape[:2]
213
+ size = (width, height)
215
214
  else:
216
- image, shape, size = None, None, (width, height)
217
- data_info = self.parser_annotation(annotation, self.total_names, shape=shape,
218
- min_points=self.min_points, unique=self.unique)
215
+ image, size = None, (width, height)
216
+ data_info = self.parser_annotation(annotation, self.total_names, size=size, min_points=self.min_points,
217
+ unique=self.unique)
219
218
  if self.use_kpt:
220
219
  data_info = self.get_kpts_info(data_info, anno_file=anno_file, check_kpt=self.check_kpt)
221
220
  # TODO dict(boxes, labels, points, groups, names, keypoints)
@@ -319,11 +318,11 @@ class LabelMeDataset(Dataset):
319
318
  return image
320
319
 
321
320
  @staticmethod
322
- def parser_annotation(annotation: dict, class_dict={}, shape=None, min_points=-1, unique=False):
321
+ def parser_annotation(annotation: dict, class_dict={}, size=(), min_points=-1, unique=False):
323
322
  """
324
323
  :param annotation: labelme标注的数据
325
324
  :param class_dict: label映射,如{"person":0,"car":1}
326
- :param shape: 图片shape(H,W,C),可进行坐标点的维度检查,避免越界
325
+ :param size: 图片(W,H),可进行坐标点的维度检查,避免越界
327
326
  :param min_points: 当标注的轮廓点的个数小于等于min_points,会被剔除;负数不剔除
328
327
  :return:
329
328
  """
@@ -344,10 +343,9 @@ class LabelMeDataset(Dataset):
344
343
  continue
345
344
  gid = anno.get("group_id", gid_index) or gid_index
346
345
  kpt = anno.get("keypoints", [])
347
- if shape:
348
- h, w = shape[:2]
349
- pts[:, 0] = np.clip(pts[:, 0], 0, w - 1)
350
- pts[:, 1] = np.clip(pts[:, 1], 0, h - 1)
346
+ if size:
347
+ pts[:, 0] = np.clip(pts[:, 0], 0, size[0] - 1)
348
+ pts[:, 1] = np.clip(pts[:, 1], 0, size[1] - 1)
351
349
  box = image_utils.polygons2boxes([pts])[0]
352
350
  if shape_type == "rectangle":
353
351
  pts = image_utils.boxes2polygons([box])[0]
@@ -533,15 +531,15 @@ def LabelMeDatasets(filename=None,
533
531
  return datasets
534
532
 
535
533
 
536
- def parser_labelme(anno_file, class_dict={}, shape=None):
534
+ def parser_labelme(anno_file, class_dict={}, size=()):
537
535
  """
538
536
  :param annotation: labelme标注的数据
539
537
  :param class_dict: label映射
540
- :param shape: 图片shape(H,W,C),可进行坐标点的维度检查,避免越界
538
+ :param size: 图片shape(W,H),可进行坐标点的维度检查,避免越界
541
539
  :return:
542
540
  """
543
541
  annotation, width, height = LabelMeDataset.load_annotations(anno_file)
544
- data_info = LabelMeDataset.parser_annotation(annotation, class_dict, shape)
542
+ data_info = LabelMeDataset.parser_annotation(annotation, class_dict, size=size)
545
543
  return data_info
546
544
 
547
545
 
@@ -38,6 +38,7 @@ def check_postfix(file, postfix=IMG_POSTFIX):
38
38
  :param postfix:
39
39
  :return:
40
40
  """
41
+ if not isinstance(file, str): return False
41
42
  return any(file.endswith(p[1:]) for p in postfix)
42
43
 
43
44
 
@@ -72,7 +73,7 @@ def get_time(format="p"):
72
73
  """
73
74
  if format.lower() == "s": # 精确到秒
74
75
  # time = datetime.strftime(datetime.now(), '%Y%m%d%H%M%S')
75
- time = datetime.now().strftime("%Y%m%d%H%M%S")
76
+ time = datetime.now().strftime("%Y%m%d%H%M%S") # 20200508143059
76
77
  elif format.lower() == "p": # 精确到微妙
77
78
  # time = datetime.strftime(datetime.now(), '%Y%m%d_%H%M%S_%f') # 20200508_143059_379116
78
79
  time = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
@@ -80,6 +81,9 @@ def get_time(format="p"):
80
81
  elif format.lower() == "y": # 2025-06-18 11:02:05
81
82
  # time = datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S") #
82
83
  time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
84
+ elif format.lower() == "id": #
85
+ # time = datetime.strftime(datetime.now(), '%Y%m%d_%H%M%S_%f') # 20200508-14-30-59-379116
86
+ time = datetime.now().strftime("%Y%m%d-%H-%M-%S-%f")
83
87
  else:
84
88
  time = (str(datetime.now())[:-10]).replace(' ', '-').replace(':', '-')
85
89
  return time
@@ -302,15 +306,17 @@ class WriterTXT(object):
302
306
  self.f.close()
303
307
 
304
308
 
305
- def write_file(file, data, mode='wb'):
306
- """写二进制数据"""
309
+ def write_file(file, data, mode='w'):
310
+ """写数据"""
307
311
  with open(file, mode) as f: f.write(data)
308
312
 
309
313
 
310
- def read_file(file, mode='rb'):
311
- """读取二进制数据"""
312
- with open(file, mode) as f: key = f.read()
313
- return key
314
+ def read_file(file, mode='r'):
315
+ """读取数据"""
316
+ with open(file, mode) as f: data = f.read()
317
+ if mode == 'r':
318
+ data = data.strip().strip('\ufeff').strip('\xef\xbb\xbf')
319
+ return data
314
320
 
315
321
 
316
322
  def write_data(file, data, split=",", mode='w'):
@@ -348,13 +354,11 @@ def read_data(filename, split=",", convertNum=True):
348
354
  with open(filename, mode="r", encoding='utf-8') as f:
349
355
  lines = f.readlines()
350
356
  lines = [line.strip().strip('\ufeff').strip('\xef\xbb\xbf') for line in lines]
351
- if split is None:
352
- return lines
353
- else:
357
+ if split:
354
358
  lines = [line.split(split) for line in lines]
355
359
  if convertNum:
356
360
  for i, line in enumerate(lines):
357
- line = [str2number(l) for l in line]
361
+ line = [str2number(l) for l in line] if isinstance(line, list) else str2number(line)
358
362
  lines[i] = line
359
363
  return lines
360
364
 
@@ -362,7 +366,7 @@ def read_data(filename, split=",", convertNum=True):
362
366
  def str2number(x):
363
367
  """
364
368
  :param x:
365
- :return:
369
+ :return: 数值类型(int, float)或原始字符串
366
370
  """
367
371
  # 如果已经是数值类型,直接处理
368
372
  if isinstance(x, (int, float)):
@@ -1561,4 +1565,3 @@ if __name__ == '__main__':
1561
1565
 
1562
1566
  path = '/tmp/gradio/b988f43f2c87669461bbb6c831c5b3801017bc02cf6076c57ad1f4d581f76b35/image01.j'
1563
1567
  print(is_image(path))
1564
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybaseutils
3
- Version: 2.4.1
3
+ Version: 2.4.3
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-07-08 14:10:15
7
+ # @Brief : 转换labelme标注数据为voc格式
8
+ # --------------------------------------------------------
9
+ """
10
+ import os
11
+ import numpy as np
12
+ import cv2
13
+ from pybaseutils.converter import convert_labelme2voc
14
+ from pybaseutils import time_utils, image_utils, file_utils
15
+
16
+ if __name__ == "__main__":
17
+ image_dir = "/home/PKing/Downloads/image/摄像头ID.txt"
18
+ lines = file_utils.read_file(image_dir)
19
+ print(lines)
@@ -37,16 +37,16 @@ if __name__ == "__main__":
37
37
  names = None
38
38
  # names = ['person,身穿工作服,未穿工作服']
39
39
  # names = ['身穿工作服,未穿工作服', '手,手穿绝缘手套,手穿棉纱手套,手穿其他手套']
40
- anno_dir = ["/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/01-东莞-投退重合闸操作/dataset-v01/images"]
40
+ anno_dir = ["/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/23-更换绝缘子/dataset-v14-special/bugs/images"]
41
41
 
42
- anno_dir = ["/media/PKing/新加卷/project/smart-dinner/dataset/smart-dinner-01/images"]
43
- names = [ '人体', '转盘' ]
42
+ # anno_dir = ["/media/PKing/新加卷/project/smart-dinner/dataset/smart-dinner-01/images"]
43
+ # names = [ '人体', '转盘' ]
44
44
  dataset = parser_labelme.LabelMeDatasets(filename=None,
45
45
  data_root=None,
46
46
  anno_dir=anno_dir,
47
47
  image_dir=None,
48
48
  class_name=names,
49
- check=False,
49
+ check=True ,
50
50
  phase="val",
51
51
  shuffle=False)
52
52
  class_name = dataset.class_name
@@ -1,25 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- # --------------------------------------------------------
4
- # @Author : Pan
5
- # @E-mail :
6
- # @Date : 2025-07-08 14:10:15
7
- # @Brief : 转换labelme标注数据为voc格式
8
- # --------------------------------------------------------
9
- """
10
- import os
11
- import numpy as np
12
- import cv2
13
- from pybaseutils.converter import convert_labelme2voc
14
- from pybaseutils import time_utils, image_utils,file_utils
15
-
16
- if __name__ == "__main__":
17
- image_dir = "/home/PKing/Downloads/image"
18
- image_list = file_utils.get_images_list(image_dir)
19
- for image_file in image_list:
20
- src = image_utils.read_image(image_file, use_rgb=True)
21
- image_utils.show_image("src", src, delay=10)
22
- src = cv2.cvtColor(src, cv2.COLOR_BGR2RGB) # 将BGR转为RGB
23
- bs6 = image_utils.image2base64(src, use_rgb=True)
24
- out = image_utils.base642image(bs6, use_rgb=True)
25
- image_utils.show_image("out", out)
File without changes
File without changes