commit f91b09da9de51c5ffb55817233e14b13781a1f16
Author: koko <1429659362@qq.com>
Date: Wed Oct 1 10:43:55 2025 +0800
origin
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/innovate_project.iml b/.idea/innovate_project.iml
new file mode 100644
index 0000000..909438d
--- /dev/null
+++ b/.idea/innovate_project.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..bebfaed
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a6218fe
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..7324a32
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..d843f34
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/OpenCV/data/13-l.bmp b/OpenCV/data/13-l.bmp
new file mode 100644
index 0000000..f73e3ba
Binary files /dev/null and b/OpenCV/data/13-l.bmp differ
diff --git a/OpenCV/data/test3/l1.jpeg b/OpenCV/data/test3/l1.jpeg
new file mode 100644
index 0000000..44aa204
Binary files /dev/null and b/OpenCV/data/test3/l1.jpeg differ
diff --git a/OpenCV/data/test3/l10.jpeg b/OpenCV/data/test3/l10.jpeg
new file mode 100644
index 0000000..3ce086a
Binary files /dev/null and b/OpenCV/data/test3/l10.jpeg differ
diff --git a/OpenCV/data/test3/l11.jpeg b/OpenCV/data/test3/l11.jpeg
new file mode 100644
index 0000000..58eb35c
Binary files /dev/null and b/OpenCV/data/test3/l11.jpeg differ
diff --git a/OpenCV/data/test3/l12.jpeg b/OpenCV/data/test3/l12.jpeg
new file mode 100644
index 0000000..3580607
Binary files /dev/null and b/OpenCV/data/test3/l12.jpeg differ
diff --git a/OpenCV/data/test3/l13.jpeg b/OpenCV/data/test3/l13.jpeg
new file mode 100644
index 0000000..798a5d9
Binary files /dev/null and b/OpenCV/data/test3/l13.jpeg differ
diff --git a/OpenCV/data/test3/l14.jpeg b/OpenCV/data/test3/l14.jpeg
new file mode 100644
index 0000000..73eb294
Binary files /dev/null and b/OpenCV/data/test3/l14.jpeg differ
diff --git a/OpenCV/data/test3/l15.jpeg b/OpenCV/data/test3/l15.jpeg
new file mode 100644
index 0000000..516561a
Binary files /dev/null and b/OpenCV/data/test3/l15.jpeg differ
diff --git a/OpenCV/data/test3/l16.jpeg b/OpenCV/data/test3/l16.jpeg
new file mode 100644
index 0000000..c2b7704
Binary files /dev/null and b/OpenCV/data/test3/l16.jpeg differ
diff --git a/OpenCV/data/test3/l17.jpeg b/OpenCV/data/test3/l17.jpeg
new file mode 100644
index 0000000..0922bdf
Binary files /dev/null and b/OpenCV/data/test3/l17.jpeg differ
diff --git a/OpenCV/data/test3/l18.jpeg b/OpenCV/data/test3/l18.jpeg
new file mode 100644
index 0000000..c7382e9
Binary files /dev/null and b/OpenCV/data/test3/l18.jpeg differ
diff --git a/OpenCV/data/test3/l19.jpeg b/OpenCV/data/test3/l19.jpeg
new file mode 100644
index 0000000..2fc3a6d
Binary files /dev/null and b/OpenCV/data/test3/l19.jpeg differ
diff --git a/OpenCV/data/test3/l2.jpeg b/OpenCV/data/test3/l2.jpeg
new file mode 100644
index 0000000..270001d
Binary files /dev/null and b/OpenCV/data/test3/l2.jpeg differ
diff --git a/OpenCV/data/test3/l20.jpeg b/OpenCV/data/test3/l20.jpeg
new file mode 100644
index 0000000..f98ab2d
Binary files /dev/null and b/OpenCV/data/test3/l20.jpeg differ
diff --git a/OpenCV/data/test3/l21.jpeg b/OpenCV/data/test3/l21.jpeg
new file mode 100644
index 0000000..20e483a
Binary files /dev/null and b/OpenCV/data/test3/l21.jpeg differ
diff --git a/OpenCV/data/test3/l22.jpeg b/OpenCV/data/test3/l22.jpeg
new file mode 100644
index 0000000..41330d2
Binary files /dev/null and b/OpenCV/data/test3/l22.jpeg differ
diff --git a/OpenCV/data/test3/l23.jpeg b/OpenCV/data/test3/l23.jpeg
new file mode 100644
index 0000000..4c46f79
Binary files /dev/null and b/OpenCV/data/test3/l23.jpeg differ
diff --git a/OpenCV/data/test3/l24.jpeg b/OpenCV/data/test3/l24.jpeg
new file mode 100644
index 0000000..1d0b644
Binary files /dev/null and b/OpenCV/data/test3/l24.jpeg differ
diff --git a/OpenCV/data/test3/l25.jpeg b/OpenCV/data/test3/l25.jpeg
new file mode 100644
index 0000000..2a0903f
Binary files /dev/null and b/OpenCV/data/test3/l25.jpeg differ
diff --git a/OpenCV/data/test3/l26.jpeg b/OpenCV/data/test3/l26.jpeg
new file mode 100644
index 0000000..ab01fbe
Binary files /dev/null and b/OpenCV/data/test3/l26.jpeg differ
diff --git a/OpenCV/data/test3/l27.jpeg b/OpenCV/data/test3/l27.jpeg
new file mode 100644
index 0000000..221b569
Binary files /dev/null and b/OpenCV/data/test3/l27.jpeg differ
diff --git a/OpenCV/data/test3/l28.jpeg b/OpenCV/data/test3/l28.jpeg
new file mode 100644
index 0000000..702dad6
Binary files /dev/null and b/OpenCV/data/test3/l28.jpeg differ
diff --git a/OpenCV/data/test3/l29.jpeg b/OpenCV/data/test3/l29.jpeg
new file mode 100644
index 0000000..a333a8e
Binary files /dev/null and b/OpenCV/data/test3/l29.jpeg differ
diff --git a/OpenCV/data/test3/l3.jpeg b/OpenCV/data/test3/l3.jpeg
new file mode 100644
index 0000000..fb18b13
Binary files /dev/null and b/OpenCV/data/test3/l3.jpeg differ
diff --git a/OpenCV/data/test3/l30.jpeg b/OpenCV/data/test3/l30.jpeg
new file mode 100644
index 0000000..1840351
Binary files /dev/null and b/OpenCV/data/test3/l30.jpeg differ
diff --git a/OpenCV/data/test3/l31.jpeg b/OpenCV/data/test3/l31.jpeg
new file mode 100644
index 0000000..43273eb
Binary files /dev/null and b/OpenCV/data/test3/l31.jpeg differ
diff --git a/OpenCV/data/test3/l32.jpeg b/OpenCV/data/test3/l32.jpeg
new file mode 100644
index 0000000..f430e45
Binary files /dev/null and b/OpenCV/data/test3/l32.jpeg differ
diff --git a/OpenCV/data/test3/l33.jpeg b/OpenCV/data/test3/l33.jpeg
new file mode 100644
index 0000000..b9a1b97
Binary files /dev/null and b/OpenCV/data/test3/l33.jpeg differ
diff --git a/OpenCV/data/test3/l34.jpeg b/OpenCV/data/test3/l34.jpeg
new file mode 100644
index 0000000..e0209d2
Binary files /dev/null and b/OpenCV/data/test3/l34.jpeg differ
diff --git a/OpenCV/data/test3/l35.jpeg b/OpenCV/data/test3/l35.jpeg
new file mode 100644
index 0000000..71ea537
Binary files /dev/null and b/OpenCV/data/test3/l35.jpeg differ
diff --git a/OpenCV/data/test3/l36.jpeg b/OpenCV/data/test3/l36.jpeg
new file mode 100644
index 0000000..a3aa304
Binary files /dev/null and b/OpenCV/data/test3/l36.jpeg differ
diff --git a/OpenCV/data/test3/l37.jpeg b/OpenCV/data/test3/l37.jpeg
new file mode 100644
index 0000000..9606d7c
Binary files /dev/null and b/OpenCV/data/test3/l37.jpeg differ
diff --git a/OpenCV/data/test3/l38.jpeg b/OpenCV/data/test3/l38.jpeg
new file mode 100644
index 0000000..75dd5e8
Binary files /dev/null and b/OpenCV/data/test3/l38.jpeg differ
diff --git a/OpenCV/data/test3/l39.jpeg b/OpenCV/data/test3/l39.jpeg
new file mode 100644
index 0000000..1a962de
Binary files /dev/null and b/OpenCV/data/test3/l39.jpeg differ
diff --git a/OpenCV/data/test3/l4.jpeg b/OpenCV/data/test3/l4.jpeg
new file mode 100644
index 0000000..1821dd8
Binary files /dev/null and b/OpenCV/data/test3/l4.jpeg differ
diff --git a/OpenCV/data/test3/l40.jpeg b/OpenCV/data/test3/l40.jpeg
new file mode 100644
index 0000000..c2b1ccb
Binary files /dev/null and b/OpenCV/data/test3/l40.jpeg differ
diff --git a/OpenCV/data/test3/l41.jpeg b/OpenCV/data/test3/l41.jpeg
new file mode 100644
index 0000000..9f57b36
Binary files /dev/null and b/OpenCV/data/test3/l41.jpeg differ
diff --git a/OpenCV/data/test3/l42.jpeg b/OpenCV/data/test3/l42.jpeg
new file mode 100644
index 0000000..9df4963
Binary files /dev/null and b/OpenCV/data/test3/l42.jpeg differ
diff --git a/OpenCV/data/test3/l43.jpeg b/OpenCV/data/test3/l43.jpeg
new file mode 100644
index 0000000..d1b4a84
Binary files /dev/null and b/OpenCV/data/test3/l43.jpeg differ
diff --git a/OpenCV/data/test3/l44.jpeg b/OpenCV/data/test3/l44.jpeg
new file mode 100644
index 0000000..5767e8f
Binary files /dev/null and b/OpenCV/data/test3/l44.jpeg differ
diff --git a/OpenCV/data/test3/l45.jpeg b/OpenCV/data/test3/l45.jpeg
new file mode 100644
index 0000000..1949944
Binary files /dev/null and b/OpenCV/data/test3/l45.jpeg differ
diff --git a/OpenCV/data/test3/l46.jpeg b/OpenCV/data/test3/l46.jpeg
new file mode 100644
index 0000000..39873a2
Binary files /dev/null and b/OpenCV/data/test3/l46.jpeg differ
diff --git a/OpenCV/data/test3/l47.jpeg b/OpenCV/data/test3/l47.jpeg
new file mode 100644
index 0000000..f34ea57
Binary files /dev/null and b/OpenCV/data/test3/l47.jpeg differ
diff --git a/OpenCV/data/test3/l48.jpeg b/OpenCV/data/test3/l48.jpeg
new file mode 100644
index 0000000..0245855
Binary files /dev/null and b/OpenCV/data/test3/l48.jpeg differ
diff --git a/OpenCV/data/test3/l49.jpeg b/OpenCV/data/test3/l49.jpeg
new file mode 100644
index 0000000..2ed498a
Binary files /dev/null and b/OpenCV/data/test3/l49.jpeg differ
diff --git a/OpenCV/data/test3/l5.jpeg b/OpenCV/data/test3/l5.jpeg
new file mode 100644
index 0000000..c0ce101
Binary files /dev/null and b/OpenCV/data/test3/l5.jpeg differ
diff --git a/OpenCV/data/test3/l50.jpeg b/OpenCV/data/test3/l50.jpeg
new file mode 100644
index 0000000..4fb646e
Binary files /dev/null and b/OpenCV/data/test3/l50.jpeg differ
diff --git a/OpenCV/data/test3/l6.jpeg b/OpenCV/data/test3/l6.jpeg
new file mode 100644
index 0000000..0ea9573
Binary files /dev/null and b/OpenCV/data/test3/l6.jpeg differ
diff --git a/OpenCV/data/test3/l7.jpeg b/OpenCV/data/test3/l7.jpeg
new file mode 100644
index 0000000..041f9d3
Binary files /dev/null and b/OpenCV/data/test3/l7.jpeg differ
diff --git a/OpenCV/data/test3/l8.jpeg b/OpenCV/data/test3/l8.jpeg
new file mode 100644
index 0000000..bb5379c
Binary files /dev/null and b/OpenCV/data/test3/l8.jpeg differ
diff --git a/OpenCV/data/test3/l9.jpeg b/OpenCV/data/test3/l9.jpeg
new file mode 100644
index 0000000..6a784fa
Binary files /dev/null and b/OpenCV/data/test3/l9.jpeg differ
diff --git a/OpenCV/data/test3/r1.jpeg b/OpenCV/data/test3/r1.jpeg
new file mode 100644
index 0000000..cbf9989
Binary files /dev/null and b/OpenCV/data/test3/r1.jpeg differ
diff --git a/OpenCV/data/test3/r10.jpeg b/OpenCV/data/test3/r10.jpeg
new file mode 100644
index 0000000..ed69024
Binary files /dev/null and b/OpenCV/data/test3/r10.jpeg differ
diff --git a/OpenCV/data/test3/r11.jpeg b/OpenCV/data/test3/r11.jpeg
new file mode 100644
index 0000000..009b3e2
Binary files /dev/null and b/OpenCV/data/test3/r11.jpeg differ
diff --git a/OpenCV/data/test3/r12.jpeg b/OpenCV/data/test3/r12.jpeg
new file mode 100644
index 0000000..d388948
Binary files /dev/null and b/OpenCV/data/test3/r12.jpeg differ
diff --git a/OpenCV/data/test3/r13.jpeg b/OpenCV/data/test3/r13.jpeg
new file mode 100644
index 0000000..6552548
Binary files /dev/null and b/OpenCV/data/test3/r13.jpeg differ
diff --git a/OpenCV/data/test3/r14.jpeg b/OpenCV/data/test3/r14.jpeg
new file mode 100644
index 0000000..095b975
Binary files /dev/null and b/OpenCV/data/test3/r14.jpeg differ
diff --git a/OpenCV/data/test3/r15.jpeg b/OpenCV/data/test3/r15.jpeg
new file mode 100644
index 0000000..9b26caa
Binary files /dev/null and b/OpenCV/data/test3/r15.jpeg differ
diff --git a/OpenCV/data/test3/r16.jpeg b/OpenCV/data/test3/r16.jpeg
new file mode 100644
index 0000000..bce4f3c
Binary files /dev/null and b/OpenCV/data/test3/r16.jpeg differ
diff --git a/OpenCV/data/test3/r17.jpeg b/OpenCV/data/test3/r17.jpeg
new file mode 100644
index 0000000..5c2eed8
Binary files /dev/null and b/OpenCV/data/test3/r17.jpeg differ
diff --git a/OpenCV/data/test3/r18.jpeg b/OpenCV/data/test3/r18.jpeg
new file mode 100644
index 0000000..796bd51
Binary files /dev/null and b/OpenCV/data/test3/r18.jpeg differ
diff --git a/OpenCV/data/test3/r19.jpeg b/OpenCV/data/test3/r19.jpeg
new file mode 100644
index 0000000..8c7a755
Binary files /dev/null and b/OpenCV/data/test3/r19.jpeg differ
diff --git a/OpenCV/data/test3/r2.jpeg b/OpenCV/data/test3/r2.jpeg
new file mode 100644
index 0000000..59bca56
Binary files /dev/null and b/OpenCV/data/test3/r2.jpeg differ
diff --git a/OpenCV/data/test3/r20.jpeg b/OpenCV/data/test3/r20.jpeg
new file mode 100644
index 0000000..719b819
Binary files /dev/null and b/OpenCV/data/test3/r20.jpeg differ
diff --git a/OpenCV/data/test3/r21.jpeg b/OpenCV/data/test3/r21.jpeg
new file mode 100644
index 0000000..0304acf
Binary files /dev/null and b/OpenCV/data/test3/r21.jpeg differ
diff --git a/OpenCV/data/test3/r22.jpeg b/OpenCV/data/test3/r22.jpeg
new file mode 100644
index 0000000..f8a9c54
Binary files /dev/null and b/OpenCV/data/test3/r22.jpeg differ
diff --git a/OpenCV/data/test3/r23.jpeg b/OpenCV/data/test3/r23.jpeg
new file mode 100644
index 0000000..c5c933e
Binary files /dev/null and b/OpenCV/data/test3/r23.jpeg differ
diff --git a/OpenCV/data/test3/r24.jpeg b/OpenCV/data/test3/r24.jpeg
new file mode 100644
index 0000000..c278bdd
Binary files /dev/null and b/OpenCV/data/test3/r24.jpeg differ
diff --git a/OpenCV/data/test3/r25.jpeg b/OpenCV/data/test3/r25.jpeg
new file mode 100644
index 0000000..402b5f8
Binary files /dev/null and b/OpenCV/data/test3/r25.jpeg differ
diff --git a/OpenCV/data/test3/r26.jpeg b/OpenCV/data/test3/r26.jpeg
new file mode 100644
index 0000000..b677705
Binary files /dev/null and b/OpenCV/data/test3/r26.jpeg differ
diff --git a/OpenCV/data/test3/r27.jpeg b/OpenCV/data/test3/r27.jpeg
new file mode 100644
index 0000000..b677705
Binary files /dev/null and b/OpenCV/data/test3/r27.jpeg differ
diff --git a/OpenCV/data/test3/r28.jpeg b/OpenCV/data/test3/r28.jpeg
new file mode 100644
index 0000000..debfc00
Binary files /dev/null and b/OpenCV/data/test3/r28.jpeg differ
diff --git a/OpenCV/data/test3/r29.jpeg b/OpenCV/data/test3/r29.jpeg
new file mode 100644
index 0000000..8be433d
Binary files /dev/null and b/OpenCV/data/test3/r29.jpeg differ
diff --git a/OpenCV/data/test3/r3.jpeg b/OpenCV/data/test3/r3.jpeg
new file mode 100644
index 0000000..78b40e3
Binary files /dev/null and b/OpenCV/data/test3/r3.jpeg differ
diff --git a/OpenCV/data/test3/r30.jpeg b/OpenCV/data/test3/r30.jpeg
new file mode 100644
index 0000000..488d7ee
Binary files /dev/null and b/OpenCV/data/test3/r30.jpeg differ
diff --git a/OpenCV/data/test3/r31.jpeg b/OpenCV/data/test3/r31.jpeg
new file mode 100644
index 0000000..7759949
Binary files /dev/null and b/OpenCV/data/test3/r31.jpeg differ
diff --git a/OpenCV/data/test3/r32.jpeg b/OpenCV/data/test3/r32.jpeg
new file mode 100644
index 0000000..087820c
Binary files /dev/null and b/OpenCV/data/test3/r32.jpeg differ
diff --git a/OpenCV/data/test3/r33.jpeg b/OpenCV/data/test3/r33.jpeg
new file mode 100644
index 0000000..452cc5f
Binary files /dev/null and b/OpenCV/data/test3/r33.jpeg differ
diff --git a/OpenCV/data/test3/r34.jpeg b/OpenCV/data/test3/r34.jpeg
new file mode 100644
index 0000000..3f29c1c
Binary files /dev/null and b/OpenCV/data/test3/r34.jpeg differ
diff --git a/OpenCV/data/test3/r35.jpeg b/OpenCV/data/test3/r35.jpeg
new file mode 100644
index 0000000..59ea162
Binary files /dev/null and b/OpenCV/data/test3/r35.jpeg differ
diff --git a/OpenCV/data/test3/r36.jpeg b/OpenCV/data/test3/r36.jpeg
new file mode 100644
index 0000000..e929d13
Binary files /dev/null and b/OpenCV/data/test3/r36.jpeg differ
diff --git a/OpenCV/data/test3/r37.jpeg b/OpenCV/data/test3/r37.jpeg
new file mode 100644
index 0000000..919caaa
Binary files /dev/null and b/OpenCV/data/test3/r37.jpeg differ
diff --git a/OpenCV/data/test3/r38.jpeg b/OpenCV/data/test3/r38.jpeg
new file mode 100644
index 0000000..a235f4c
Binary files /dev/null and b/OpenCV/data/test3/r38.jpeg differ
diff --git a/OpenCV/data/test3/r39.jpeg b/OpenCV/data/test3/r39.jpeg
new file mode 100644
index 0000000..50a2c17
Binary files /dev/null and b/OpenCV/data/test3/r39.jpeg differ
diff --git a/OpenCV/data/test3/r4.jpeg b/OpenCV/data/test3/r4.jpeg
new file mode 100644
index 0000000..d0c2ebd
Binary files /dev/null and b/OpenCV/data/test3/r4.jpeg differ
diff --git a/OpenCV/data/test3/r40.jpeg b/OpenCV/data/test3/r40.jpeg
new file mode 100644
index 0000000..907c4fa
Binary files /dev/null and b/OpenCV/data/test3/r40.jpeg differ
diff --git a/OpenCV/data/test3/r41.jpeg b/OpenCV/data/test3/r41.jpeg
new file mode 100644
index 0000000..668eec3
Binary files /dev/null and b/OpenCV/data/test3/r41.jpeg differ
diff --git a/OpenCV/data/test3/r42.jpeg b/OpenCV/data/test3/r42.jpeg
new file mode 100644
index 0000000..99acc47
Binary files /dev/null and b/OpenCV/data/test3/r42.jpeg differ
diff --git a/OpenCV/data/test3/r43.jpeg b/OpenCV/data/test3/r43.jpeg
new file mode 100644
index 0000000..02980f8
Binary files /dev/null and b/OpenCV/data/test3/r43.jpeg differ
diff --git a/OpenCV/data/test3/r44.jpeg b/OpenCV/data/test3/r44.jpeg
new file mode 100644
index 0000000..e3e0c62
Binary files /dev/null and b/OpenCV/data/test3/r44.jpeg differ
diff --git a/OpenCV/data/test3/r45.jpeg b/OpenCV/data/test3/r45.jpeg
new file mode 100644
index 0000000..643de51
Binary files /dev/null and b/OpenCV/data/test3/r45.jpeg differ
diff --git a/OpenCV/data/test3/r46.jpeg b/OpenCV/data/test3/r46.jpeg
new file mode 100644
index 0000000..ec2add3
Binary files /dev/null and b/OpenCV/data/test3/r46.jpeg differ
diff --git a/OpenCV/data/test3/r47.jpeg b/OpenCV/data/test3/r47.jpeg
new file mode 100644
index 0000000..6927220
Binary files /dev/null and b/OpenCV/data/test3/r47.jpeg differ
diff --git a/OpenCV/data/test3/r48.jpeg b/OpenCV/data/test3/r48.jpeg
new file mode 100644
index 0000000..044b144
Binary files /dev/null and b/OpenCV/data/test3/r48.jpeg differ
diff --git a/OpenCV/data/test3/r49.jpeg b/OpenCV/data/test3/r49.jpeg
new file mode 100644
index 0000000..26282ae
Binary files /dev/null and b/OpenCV/data/test3/r49.jpeg differ
diff --git a/OpenCV/data/test3/r5.jpeg b/OpenCV/data/test3/r5.jpeg
new file mode 100644
index 0000000..d0c2ebd
Binary files /dev/null and b/OpenCV/data/test3/r5.jpeg differ
diff --git a/OpenCV/data/test3/r50.jpeg b/OpenCV/data/test3/r50.jpeg
new file mode 100644
index 0000000..fe179e7
Binary files /dev/null and b/OpenCV/data/test3/r50.jpeg differ
diff --git a/OpenCV/data/test3/r6.jpeg b/OpenCV/data/test3/r6.jpeg
new file mode 100644
index 0000000..57a675e
Binary files /dev/null and b/OpenCV/data/test3/r6.jpeg differ
diff --git a/OpenCV/data/test3/r7.jpeg b/OpenCV/data/test3/r7.jpeg
new file mode 100644
index 0000000..fcdbebe
Binary files /dev/null and b/OpenCV/data/test3/r7.jpeg differ
diff --git a/OpenCV/data/test3/r8.jpeg b/OpenCV/data/test3/r8.jpeg
new file mode 100644
index 0000000..36cd7fb
Binary files /dev/null and b/OpenCV/data/test3/r8.jpeg differ
diff --git a/OpenCV/data/test3/r9.jpeg b/OpenCV/data/test3/r9.jpeg
new file mode 100644
index 0000000..afd2f36
Binary files /dev/null and b/OpenCV/data/test3/r9.jpeg differ
diff --git a/OpenCV/detect_weld.py b/OpenCV/detect_weld.py
new file mode 100644
index 0000000..5715db6
--- /dev/null
+++ b/OpenCV/detect_weld.py
@@ -0,0 +1,112 @@
+import cv2
+import numpy as np
+import math
+import os
+
+
+def find_and_mask_weld_seam_v3(image_path):
+ """
+ 加载图像,使用更激进的预处理方法检测低对比度直线。
+ :param image_path: 输入图像的完整路径。
+ :return: None
+ """
+ # --- 步骤 1: 加载图像 ---
+ image = cv2.imread(image_path)
+ if image is None:
+ print(f"错误: 无法加载图像 '{image_path}'。")
+ return
+ visualization_image = image.copy()
+ height, width, _ = image.shape
+ image_center_x = width / 2
+
+ # --- 步骤 2: 图像预处理 (超强版) ---
+ gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+ # 2.1 高斯模糊以去除噪声
+ blurred = cv2.GaussianBlur(gray, (5, 5), 0)
+
+ # 2.2 自适应阈值二值化 (关键步骤!)
+ # 这个操作对于光照不均、对比度低的区域效果非常好,能强制分离出边缘
+ # blocksize: 邻域大小,必须是奇数
+ # C: 从均值或加权均值中减去的常数,用于微调
+ binary_image = cv2.adaptiveThreshold(
+ blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
+ cv2.THRESH_BINARY_INV, 21, 5
+ )
+ # 使用THRESH_BINARY_INV是因为我们感兴趣的边缘是暗色背景下的亮色线条
+
+ # 2.3 形态学操作来清理和连接线条
+ # 创建一个垂直的结构元素,因为我们的目标是垂直线
+ kernel = np.ones((15, 1), np.uint8) # 强调垂直方向
+ # 使用“闭运算”来填充断开的线段中的小洞
+ closed = cv2.morphologyEx(binary_image, cv2.MORPH_CLOSE, kernel)
+
+ # --- 步骤 3: 霍夫直线变换 (直接在处理后的二值图上进行) ---
+ # Canny不再是必需的,因为二值化已经完成了边缘提取
+ lines = cv2.HoughLinesP(
+ closed, # 在闭运算结果上检测
+ rho=1,
+ theta=np.pi / 180,
+ threshold=100, # 需要较高的阈值,因为线现在更连续了
+ minLineLength=int(height * 0.5), # 线至少要有一半图像高度那么长
+ maxLineGap=50 # 允许较大的间隙
+ )
+
+ # --- 步骤 4: 筛选最佳直线 (逻辑与之前类似) ---
+ best_line = None
+ max_length = 0
+
+ if lines is not None:
+ for line in lines:
+ x1, y1, x2, y2 = line[0]
+ # 角度过滤,寻找近乎垂直的线
+ angle = abs(math.degrees(math.atan2(y2 - y1, x2 - x1)))
+ if abs(angle - 90) < 5: # 检查角度是否在90度左右(垂直)
+ length = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
+ if length > max_length:
+ max_length = length
+ best_line = line[0]
+
+ # --- 步骤 5: 处理和显示结果 ---
+ if best_line is not None:
+ bx1, by1, bx2, by2 = best_line
+ print(f"成功找到直线!起点:({bx1}, {by1}), 终点:({bx2}, {by2})")
+
+ cv2.line(visualization_image, (bx1, by1), (bx2, by2), (0, 0, 255), 3)
+
+ # 显示中间处理结果以供调试
+ cv2.imshow('1. Original Image', image)
+ cv2.imshow('2. Adaptive Threshold', binary_image)
+ cv2.imshow('3. Morphological Closing', closed) # 检查闭运算效果
+ cv2.imshow('4. Final Detection', visualization_image)
+
+ else:
+ print("未能在图像中找到符合条件的直线。")
+ cv2.imshow('1. Original Image', image)
+ cv2.imshow('2. Adaptive Threshold', binary_image)
+ cv2.imshow('3. Morphological Closing', closed)
+
+ cv2.waitKey(0)
+ cv2.destroyAllWindows()
+
+
+# --- 主程序入口 ---
+if __name__ == '__main__':
+ try:
+ script_dir = os.path.dirname(os.path.abspath(__file__))
+ except NameError:
+ script_dir = os.getcwd()
+
+ # 请确保你的图片路径正确
+ image_filename = 'data/test3/l2.jpeg'
+ image_path = os.path.join(script_dir, image_filename)
+
+ if not os.path.exists(image_path):
+ # 如果找不到,尝试直接使用文件名(假设图片和脚本在同一目录)
+ image_path = '13-l.bmp'
+ if not os.path.exists(image_path):
+ print(f"错误: 输入文件 '{image_path}' 不存在。")
+ else:
+ find_and_mask_weld_seam_v3(image_path)
+ else:
+ find_and_mask_weld_seam_v3(image_path)
\ No newline at end of file
diff --git a/OpenCV/output/13-l_mask.png b/OpenCV/output/13-l_mask.png
new file mode 100644
index 0000000..ca3c48c
Binary files /dev/null and b/OpenCV/output/13-l_mask.png differ
diff --git a/OpenCV/output/test3/l1.json b/OpenCV/output/test3/l1.json
new file mode 100644
index 0000000..6d52227
--- /dev/null
+++ b/OpenCV/output/test3/l1.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 176.0000000000001,
+ 1932.0
+ ],
+ [
+ 465.0909090909092,
+ 793.8181818181819
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 470.5454545454547,
+ 790.1818181818182
+ ],
+ [
+ 1077.8181818181818,
+ 790.1818181818182
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 143.27272727272737,
+ 766.5454545454546
+ ],
+ [
+ 1221.6893939393944,
+ 1943.0000000000005
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l1.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l11.json b/OpenCV/output/test3/l11.json
new file mode 100644
index 0000000..6237cd9
--- /dev/null
+++ b/OpenCV/output/test3/l11.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 254.1818181818183,
+ 1592.0
+ ],
+ [
+ 561.4545454545455,
+ 326.54545454545456
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 566.909090909091,
+ 324.72727272727275
+ ],
+ [
+ 1181.4545454545455,
+ 352.0
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 223.27272727272737,
+ 264.72727272727275
+ ],
+ [
+ 1330.5454545454545,
+ 1748.3636363636363
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "l11.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l16.json b/OpenCV/output/test3/l16.json
new file mode 100644
index 0000000..80b55ee
--- /dev/null
+++ b/OpenCV/output/test3/l16.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 14.1818181818183,
+ 208.3636363636364
+ ],
+ [
+ 1117.8181818181818,
+ 1686.5454545454545
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 63.272727272727366,
+ 1517.4545454545455
+ ],
+ [
+ 396.00000000000006,
+ 261.0909090909091
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 399.6363636363637,
+ 259.27272727272725
+ ],
+ [
+ 1016.0,
+ 275.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l16.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l21.json b/OpenCV/output/test3/l21.json
new file mode 100644
index 0000000..171ff57
--- /dev/null
+++ b/OpenCV/output/test3/l21.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 521.4545454545455,
+ 1077.4545454545455
+ ],
+ [
+ 896.0,
+ 117.45454545454548
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 894.1818181818182,
+ 115.63636363636367
+ ],
+ [
+ 1445.090909090909,
+ 181.09090909090912
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 477.8181818181819,
+ 79.27272727272731
+ ],
+ [
+ 1490.5454545454545,
+ 1355.6363636363635
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l21.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l26.json b/OpenCV/output/test3/l26.json
new file mode 100644
index 0000000..6ab5e96
--- /dev/null
+++ b/OpenCV/output/test3/l26.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 259.6363636363637,
+ 401.09090909090907
+ ],
+ [
+ 1330.5454545454545,
+ 1584.7272727272727
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 306.90909090909105,
+ 1346.5454545454545
+ ],
+ [
+ 681.4545454545455,
+ 444.7272727272727
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 688.7272727272727,
+ 439.27272727272725
+ ],
+ [
+ 1245.090909090909,
+ 477.45454545454544
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l26.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l31.json b/OpenCV/output/test3/l31.json
new file mode 100644
index 0000000..db4e683
--- /dev/null
+++ b/OpenCV/output/test3/l31.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 506.90909090909093,
+ 1246.5454545454545
+ ],
+ [
+ 950.5454545454545,
+ 412.0
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 970.5454545454545,
+ 379.27272727272725
+ ],
+ [
+ 1503.2727272727273,
+ 428.3636363636364
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 461.45454545454555,
+ 337.45454545454544
+ ],
+ [
+ 1539.6363636363635,
+ 1526.5454545454545
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l31.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l36.json b/OpenCV/output/test3/l36.json
new file mode 100644
index 0000000..6ec6c60
--- /dev/null
+++ b/OpenCV/output/test3/l36.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 528.7272727272727,
+ 357.45454545454544
+ ],
+ [
+ 1559.6363636363635,
+ 1564.7272727272727
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 592.3636363636365,
+ 1306.5454545454545
+ ],
+ [
+ 1008.7272727272727,
+ 470.1818181818182
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1032.3636363636363,
+ 432.0
+ ],
+ [
+ 1552.3636363636363,
+ 473.8181818181818
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l36.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l41.json b/OpenCV/output/test3/l41.json
new file mode 100644
index 0000000..419d896
--- /dev/null
+++ b/OpenCV/output/test3/l41.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 597.818181818182,
+ 1295.6363636363635
+ ],
+ [
+ 1005.090909090909,
+ 475.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1037.8181818181818,
+ 419.27272727272725
+ ],
+ [
+ 1559.6363636363635,
+ 459.27272727272725
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 497.8181818181819,
+ 390.1818181818182
+ ],
+ [
+ 1639.6363636363635,
+ 1550.1818181818182
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l41.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l46.json b/OpenCV/output/test3/l46.json
new file mode 100644
index 0000000..38f9235
--- /dev/null
+++ b/OpenCV/output/test3/l46.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 205.09090909090918,
+ 204.72727272727278
+ ],
+ [
+ 1616.4157879737818,
+ 1943.0
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 319.6363636363637,
+ 1930.181818181818
+ ],
+ [
+ 616.0,
+ 342.9090909090909
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 634.1818181818182,
+ 275.6363636363636
+ ],
+ [
+ 1372.3636363636363,
+ 288.3636363636364
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l46.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/l6.json b/OpenCV/output/test3/l6.json
new file mode 100644
index 0000000..c20f98f
--- /dev/null
+++ b/OpenCV/output/test3/l6.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 199.63636363636374,
+ 212.00000000000003
+ ],
+ [
+ 1350.5454545454545,
+ 1682.9090909090908
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 250.54545454545467,
+ 1497.4545454545455
+ ],
+ [
+ 536.0,
+ 248.3636363636364
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 539.6363636363637,
+ 242.90909090909096
+ ],
+ [
+ 1168.7272727272727,
+ 253.81818181818184
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\l6.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r1.json b/OpenCV/output/test3/r1.json
new file mode 100644
index 0000000..49d3ade
--- /dev/null
+++ b/OpenCV/output/test3/r1.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 1076.0,
+ 1933.8181818181818
+ ],
+ [
+ 1483.2727272727273,
+ 795.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1503.2727272727273,
+ 741.0909090909091
+ ],
+ [
+ 2105.090909090909,
+ 715.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": null,
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 990.5454545454545,
+ 646.5454545454546
+ ],
+ [
+ 2154.181818181818,
+ 1937.4545454545453
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r1.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r11.json b/OpenCV/output/test3/r11.json
new file mode 100644
index 0000000..f96055b
--- /dev/null
+++ b/OpenCV/output/test3/r11.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 1126.909090909091,
+ 235.63636363636368
+ ],
+ [
+ 2237.8181818181815,
+ 1724.7272727272727
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 1174.1818181818182,
+ 1515.6363636363635
+ ],
+ [
+ 1563.2727272727273,
+ 330.1818181818182
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1586.9090909090908,
+ 275.6363636363636
+ ],
+ [
+ 2190.5454545454545,
+ 257.45454545454544
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r11.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r16.json b/OpenCV/output/test3/r16.json
new file mode 100644
index 0000000..2307f1c
--- /dev/null
+++ b/OpenCV/output/test3/r16.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 817.8181818181818,
+ 1488.3636363636363
+ ],
+ [
+ 1183.2727272727273,
+ 324.72727272727275
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1205.090909090909,
+ 272.0
+ ],
+ [
+ 1790.5454545454545,
+ 215.63636363636368
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 723.2727272727273,
+ 202.90909090909093
+ ],
+ [
+ 1892.3636363636365,
+ 1635.6363636363635
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r16.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r21.json b/OpenCV/output/test3/r21.json
new file mode 100644
index 0000000..3bac137
--- /dev/null
+++ b/OpenCV/output/test3/r21.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 1386.9090909090908,
+ 2.9090909090909527
+ ],
+ [
+ 2548.7272727272725,
+ 1246.5454545454545
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 1468.7272727272727,
+ 1004.7272727272727
+ ],
+ [
+ 1910.5454545454545,
+ 97.45454545454548
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1926.909090909091,
+ 46.54545454545459
+ ],
+ [
+ 2499.6363636363635,
+ 44.72727272727276
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r21.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r26.json b/OpenCV/output/test3/r26.json
new file mode 100644
index 0000000..6490082
--- /dev/null
+++ b/OpenCV/output/test3/r26.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 746.909090909091,
+ 1384.7272727272727
+ ],
+ [
+ 1136.0,
+ 475.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1152.3636363636363,
+ 446.54545454545456
+ ],
+ [
+ 1683.2727272727273,
+ 408.3636363636364
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 656.0,
+ 301.09090909090907
+ ],
+ [
+ 1756.0,
+ 1548.3636363636363
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r26.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r31.json b/OpenCV/output/test3/r31.json
new file mode 100644
index 0000000..27e3dbf
--- /dev/null
+++ b/OpenCV/output/test3/r31.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 1166.9090909090908,
+ 292.0
+ ],
+ [
+ 2354.181818181818,
+ 1550.1818181818182
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 1259.6363636363635,
+ 1279.2727272727273
+ ],
+ [
+ 1706.9090909090908,
+ 437.45454545454544
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1745.090909090909,
+ 375.6363636363636
+ ],
+ [
+ 2286.909090909091,
+ 379.27272727272725
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r31.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r36.json b/OpenCV/output/test3/r36.json
new file mode 100644
index 0000000..5a73711
--- /dev/null
+++ b/OpenCV/output/test3/r36.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 1456.0,
+ 1175.6363636363635
+ ],
+ [
+ 1985.090909090909,
+ 361.09090909090907
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 2021.4545454545455,
+ 290.1818181818182
+ ],
+ [
+ 2568.7272727272725,
+ 308.3636363636364
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 1370.5454545454545,
+ 235.63636363636368
+ ],
+ [
+ 2591.0,
+ 1423.4971675209063
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r36.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r41.json b/OpenCV/output/test3/r41.json
new file mode 100644
index 0000000..617b5a6
--- /dev/null
+++ b/OpenCV/output/test3/r41.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "3",
+ "points": [
+ [
+ 1499.6363636363635,
+ 290.1818181818182
+ ],
+ [
+ 2591.0,
+ 1509.8348886213128
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 1552.3636363636363,
+ 1259.2727272727273
+ ],
+ [
+ 2059.6363636363635,
+ 392.0
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 2092.363636363636,
+ 352.0
+ ],
+ [
+ 2585.090909090909,
+ 353.8181818181818
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r41.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r46.json b/OpenCV/output/test3/r46.json
new file mode 100644
index 0000000..6b9dbe9
--- /dev/null
+++ b/OpenCV/output/test3/r46.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 1537.8181818181818,
+ 1244.7272727272727
+ ],
+ [
+ 2050.5454545454545,
+ 395.6363636363636
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "1",
+ "points": [
+ [
+ 2094.181818181818,
+ 350.1818181818182
+ ],
+ [
+ 2590.5454545454545,
+ 361.09090909090907
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 1476.0,
+ 273.8181818181818
+ ],
+ [
+ 2591.0,
+ 1509.7851629502575
+ ]
+ ],
+ "group_id": null,
+ "description": null,
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r46.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file
diff --git a/OpenCV/output/test3/r6.json b/OpenCV/output/test3/r6.json
new file mode 100644
index 0000000..7cb3d2f
--- /dev/null
+++ b/OpenCV/output/test3/r6.json
@@ -0,0 +1,64 @@
+{
+ "version": "5.8.3",
+ "flags": {},
+ "shapes": [
+ {
+ "label": "1",
+ "points": [
+ [
+ 1161.4545454545455,
+ 1413.8181818181818
+ ],
+ [
+ 1541.4545454545455,
+ 266.54545454545456
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "2",
+ "points": [
+ [
+ 1556.0,
+ 206.5454545454546
+ ],
+ [
+ 2170.5454545454545,
+ 166.5454545454546
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "line",
+ "flags": {},
+ "mask": null
+ },
+ {
+ "label": "3",
+ "points": [
+ [
+ 1072.3636363636363,
+ 106.54545454545458
+ ],
+ [
+ 2252.363636363636,
+ 1617.4545454545455
+ ]
+ ],
+ "group_id": null,
+ "description": "",
+ "shape_type": "rectangle",
+ "flags": {},
+ "mask": null
+ }
+ ],
+ "imagePath": "..\\..\\data\\test3\\r6.jpeg",
+ "imageData": null,
+ "imageHeight": 1944,
+ "imageWidth": 2592
+}
\ No newline at end of file