pybaseutils 2.2.20__tar.gz → 2.2.21__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 (283) hide show
  1. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/PKG-INFO +1 -1
  2. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/file_utils.py +6 -5
  4. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/font_style/__init__.py +1 -1
  5. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/font_utils.py +19 -5
  6. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/image_utils.py +23 -0
  7. pybaseutils-2.2.21/pybaseutils/web/demo.py +13 -0
  8. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils.egg-info/PKG-INFO +1 -1
  9. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils.egg-info/SOURCES.txt +1 -0
  10. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/demo_labelme_crop.py +50 -14
  11. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/demo_video_aije.py +3 -2
  12. pybaseutils-2.2.20/test_py/demo1.py → pybaseutils-2.2.21/test_py/audio_demo1.py +2 -1
  13. pybaseutils-2.2.21/test_py/demo1.py +14 -0
  14. pybaseutils-2.2.20/pybaseutils/web/demo.py +0 -85
  15. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/LICENCE +0 -0
  16. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/README.md +0 -0
  17. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/audio/__init__.py +0 -0
  18. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/audio/audio_utils.py +0 -0
  19. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/audio/pyaudio_utils.py +0 -0
  20. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/audio/vad_utils.py +0 -0
  21. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/base64_utils.py +0 -0
  22. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/batch_utils.py +0 -0
  23. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/build_utils/__init__.py +0 -0
  24. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/build_utils/cython_utils.py +0 -0
  25. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
  26. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cluster/__init__.py +0 -0
  27. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cluster/kmean.py +0 -0
  28. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cluster/maxmin_distance.py +0 -0
  29. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cluster/similarity.py +0 -0
  30. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/color_utils.py +0 -0
  31. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/config_utils.py +0 -0
  32. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/__init__.py +0 -0
  33. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/build_coco.py +0 -0
  34. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/build_cvat.py +0 -0
  35. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/build_labelme.py +0 -0
  36. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/build_voc.py +0 -0
  37. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/concat_coco.py +0 -0
  38. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  39. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_coco2voc.py +0 -0
  40. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
  41. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  42. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  43. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  44. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  45. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_voc2coco.py +0 -0
  46. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_voc2labelme.py +0 -0
  47. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_voc2voc.py +0 -0
  48. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  49. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  50. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/coords_utils.py +0 -0
  51. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/__init__.py +0 -0
  52. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/corner_utils.py +0 -0
  53. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/monitor.py +0 -0
  54. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/mouse_utils.py +0 -0
  55. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/nms_utils.py +0 -0
  56. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/cvutils/video_utils.py +0 -0
  57. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/__init__.py +0 -0
  58. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/balanced_classes.py +0 -0
  59. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/base_coco.py +0 -0
  60. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/base_dataset.py +0 -0
  61. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/data_resample.py +0 -0
  62. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  63. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  64. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  65. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_image_folder.py +0 -0
  66. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_image_text.py +0 -0
  67. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_labelme.py +0 -0
  68. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_voc.py +0 -0
  69. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/parser_yolo.py +0 -0
  70. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  71. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/QueueTable.py +0 -0
  72. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/__init__.py +0 -0
  73. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/demo.py +0 -0
  74. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/kalman_filter.py +0 -0
  75. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/mean_filter.py +0 -0
  76. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/motion_filter.py +0 -0
  77. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/filter/pose_filter.py +0 -0
  78. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/geometry_tools.py +0 -0
  79. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/heatmap_utils.py +0 -0
  80. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/http_utils.py +0 -0
  81. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/json_utils.py +0 -0
  82. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/log.py +0 -0
  83. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/log_utils.py +0 -0
  84. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/__init__.py +0 -0
  85. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/accuracy.py +0 -0
  86. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/average_meter.py +0 -0
  87. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/class_report.py +0 -0
  88. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/plot_pr.py +0 -0
  89. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/metrics/plot_roc.py +0 -0
  90. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/numpy_utils.py +0 -0
  91. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pandas_utils.py +0 -0
  92. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/plot_utils.py +0 -0
  93. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pose/__init__.py +0 -0
  94. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pose/bones_utils.py +0 -0
  95. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pose/human_pose.py +0 -0
  96. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pose/pose_utils.py +0 -0
  97. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pycpp/__init__.py +0 -0
  98. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pycpp/demo.py +0 -0
  99. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/pycpp/main.py +0 -0
  100. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/server/__init__.py +0 -0
  101. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/server/apm_server.py +0 -0
  102. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/setup_config.py +0 -0
  103. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/singleton_utils.py +0 -0
  104. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/text_utils.py +0 -0
  105. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/thread_utils.py +0 -0
  106. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/time_utils.py +0 -0
  107. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracemalloc_utils.py +0 -0
  108. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracemalloc_utils2.py +0 -0
  109. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/QueueTable.py +0 -0
  110. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/__init__.py +0 -0
  111. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/demo.py +0 -0
  112. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/kalman_filter.py +0 -0
  113. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/mean_filter.py +0 -0
  114. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/motion_filter.py +0 -0
  115. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/tracking/pose_filter.py +0 -0
  116. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/transforms/__init__.py +0 -0
  117. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/transforms/affine_transform.py +0 -0
  118. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/transforms/augment_utils.py +0 -0
  119. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/transforms/face_alignment.py +0 -0
  120. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/transforms/transform_utils.py +0 -0
  121. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/web/__init__.py +0 -0
  122. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/web/app_flask_image.py +0 -0
  123. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/web/app_stweb_image.py +0 -0
  124. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/web/app_webio_image.py +0 -0
  125. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/word_utils.py +0 -0
  126. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/worker.py +0 -0
  127. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils/yaml_utils.py +0 -0
  128. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils.egg-info/dependency_links.txt +0 -0
  129. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils.egg-info/not-zip-safe +0 -0
  130. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/pybaseutils.egg-info/top_level.txt +0 -0
  131. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/setup.cfg +0 -0
  132. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/setup.py +0 -0
  133. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/Image_enhance/__init__.py +0 -0
  134. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/Image_enhance/dmeo01.py +0 -0
  135. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/WebCrawler/__init__.py +0 -0
  136. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/WebCrawler/search_image.py +0 -0
  137. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
  138. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/__init__.py +0 -0
  139. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/__init__.py +0 -0
  140. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/action_dataset.py +0 -0
  141. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/build_cython.py +0 -0
  142. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/build_pyarmor.py +0 -0
  143. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/build_service.py +0 -0
  144. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/convert_cvat2labelme.py +0 -0
  145. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/convert_labelme2coco.py +0 -0
  146. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/convert_labelme2voc.py +0 -0
  147. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/copy_move.py +0 -0
  148. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/demo_labelme_shock.py +0 -0
  149. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/demo_voc_crop.py +0 -0
  150. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/demo_voc_vis.py +0 -0
  151. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/get_pair_data.py +0 -0
  152. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/aije/video_convertor.py +0 -0
  153. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/__init__.py +0 -0
  154. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/demo.py +0 -0
  155. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/main.py +0 -0
  156. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/main_read.py +0 -0
  157. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/segment.py +0 -0
  158. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  159. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/audio/speechbrain_demo.py +0 -0
  160. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/camera/__init__.py +0 -0
  161. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/camera/demo.py +0 -0
  162. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/captcha/__init__.py +0 -0
  163. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/captcha/demo.py +0 -0
  164. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/class_attribute.py +0 -0
  165. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/class_names.py +0 -0
  166. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/AffectNet.py +0 -0
  167. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/AsianMovie.py +0 -0
  168. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/BITVehicle2voc.py +0 -0
  169. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/BSTLD2voc.py +0 -0
  170. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/CCPD.py +0 -0
  171. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/CCPD2voc.py +0 -0
  172. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/FL3D_dataset.py +0 -0
  173. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/FreiHAND2coco.py +0 -0
  174. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/MTFL2voc.py +0 -0
  175. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/TT100K.py +0 -0
  176. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/WaterMeters1.py +0 -0
  177. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/WaterMeters2.py +0 -0
  178. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/__init__.py +0 -0
  179. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/concat_coco.py +0 -0
  180. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_coco2voc.py +0 -0
  181. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_cvat2labelme.py +0 -0
  182. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_gesture2hand.py +0 -0
  183. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_labelme2coco.py +0 -0
  184. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_labelme2cvat.py +0 -0
  185. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_labelme2voc.py +0 -0
  186. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/convert_voc2labelme.py +0 -0
  187. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/fatigue_driving.py +0 -0
  188. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/fdd_dataset.py +0 -0
  189. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/get_pair_data.py +0 -0
  190. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/handpose2coco.py +0 -0
  191. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/insects_for_aichallenger.py +0 -0
  192. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/tt100k_utils.py +0 -0
  193. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/ua_detrac2voc.py +0 -0
  194. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/ucf101_dataset.py +0 -0
  195. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/converter/voc_sbd2labelme.py +0 -0
  196. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/__init__.py +0 -0
  197. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/build_cython.py +0 -0
  198. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/build_pyarmor.py +0 -0
  199. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/cryptography_demo.py +0 -0
  200. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/fun_sum.py +0 -0
  201. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/main.py +0 -0
  202. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/model_des_enctypt.py +0 -0
  203. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/cython_build/model_enctypt.py +0 -0
  204. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/date_dataset.py +0 -0
  205. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/date_demo.py +0 -0
  206. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/datedataset_bk.py +0 -0
  207. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo2.py +0 -0
  208. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo3.py +0 -0
  209. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_async_await1.py +0 -0
  210. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_async_await2.py +0 -0
  211. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_coco_vis.py +0 -0
  212. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_copy_files.py +0 -0
  213. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_copy_files_for_voc.py +0 -0
  214. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_ffmpy.py +0 -0
  215. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_for_pair_file.py +0 -0
  216. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_for_polygon.py +0 -0
  217. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_for_trt.py +0 -0
  218. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_get_file_label.py +0 -0
  219. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_get_file_list.py +0 -0
  220. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_gif.py +0 -0
  221. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_gif_video.py +0 -0
  222. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_image_crop.py +0 -0
  223. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_kpts.py +0 -0
  224. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_labelme.py +0 -0
  225. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_labelme_crop.py +0 -0
  226. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_lableme_vis.py +0 -0
  227. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_metrics.py +0 -0
  228. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_mouse.py +0 -0
  229. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_nii.py +0 -0
  230. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_pandas.py +0 -0
  231. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_plot.py +0 -0
  232. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_rename.py +0 -0
  233. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_standard_image .py +0 -0
  234. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_standard_video .py +0 -0
  235. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_taichi.py +0 -0
  236. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_video.py +0 -0
  237. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_video_crop.py +0 -0
  238. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_voc_crop.py +0 -0
  239. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_voc_vis.py +0 -0
  240. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_word_similar.py +0 -0
  241. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_worker1.py +0 -0
  242. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/demo_worker2.py +0 -0
  243. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/detector/__init__.py +0 -0
  244. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/detector/demo.py +0 -0
  245. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/detector/detect_face_person.py +0 -0
  246. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/detector/predet_labelme.py +0 -0
  247. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/edit_distance/__init__.py +0 -0
  248. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/edit_distance/demo.py +0 -0
  249. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/edit_distance/text_matching.py +0 -0
  250. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/flask_demo/__init__.py +0 -0
  251. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/flask_demo/app.py +0 -0
  252. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/flask_demo/utils/__init__.py +0 -0
  253. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/flask_demo/utils/utils.py +0 -0
  254. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/get_file_list.py +0 -0
  255. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/image_correction/__init__.py +0 -0
  256. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/image_correction/demo_correction_v1.py +0 -0
  257. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/image_correction/demo_correction_v2.py +0 -0
  258. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/image_correction/demo_correction_v3.py +0 -0
  259. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/kafka_worker.py +0 -0
  260. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/men_tracemalloc.py +0 -0
  261. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/milvus_demo/__init__.py +0 -0
  262. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/milvus_demo/demo01.py +0 -0
  263. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/milvus_demo/demo02.py +0 -0
  264. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/milvus_demo/hello_milvus.py +0 -0
  265. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/milvus_demo/milvus_client.py +0 -0
  266. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/performance.py +0 -0
  267. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/pose/__init__.py +0 -0
  268. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/pose/human_pose.py +0 -0
  269. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/redis_py/__init__.py +0 -0
  270. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/redis_py/knn_search.py +0 -0
  271. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/redis_py/redis_client.py +0 -0
  272. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/registry/__init__.py +0 -0
  273. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/registry/base.py +0 -0
  274. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/registry/component.py +0 -0
  275. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/registry/main.py +0 -0
  276. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/registry/register.py +0 -0
  277. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/single_class/GRU.py +0 -0
  278. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/single_class/TCN.py +0 -0
  279. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/single_class/__init__.py +0 -0
  280. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/single_class/demo.py +0 -0
  281. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/test_fr/__init__.py +0 -0
  282. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/test_fr/demo11.py +0 -0
  283. {pybaseutils-2.2.20 → pybaseutils-2.2.21}/test_py/test_fr/idcardocr.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pybaseutils
3
- Version: 2.2.20
3
+ Version: 2.2.21
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.2.20'
11
+ __version__ = '2.2.21'
@@ -107,14 +107,14 @@ def combine_flags(flags: list, use_time=True, info=True):
107
107
  return out_flags
108
108
 
109
109
 
110
- def write_file(file, data):
110
+ def write_file(file, data, mode='wb'):
111
111
  """写二进制数据"""
112
- with open(file, 'wb') as f: f.write(data)
112
+ with open(file, mode) as f: f.write(data)
113
113
 
114
114
 
115
- def read_file(file):
115
+ def read_file(file, mode='rb'):
116
116
  """读取二进制数据"""
117
- with open(file, 'rb') as f: key = f.read()
117
+ with open(file, mode) as f: key = f.read()
118
118
  return key
119
119
 
120
120
 
@@ -700,7 +700,7 @@ def create_file_path(filename):
700
700
  return out_path
701
701
 
702
702
 
703
- def get_sub_paths(input_dir):
703
+ def get_sub_paths(input_dir, abspath=False):
704
704
  """
705
705
  当前路径下所有子目录
706
706
  :param input_dir:
@@ -714,6 +714,7 @@ def get_sub_paths(input_dir):
714
714
  # print(dirs) # 当前路径下所有子目录
715
715
  # print(files) # 当前路径下所有非目录子文件
716
716
  sub_list.sort()
717
+ if abspath: sub_list = [os.path.join(input_dir, p) for p in sub_list]
717
718
  return sub_list
718
719
 
719
720
 
@@ -6,7 +6,7 @@
6
6
  """
7
7
  import os
8
8
 
9
- # TODO 如果字体缺失,可以把字体拷贝到系统字体目录:cp -r fonts/* ~/.local/share/fonts/
9
+ # TODO 如果字体缺失,可以把字体拷贝到系统字体目录:cp -r font_style/*
10
10
  # windows: C:\Windows\Fonts可查看系统支持的字体
11
11
  # Linux : /usr/share/fonts/truetype 或者~/.local/share/fonts中 可查看系统支持的字体
12
12
 
@@ -58,9 +58,6 @@ class FontType(object):
58
58
  return self.font_type
59
59
 
60
60
 
61
- # font_type = FontType()
62
-
63
-
64
61
  def get_font_type(size, font=""):
65
62
  """
66
63
  Windows字体路径 : /usr/share/fonts/楷体.ttf
@@ -101,8 +98,7 @@ def draw_image_text(image, point, text, style="楷体", size=20, color=(255, 255
101
98
  font = ImageFont.truetype(style, size=size, encoding="utf-8")
102
99
  else:
103
100
  # simhei.ttf 是字体,你如果没有字体,需要下载
104
- font_type.set_font_style(style=style, size=size)
105
- font = font_type.get_font_type()
101
+ font = get_font_type(size=size)
106
102
  draw.text(point, text, fill=color, font=font)
107
103
  image = np.asarray(image)
108
104
  return image
@@ -211,6 +207,24 @@ def get_font_char(font_file, only_chinese=False):
211
207
  return fonts
212
208
 
213
209
 
210
+ def set_pyplot_font(font="simhei"):
211
+ """
212
+ 设置 seaborn,matplotlib等默认字体
213
+ :param font: 字体路径或者名称,或者使用默认的,SimHei
214
+ :return:
215
+ """
216
+ import seaborn
217
+ import matplotlib.pyplot as plt
218
+ import matplotlib.font_manager as fm
219
+ font_file = font if os.path.isfile(font) else FONT_TABLES[font]
220
+ font = os.path.basename(font_file).split(".")[0]
221
+ fm.fontManager.addfont(font_file)
222
+ plt.rcParams['font.sans-serif'] = [font]
223
+ plt.rcParams['axes.unicode_minus'] = False
224
+ seaborn.set_theme(font=font) # 增加一行代码, 设置 seaborn 使用的字体文件
225
+ return font_file
226
+
227
+
214
228
  def draw_font_example():
215
229
  size = 512
216
230
  string = "我"
@@ -2862,6 +2862,29 @@ def get_image_block(image, grid=[3, 3], same=False):
2862
2862
  return image_block
2863
2863
 
2864
2864
 
2865
+ def apply_mosaic(image, boxes, radius=8, scale=[1.0, 1.0]):
2866
+ """
2867
+ 马赛克
2868
+ :param image: BGR image
2869
+ :param boxes: 人脸框(xmin,ymin,xmax,ymax)
2870
+ :param radius: 马赛克强度
2871
+ :param scale: 人脸框扩大范围
2872
+ :return:
2873
+ """
2874
+ h, w = image.shape[:2]
2875
+ boxes = np.asarray(boxes, dtype=np.int32)
2876
+ boxes = extend_xyxy(boxes, scale=scale, valid_range=(0, 0, w, h))
2877
+ for box in boxes:
2878
+ x1, y1, x2, y2 = box
2879
+ roi = image[y1:y2, x1:x2]
2880
+ size = (max((x2 - x1) // radius, 5), max((y2 - y1) // radius, 5))
2881
+ img = cv2.resize(roi, size)
2882
+ # img = cv2.resize(roi, (radius, radius))
2883
+ img = cv2.resize(img, (x2 - x1, y2 - y1), interpolation=cv2.INTER_NEAREST)
2884
+ image[y1:y2, x1:x2] = img
2885
+ return image
2886
+
2887
+
2865
2888
  def image_composite(image: np.ndarray, alpha: np.ndarray, bg_img=(219, 142, 67)):
2866
2889
  """
2867
2890
  图像融合:合成图 = 前景*alpha+背景*(1-alpha)
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ # --------------------------------------------------------
4
+ # @Author : Pan
5
+ # @E-mail :
6
+ # @Date : 2025-02-27 16:03:39
7
+ # @Brief : 基于pywebio实现图像处理web小工具
8
+ # 运行方法:python app_webio_image.py
9
+ # --------------------------------------------------------
10
+ """
11
+
12
+ if __name__ == '__main__':
13
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pybaseutils
3
- Version: 2.2.20
3
+ Version: 2.2.21
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -124,6 +124,7 @@ pybaseutils/web/app_stweb_image.py
124
124
  pybaseutils/web/app_webio_image.py
125
125
  pybaseutils/web/demo.py
126
126
  test_py/__init__.py
127
+ test_py/audio_demo1.py
127
128
  test_py/class_attribute.py
128
129
  test_py/class_names.py
129
130
  test_py/date_dataset.py
@@ -12,7 +12,7 @@ from pybaseutils.dataloader import parser_labelme
12
12
  from pybaseutils import image_utils, file_utils
13
13
 
14
14
 
15
- def save_object_crops(data_info, out_dir, class_name=None, scale=[], square=False,
15
+ def save_object_crops(data_info, out_dir, class_name=None, target_name=None, scale=[], square=False,
16
16
  padding=False, min_size=20 * 20 * 3, flag="", vis=False):
17
17
  """
18
18
  对VOC的数据目标进行裁剪
@@ -51,22 +51,16 @@ def save_object_crops(data_info, out_dir, class_name=None, scale=[], square=Fals
51
51
  name = class_name[int(labels[i])] if class_name else labels[i]
52
52
  if out_dir:
53
53
  file_name = "{}_{:0=4d}_{}.jpg".format(image_id, i, flag) if flag else "{}_{:0=4d}.jpg".format(image_id, i)
54
- img_file = file_utils.create_dir(out_dir, name, file_name)
54
+ if target_name:
55
+ out_dir_ = out_dir if name in target_name else os.path.join(out_dir, "其他")
56
+ img_file = file_utils.create_dir(out_dir_, name, file_name)
57
+ else:
58
+ img_file = file_utils.create_dir(out_dir, name, file_name)
55
59
  cv2.imwrite(img_file, img)
56
60
  if vis: image_utils.cv_show_image("crop", img, use_rgb=False, delay=0)
57
61
 
58
62
 
59
- if __name__ == "__main__":
60
- """
61
- 对VOC的数据目标进行裁剪
62
- 室内:['主杆', '从此进出标示牌', '其他鞋', '吊物绳', '在此工作标示牌', '垫子', '安全带', '安全帽', '安全绳',
63
- '导线头', '尖嘴钳', '工具袋', '手', '扳手', '抹布', '未穿工作服','柱式绝缘子', '止步高压危险标示牌',
64
- '绝缘手套', '绝缘鞋', '脚扣', '螺丝', '身穿工作服', '遮拦杆', '铁架', '铝扎线']
65
- 室外: []
66
- """
67
- anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/dataset-v31/images"
68
- class_name = None # 室内\
69
- out_dir = os.path.join(os.path.dirname(anno_dir), "crops")
63
+ def crop_dataset(anno_dir, out_dir=None, class_name=None, target_name=None):
70
64
  dataset = parser_labelme.LabelMeDatasets(filename=None,
71
65
  data_root=None,
72
66
  anno_dir=anno_dir,
@@ -83,4 +77,46 @@ if __name__ == "__main__":
83
77
  # scale = None
84
78
  for i in tqdm(range(len(dataset))):
85
79
  data_info = dataset.__getitem__(i)
86
- save_object_crops(data_info, out_dir, class_name=class_name, scale=scale, flag=flag, vis=False)
80
+ save_object_crops(data_info, out_dir, class_name=class_name, target_name=target_name, scale=scale, flag=flag,
81
+ vis=False)
82
+
83
+
84
+ def get_sub_dataset(data_root):
85
+ sub_paths = file_utils.get_sub_paths(data_root, abspath=True)
86
+ datasets = []
87
+ for sub_path in sub_paths:
88
+ data_list = file_utils.get_sub_paths(sub_path, abspath=True)
89
+ data_list = [os.path.join(p, "images") for p in data_list if os.path.exists(os.path.join(p, "images"))]
90
+ datasets += data_list
91
+ return datasets
92
+
93
+
94
+ if __name__ == "__main__":
95
+ """
96
+ 对labelme的数据目标进行裁剪,用于制作分类数据集
97
+ """
98
+
99
+ target_name = ["身穿工作服", "未穿工作服",
100
+ "绝缘鞋", "脚穿绝缘鞋", "长筒靴", "脚穿长筒靴", "其他鞋", "脚穿其他鞋",
101
+ "手", "绝缘手套", "手穿绝缘手套", "棉纱手套", "手穿棉纱手套", "其他手套", "手穿其他手套",
102
+ "拨动开关分闸", "拨动开关合闸",
103
+ "电容柜开关合闸", "电容柜开关分闸",
104
+ "低压侧总刀闸合闸", "低压侧总刀闸分闸",
105
+ "面板单键开关断开", "面板单键开关合上",
106
+ "面板双键开关断开", "面板双键开关合上",
107
+ "表箱关", "表箱开", "手", "其他",
108
+ ]
109
+ datasets = [
110
+ "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/test-v2/dataset-v01/images",
111
+ "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/test-v2/dataset-v02/images",
112
+ ]
113
+ # dataroot = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det"
114
+ # datasets = get_sub_dataset(dataroot)
115
+ class_name = []
116
+ for anno_dir in datasets:
117
+ print(anno_dir)
118
+ out_dir = os.path.join(os.path.dirname(anno_dir), "crops")
119
+ if os.path.exists(out_dir) and out_dir.endswith("crops"): file_utils.remove_dir(out_dir)
120
+ file_utils.create_dir(out_dir)
121
+ file = file_utils.write_file(os.path.join(out_dir, "分类数据集,请勿删除.txt"), data="", mode="w")
122
+ crop_dataset(anno_dir, out_dir=out_dir, class_name=class_name, target_name=target_name)
@@ -72,7 +72,8 @@ def video2frames_similarity(video_file, out_dir=None, func=None, interval=1, thr
72
72
 
73
73
  # thresh_dict = {"1号视角": 0.5, "2号视角": 0.15, "3号视角": 0.3, "4号视角": 0.3}
74
74
  # thresh_dict = {"一号位": 0.58, "平视": 0.35, "俯视": 0.35, "右视": 0.25, "左视": 0.3}
75
- thresh_dict = {"第一视角": 0.50, "主视角": 0.50, "平视": 0.30, "俯视": 0.30, "右视": 0.35, "左视": 0.35, "全景": 0.30}
75
+ thresh_dict = {"第一视角": 0.50, "主视角": 0.50, "主视": 0.50, "平视": 0.30, "俯视": 0.30, "右视": 0.35, "左视": 0.35,
76
+ "全景": 0.30}
76
77
 
77
78
 
78
79
  # thresh_dict = {"1号位": 0.58, "平视": 0.35, "全景": 0.35, "俯视": 0.35, "右视": 0.25, "左视": 0.3}
@@ -91,7 +92,7 @@ def video2frames_demo(root, out, prefix="", thresh=0.2):
91
92
 
92
93
 
93
94
  if __name__ == "__main__":
94
- root = "/home/PKing/nasdata/dataset-dmai/AIJE/技能人才系统_数据集管理/01-江门四维数据/01-37道考题视频/江门四维2024-12-06-检查帽撑/video"
95
+ root = "/home/PKing/Downloads/video/08-更换熔丝"
95
96
  prefix = ""
96
97
  out = root + "-train"
97
98
  video2frames_demo(root, out, prefix=prefix)
@@ -27,5 +27,6 @@ stream = pa.open(format=pa.get_format_from_width(wf.getsampwidth()), # 从wf中
27
27
  output=True) # 设置为输出
28
28
  count = 0
29
29
  while count < 8 * 500:
30
- data = wf.readframes(100)
30
+ time.sleep(0.001)
31
+ data = wf.readframes(15)
31
32
  stream.write(data)
@@ -0,0 +1,14 @@
1
+ import requests
2
+ from urllib.parse import urljoin, urlparse
3
+ from bs4 import BeautifulSoup
4
+ from pybaseutils import file_utils, json_utils
5
+ import glob
6
+
7
+ # 使用示例
8
+ if __name__ == "__main__":
9
+ data_root = "http://aije-mvp-nginx.partner.dm-ai.com/req-resp/aije-job-m8ch701s-awbg/*.json"
10
+ # data_root = "/media/PKing/新加卷/SDK/base-utils/data/person/*.json"
11
+ file = glob.glob(data_root)
12
+ print(file)
13
+ data =json_utils.read_json_data("http://aije-mvp-nginx.partner.dm-ai.com/req-resp/aije-job-m8ch701s-awbg/nlp-12.json")
14
+ print(data)
@@ -1,85 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- # --------------------------------------------------------
4
- # @Author : Pan
5
- # @E-mail :
6
- # @Date : 2025-02-27 16:03:39
7
- # @Brief : 基于pywebio实现图像处理web小工具
8
- # 运行方法:python app_webio_image.py
9
- # --------------------------------------------------------
10
- """
11
- from pywebio.output import *
12
- from pywebio.input import file_upload
13
- from pywebio.session import set_env, defer_call, run_async
14
- from pywebio import start_server
15
- import cv2
16
- import numpy as np
17
-
18
- current_images = [] # 存储处理后的图像列表
19
- current_index = 0 # 当前显示索引
20
-
21
-
22
- def apply_blur(image_bytes):
23
- """OpenCV高斯模糊处理"""
24
- img = cv2.imdecode(np.frombuffer(image_bytes, np.uint8), cv2.IMREAD_COLOR)
25
- blurred = cv2.GaussianBlur(img, (15, 15), 0)
26
- _, encoded = cv2.imencode('.jpg', blurred)
27
- return encoded.tobytes()
28
-
29
-
30
- def handle_single_image():
31
- global current_images, current_index
32
- file = file_upload("选择图片", accept="image/*")
33
- if file:
34
- processed = apply_blur(file['content'])
35
- current_images = [processed]
36
- current_index = 0
37
- with use_scope('main', clear=True):
38
- put_row([
39
- put_image(file['content'], width="45%", title="原始图片"),
40
- put_image(processed, width="45%", title="模糊处理")
41
- ])
42
-
43
-
44
- def handle_batch_images():
45
- global current_images, current_index
46
- files = file_upload("选择目录", accept="image/*", multiple=True)
47
- if files:
48
- current_images = [apply_blur(f['content']) for f in files]
49
- current_index = 0
50
- update_display()
51
-
52
-
53
- def update_display(delta=0):
54
- global current_index
55
- if not current_images:
56
- return
57
- current_index = (current_index + delta) % len(current_images)
58
- with use_scope('main', clear=True):
59
- put_image(current_images[current_index], width="90%",
60
- title=f"已处理图片 {current_index + 1}/{len(current_images)}")
61
-
62
-
63
- # @defer_call
64
- # def cleanup():
65
- # current_images.clear()
66
-
67
-
68
- def main():
69
- set_env(title="图像模糊处理工具")
70
-
71
- # 侧边栏布局
72
- put_row([
73
- put_button("选择图片", onclick=handle_single_image),
74
- put_button("选择目录", onclick=handle_batch_images),
75
- put_buttons(['← 上一张', '下一张 →'],
76
- onclick=[lambda: update_display(-1), lambda: update_display(1)])
77
- ], position=0, scope='sidebar')
78
-
79
- # 主显示区初始化
80
- with use_scope('main'):
81
- put_markdown("## 欢迎使用图像模糊处理工具!")
82
-
83
-
84
- if __name__ == '__main__':
85
- start_server(main, port=8080, debug=False, auto_open_webbrowser=True)
File without changes
File without changes