| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- import numpy as np
- import cv2
- points = [
- [
- 350,
- 329
- ],
- [
- 347,
- 332
- ],
- [
- 304,
- 332
- ],
- [
- 301,
- 335
- ],
- [
- 301,
- 2045
- ],
- [
- 297,
- 2049
- ],
- [
- 297,
- 2262
- ],
- [
- 301,
- 2266
- ],
- [
- 301,
- 2371
- ],
- [
- 297,
- 2374
- ],
- [
- 297,
- 3136
- ],
- [
- 301,
- 3140
- ],
- [
- 301,
- 3607
- ],
- [
- 304,
- 3611
- ],
- [
- 1611,
- 3611
- ],
- [
- 1614,
- 3607
- ],
- [
- 1689,
- 3607
- ],
- [
- 1692,
- 3611
- ],
- [
- 2563,
- 3611
- ],
- [
- 2566,
- 3614
- ],
- [
- 2591,
- 3614
- ],
- [
- 2594,
- 3611
- ],
- [
- 2597,
- 3611
- ],
- [
- 2600,
- 3607
- ],
- [
- 2600,
- 3592
- ],
- [
- 2597,
- 3589
- ],
- [
- 2597,
- 3462
- ],
- [
- 2600,
- 3459
- ],
- [
- 2600,
- 1760
- ],
- [
- 2603,
- 1757
- ],
- [
- 2603,
- 1674
- ],
- [
- 2600,
- 1670
- ],
- [
- 2600,
- 1593
- ],
- [
- 2603,
- 1590
- ],
- [
- 2603,
- 335
- ],
- [
- 2597,
- 335
- ],
- [
- 2594,
- 332
- ],
- [
- 2572,
- 332
- ],
- [
- 2569,
- 335
- ],
- [
- 2553,
- 335
- ],
- [
- 2550,
- 332
- ],
- [
- 2144,
- 332
- ],
- [
- 2141,
- 335
- ],
- [
- 1872,
- 335
- ],
- [
- 1869,
- 332
- ],
- [
- 1841,
- 332
- ],
- [
- 1838,
- 335
- ],
- [
- 1751,
- 335
- ],
- [
- 1748,
- 332
- ],
- [
- 449,
- 332
- ],
- [
- 446,
- 329
- ]
- ]
- points = np.array(points, dtype=np.int32)
- x, y, w, h = cv2.boundingRect(points)
- # 2. 构造 4 个顶点坐标
- result = np.array([
- [x, y], # 左上
- [x + w, y], # 右上
- [x + w, y + h], # 右下
- [x, y + h] # 左下
- ], dtype=np.int32).tolist()
- print(f"Bounding Rect (x,y,w,h): {x}, {y}, {w}, {h}")
- print(f"Result (4 points):\n{result}")
|