簡體   English   中英

如何從二維點雲或圖像中檢測角點?

[英]How to detect corner from 2D point cloud or image?

我有一個房間的激光雷達數據。 我必須從中檢測角落。 這是我的數據集(我已經打磨了數據以減少噪音)

29.10005846, 2825.85017059
58.19703126, 2825.40069823
87.3804953, 2827.6501992
116.69880415, 2831.59626167
146.0860764, 2825.22562962
175.72769172, 2832.55428516
205.39128101, 2837.57632879
234.76457514, 2837.30410676
264.52489707, 2840.71040038
295.70165552, 2851.70993106
324.82402502, 2846.52671738
355.10704268, 2850.96965755
384.17776663, 2845.17986138
415.75912923, 2856.90625441
446.73379702, 2859.31196525
477.46944178, 2862.45121044
506.74485391, 2856.39819581
539.08800868, 2866.75306207
571.22446286, 2871.73930102
601.79112244, 2870.59862136
634.3319722, 2877.92146332
663.93304837, 2871.2369995
696.28746445, 2875.91111943
729.31092594, 2880.09488964
761.99469592, 2884.03416821
793.50966269, 2882.78379613
828.93370595, 2894.64849527
859.8374535, 2889.79316796
894.18450783, 2894.00674946
929.42799081, 2901.78782992
964.61113444, 2908.19898895
999.37514285, 2912.29983413
1030.64806964, 2905.62446929
1068.93411191, 2916.2674542
1105.62923064, 2922.87683702
1138.21213352, 2917.85831375
1173.41956398, 2918.97285477
1211.9584303, 2925.92647946
1249.0823802, 2929.84951959
1285.21000202, 2930.56910014
1326.82773484, 2942.7049057
1364.62643266, 2945.21827702
1399.69210799, 2939.79557161
1439.55115712, 2944.99175993
1481.90652918, 2954.14590682
1514.53538924, 2943.1755902
1559.22929442, 2954.84094452
1600.55674453, 2957.69963105
1637.2325992, 2952.43042528
1677.42657892, 2952.8047806
1719.8123034, 2956.12003158
1767.56032239, 2967.46465972
1806.8694417, 2962.45216343
1853.69251649, 2969.98738285
1899.24608144, 2974.34115766
1950.00576648, 2985.60437947
2003.9418305, 2999.11089158
2044.87205902, 2993.17945707
2088.18184745, 2990.00093177
2143.26141283, 3002.52419079
2234.1779667, 3062.69975889
2279.8759927, 3057.57444029
2357.29487703, 3094.39184053
4804.20254038, 3283.35178606
4875.73780654, 3257.86384643
4980.18381913, 3253.97758561
5053.87808427, 3228.36263597
5154.71206986, 3218.52023091
5302.82234979, 3235.58636518
5438.64081559, 3240.79420497
5499.38056483, 3200.71592041
5499.87948139, 3125.63620567
5517.7821715, 3061.07495953
5507.67854268, 2981.71864374
5520.91373402, 2914.5429387
5505.28888418, 2834.1944714
5534.18144278, 2777.3548132
5543.62215243, 2710.99509979
5531.5203973, 2634.84555415
5509.81635979, 2554.06591172
5539.47030903, 2498.83926961
5531.94143712, 2427.20104983
5549.28309334, 2366.96982447
5560.83090619, 2303.37157941
5536.01039906, 2226.58434863
5550.26052973, 2166.1883695
5580.68940051, 2112.10672436
5565.52712576, 2041.10063751
5574.34462275, 1978.35968086
5578.3421267, 1915.33368307
5577.83804411, 1851.17577601
5588.98604201, 1791.19960425
5610.95569928, 1734.73489061
5592.39377117, 1665.0396116
5601.55214103, 1605.16124152
5613.92753886, 1546.33327213
5601.51631032, 1481.03039306
5631.97963857, 1427.20193063
5618.43169708, 1361.31784138
5611.69236747, 1298.65652616
5624.76745036, 1240.80261501
5620.60839772, 1179.32618028
5628.72672423, 1119.62335805
5643.88832151, 1062.34345401
5658.46669961, 1004.8699465
5635.96478156, 941.11475442
5657.21271901, 884.88431555
5671.11660281, 826.31560396
5674.36980157, 767.20489771
5686.93061725, 709.35263063
5684.99170484, 649.73326519
5687.40217417, 590.74572301
5681.32837762, 530.04138107
5698.44409736, 472.50277164
5687.04941217, 412.64147093
5706.96609699, 355.05206357
5706.32496038, 296.05986993
5692.12689548, 235.58524105
5711.2427887, 177.48748841
5720.76589843, 118.83406638
5.72200000e+03, 3.50371449e-13
5742.69551652, -59.13716764
5737.78294662, -118.18569087
5740.25984235, -177.38642081
5738.12890994, -236.48596763
5731.34319138, -296.35489305
5756.93203551, -357.15198233
5732.00392321, -414.89760701
5753.33916696, -476.04351678
5760.08049989, -536.37452841
5794.58671647, -1402.92864585
5843.55839607, -1479.73283795
5832.84550345, -1541.10425763
5841.73478955, -1607.98496529
5824.86723109, -1668.05357833
5858.1810423, -1743.06020423
5872.09160852, -1814.34730444
5887.38180656, -1885.69866728
5881.88940421, -1950.94490866
5894.59323361, -2022.76904521
5912.09286275, -2097.06627988
5895.44215869, -2160.92636467
5911.22611518, -2236.02455604
5898.13569104, -2300.77299404
5903.59021275, -2445.34713281
5905.69353714, -2517.77358898
5888.61228559, -2582.46884782
5899.08409071, -2659.82102607
5876.82648806, -2722.94682821
5923.83253849, -2820.44837854
5923.22473252, -2895.35106129
5956.55925054, -2988.02575202
5954.81780289, -3064.30317273
5930.02350585, -3129.19258278
5954.97597439, -3222.53039465
5947.71306941, -3298.22834929
5871.69925895, -3335.58942504
5745.41808476, -3342.57087154
5609.31579714, -3341.17004775
5524.50373187, -3369.52511737
5388.56322647, -3363.22618245
5287.06208047, -3376.01889172
5162.43314744, -3371.77104771
5052.84083396, -3376.20030606
4966.61363705, -3393.07736138
4852.70510423, -3389.07275983
4742.66968277, -3385.41183317
4670.39496337, -3406.95933144
4580.74996115, -3415.62963353
4492.83421987, -3422.6224847
4376.06567981, -3405.44771888
4291.44888539, -3411.12744764
4210.28987747, -3417.9508697
4129.62241433, -3424.8275453
4056.74426274, -3435.50316355
3940.21548321, -3407.10770975
3871.93813914, -3418.37973997
3803.10716241, -3427.94047661
3720.65020079, -3424.91037597
3645.10561425, -3425.37721441
3578.60986064, -3432.96263675
3507.34638432, -3434.64733858
2893.55838871, -3563.06326791
2841.77811359, -3573.88488247
2779.64053045, -3570.60548388
2602.68039125, -3489.22108514
2548.90444216, -3492.85873529
2494.78742369, -3493.69213163
2443.78902021, -3497.88282032
2389.58494826, -3496.44230255
2385.06301035, -3569.49904561
2401.78443073, -3675.90975791
2419.25324096, -3787.24830927
2420.90768068, -3877.27313993
2430.8566591, -3983.94589608
2438.65796754, -4092.51063742
2441.155801, -4194.32561388
2460.58620048, -4329.65536158
2436.73209536, -4392.36447662
2377.09104075, -4390.84128431
2324.91171468, -4403.99653939
2280.81250824, -4430.37056038
2225.65157996, -4434.85276471
2177.23087256, -4452.1457442
2139.01122676, -4490.57980352
2074.62656718, -4475.53500788
2029.6644125, -4499.39533411
1888.92542215, -4560.26937248
1839.62809431, -4573.91172572
1794.61325812, -4598.20174131
1747.16922933, -4616.43755336
1694.3752087, -4620.1010435
1645.90160431, -4637.59085182
1597.08563128, -4651.4558459
1545.32386543, -4656.26568732
1495.46397356, -4666.21768714
1481.00812898, -4790.28296887
1400.80196287, -4704.89477681
1352.28016726, -4719.06975465
1308.39499086, -4750.09805666
1256.34525058, -4751.71775375
1205.13815347, -4755.67850375
1152.44585984, -4756.37514712
1106.11265926, -4779.68103382
1059.42139941, -4802.53581959
1010.52831851, -4816.12640174
958.28366174, -4817.61729734
910.84436141, -4839.02247869
862.01650187, -4854.05269342
811.4932438, -4859.71271942
765.58101628, -4894.48686866
712.55482721, -4890.36088834
663.76756256, -4909.33077139
614.54123383, -4926.82088896
562.52684302, -4921.95891398
513.26071212, -4941.41553013
461.76580885, -4949.50637314
412.34502107, -4972.93390099
362.8523913, -5000.85334139
312.08318844, -5016.30143467
260.56791842, -5022.24505176
208.6234055, -5040.68460377
163.72708285, -5268.45655219
109.23928507, -5258.86554103
6.46001187e-13, -5.27500000e+03
-54.62696749, -5304.71873848
-109.70119799, -5325.87031828
-164.32104453, -5317.46166835
-222.65011788, -5402.41389797
-276.06085699, -5338.86752067
-334.36558679, -5389.63817472
-388.40249273, -5365.96156375
-452.3774005, -5467.31658929
-507.53918211, -5450.42016533
-570.36280258, -5500.5078196
-632.64155659, -5544.02062233
-687.34781215, -5518.35790658
-743.60008678, -5507.02350739
-806.46038229, -5541.62626417
-1700.26388839, -5937.34609989
-1780.98882, -5764.12767234
-1852.45034073, -5783.57646575
-1921.03692636, -5791.72004914
-1999.72401918, -5827.43724523
-2078.34545863, -5859.31473421
-2150.25767264, -5866.335819
-2223.2877073, -5877.55457402
-2296.77544184, -5887.88778508
-2379.28906505, -5918.66746362
-2451.0873843, -5917.44840573
-2519.73447184, -5910.29298694
-2596.92746034, -5921.58118797
-2679.13976942, -5941.93016586
-2921.64086885, -1908.95642525
-3009.40447539, -1922.37501635
-3017.16485643, -1883.86974845
-3008.23341286, -1835.51293479
-3309.7376695, -1174.64060848
-3265.85543633, -1121.33726816
-3073.98993757, -985.17504217
-3022.82714669, -934.56516157
-3087.07803546, -919.12469391
-3022.3579769, -866.0763589
-3338.47467732, -846.00403599
-3312.16315925, -802.52053337
-3316.35430883, -767.46993317
-3342.63524003, -737.37280402
-3338.30667676, -700.44952132
-3319.95817416, -660.38074002
-3324.6167842, -625.78929217
-3326.94605498, -590.82226365
-3321.01739929, -554.55606898
-3330.50368071, -520.9474376
-3340.72407103, -486.76347565
-3313.84781985, -448.04980404
-3360.95515628, -419.22480544
-3349.1973151, -382.77714732
-3349.97735617, -347.95935556
-3292.70118205, -307.19362902
-3059.08553467, -190.31734432
-3068.87234918, -159.22155763
-3096.34917484, -128.15142391
-3329.39267224, -103.46706753
-3349.27748335, -69.57254848
-3.35600000e+03, -6.16487199e-13
-3384.82053342, 34.85622714
-3374.28427336, 69.50282396
-3373.38968622, 104.24502355
-3350.15605695, 138.07025064
-3376.48916711, 174.59067667
-3374.51234606, 209.35000906
-3377.16465704, 244.4481116
-3382.44121474, 279.87037865
-3420.20337375, 318.48686346
-3438.5633874, 356.55410642
-3403.90943586, 388.42831055
-3383.85190819, 421.48103569
-3332.75509364, 450.01387292
-3137.01603501, 589.91049835
-3202.26394052, 636.96990138
-3194.55639281, 669.70549732
-3210.92832419, 707.7310908
-3272.96036458, 1558.31814848
-3269.3181862, 1598.08622964
-3283.07955091, 1646.9115527
-3214.37454942, 1654.09227556
-3248.46776092, 1714.17216354
-3538.1839898, 2310.91541479
-3262.19185838, 2278.27682233
-3285.76583307, 2345.44492372
-3300.2185479, 2407.44315325
-3282.04241179, 2447.25021345
-3306.78325991, 2519.0937799
-3289.34927925, 2559.76665325
-3221.32655297, 2560.52343069
-3152.08867832, 2558.89369924
-3097.40924423, 2568.78025019
-3045.61067581, 2579.21240138
-2978.79987961, 2575.77081225
-2925.88084358, 2583.14348986
-2861.98669859, 2579.65911258
-2804.65069515, 2581.72006193
-2759.69911259, 2593.34336485
-2647.40778876, 2647.40778876
-2602.51167934, 2656.66971204
-2577.09446374, 2685.49215694
-2495.88017972, 2655.05520253
-2440.63507974, 2650.45456621
-2396.67468799, 2658.04278369
-2358.58560205, 2670.58850402
-2312.64284519, 2673.55719419
-2265.59820712, 2674.33912657
-2214.9537508, 2669.82038381
-2166.07115983, 2667.25171863
-2126.66574992, 2674.54328589
-2079.96968754, 2671.83871125
-2038.40586557, 2674.82158792
-2002.38378826, 2684.44783233
-1960.0155574, 2685.88235311
-1919.46956917, 2688.01889373
-1879.66148684, 2690.42686109
-1833.80190835, 2683.22018495
-1802.26983592, 2697.28742231
-1761.27211728, 2695.61134604
-1722.65473322, 2696.75001996
-1688.43878495, 2704.1668716
-1649.56568231, 2703.48331967
-1612.46276191, 2706.00514439
-1572.44035317, 2701.72303091
-1537.61932849, 2705.59989663
-1503.37104589, 2709.92186204
-1465.86487372, 2707.670802
-1432.7618579, 2714.02919265
-1393.29586094, 2706.4113959
-1364.45628904, 2718.82751113
-1326.72260596, 2712.97016697
-1298.71610471, 2726.48793861
-1263.78528976, 2726.32935307
-1233.58858134, 2734.64060015
-1195.72096082, 2725.22061196
-1135.80442726, 2742.07445249
-1102.28425772, 2740.63595086
-1069.64185684, 2740.66238309
-1040.6559024, 2749.66094143
-1007.81065553, 2748.02596105
-975.63401337, 2749.00477845
-944.67712513, 2751.33897026
-912.20096092, 2748.58243589
-882.93413786, 2754.97301406
-852.74640375, 2758.18646413
-823.24580625, 2765.04816278
-794.45426815, 2772.41743174
-763.73939389, 2772.73838258
-733.35799063, 2773.68834904
-700.0904479, 2762.67503785
-669.94451803, 2764.99536035
-640.76073738, 2768.82460214
-610.27670283, 2766.48718522
-582.16780796, 2774.58206643
-552.88597259, 2779.54548466
-524.04997479, 2784.10858695
-493.9546892, 2781.48049877
-465.45157438, 2787.40575301
-436.26063968, 2789.08688539
-406.30908601, 2788.55463038
-377.70705669, 2793.58164
-349.16834253, 2799.30749804
-320.21108141, 2801.76102895
-290.8270742, 2799.9365373
-261.58368894, 2803.82416954
-232.45020927, 2803.37937144
-204.00496432, 2811.60860977
-174.73181303, 2808.56988404
-145.90559918, 2812.21755135
-116.32460647, 2810.59381376
-87.50126966, 2815.64069579
-58.60708412, 2821.3913606

這是使用 Matplotlib 的樣子。

在此處輸入圖片說明

現在要將點轉換為圖像,我嘗試在相對於固定中心的兩點之間繪制一個三角形,並對每個點執行此步驟,如下所示: 在此處輸入圖片說明

這是繪制上述圖像的代碼。

for row in finalData:     ## scan data was stored in finalData variable.
    #print("row ",row)
    r = row[0]
    theta = row[1]

    #print(f'DEBUG: theta: {theta}, range: {r}')
    if abs(r)> maxRange:
        maxRange = abs(r)
    if abs(theta) > maxRange:
        maxRange =abs(theta)
    Ranges.append(r)
    Thetas.append(theta)

print("maxrange : ",maxRange)
# Plot what we found - i.e. a triangle centred on lidar stretching out to 2 pts on  walls
# Work out size of canvs
maxRange = int(maxRange+1)
h = w = 2 * maxRange
cx = cy = maxRange
# Make blank canvas
im = np.zeros((h,w), np.uint8)
# Centre point, in every triangle
pt1 = (cy, cx)
# Join up last point with first to complete the circle
Ranges.append(Ranges[0])
Thetas.append(Thetas[0])
for i in range(1,len(Thetas)):
    r = Ranges[i-1]
    theta = Thetas[i-1]
    x = r
    y = theta
    pt2 = (cx + x, cy - y)
    r = Ranges[i]
    theta = Thetas[i]
    x = r
    y = theta
    pt3 = (cx + x, cy - y)
    triangleCnt = np.array( [pt1, pt2, pt3] )
    cv2.drawContours(im, [triangleCnt.astype(int)], 0, 255, -1)
cv2.imwrite('result.png', im)

現在,如果你們幫助我或告訴我一種從圖像或存儲在 finalData 變量中的點雲中檢測角點的方法,我會很高興。

一個簡單的解決方案可能是通過使用之前的幾個點和之后的幾個點來計算每個激光雷達點的“曲率”指數。 根據這個曲率,您應該能夠分辨出哪些點是角點。 當然,您在每個點周圍考慮的鄰域大小需要根據噪聲進行正確調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM