簡體   English   中英

如何將矩形擬合到 python 中的圖像並獲取它們的坐標

[英]How do I fit rectangles to an image in python and obtain their coordinates

我正在尋找一種將多個圖像拆分為適當矩形的方法。 這些矩形具有理想的形狀,使得它們中的每一個都具有盡可能大的尺寸,而不包含大量的白色。

所以假設我們有以下圖像輸入

我想得到一個 output 像這樣: 輸出

請注意重疊的矩形、孔和非軸對齊的矩形,所有這些都可能是我必須處理的場景。

我的目標是獲得描述矩形角塊的坐標,例如

[[(73,13),(269,13),(269,47)(73,47)],
 [(73,13),(73,210),(109,210),(109,13)]
...]

為了做到這一點,我已經查看了cv2.findContours但我無法讓它與重疊的矩形一起工作(盡管我可以使用層次結構 model 來處理孔,因為這會導致輪廓合並為一個。

請注意,盡管未顯示孔可以嵌套。

大致如下工作的算法應該能夠為您提供您尋求的結果。

  1. 獲取圖像中的所有角點。
  2. 隨機select 3個點創建一個矩形
  3. 計算矩形內黃色像素的比率,如果比率滿足閾值則接受。
  4. 重復 2 到 4 直到:a)每個點的組合都完成或 b)所有黃色像素都被考慮或 c)經過 n 次迭代

該算法的難點在於步驟 2,從 3 個點創建矩形。

如果所有矩形都是直角,您可以簡單地找到對應於左上角的最小 x 和 y,以及對應於新矩形的右下角的最大 x 和 y。

但是由於您有離軸矩形,因此在生成矩形之前,您需要檢查從 3 個點創建的兩個向量之間是否有 90 度角。

暫無
暫無

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

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