關閉。這個問題需要更加集中。它目前不接受答案。
想改善這個問題嗎?更新問題,使其僅通過編輯這篇文章來關注一個問題。
2 天前關閉。
改進這個問題我正在努力在任何影像上加入虛線。我已經提取并過濾了資料樣本。
這是我的輸入資料。在這個字典中,鍵 '0' 和 '1' 代表 x 坐標,串列(值)代表各個 x 坐標的不同 y 坐標。
在不同 y 坐標的串列中,我想創建一個子串列并存盤兩個連續元素之間的差值小于 35 的所有元素。如果兩個元素之間的差值超過 35,那么我想創建一個新的子串列列出并為下一個連續元素重復相同的操作。
data = {0: [177, 188, 201, 209, 226, 233, 250, 258, 273, 282, 299, 307, 323, 330, 347, 355, 370, 379, 395, 403, 420, 428, 444, 452, 468, 476, 492, 500, 517, 524, 541, 549, 565, 573, 589, 597, 613, 621, 637, 651, 753, 761, 776], 1: [477, 489, 490]}
所以輸出看起來像這樣。
data = {0: [[177, 188, 201, 209, 226, 233, 250, 258, 273, 282, 299, 307, 323, 330, 347, 355, 370, 379, 395, 403, 420, 428, 444, 452, 468, 476, 492, 500, 517, 524, 541, 549, 565, 573, 589, 597, 613, 621, 637, 651], [753, 761, 776]], 1: [[477, 489, 490]]}
我怎樣才能達到預期的輸出?
uj5u.com熱心網友回復:
對于一維“分組”:
def groupwhile(xs, key):
group = []
xs = sorted(xs)
it = iter(xs)
group.append(next(it))
for x in it:
if key(group[-1], x):
group.append(x)
else:
yield group
group = [x]
yield group
>>> dist_10 = lambda a, b: abs(a - b) <= 10
>>> list(groupwhile([0, 7, 18, 19], key=dist_10))
[[0, 7], [18, 19]]
對于 2D 分組,您需要更高級的東西才能獲得有效的演算法。既然您提到您正在處理影像,請嘗試沿著影像形態學、洪水填充、分水嶺或聚類等方法進行操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311496.html
上一篇:有什么辦法可以列出這個清單嗎?
