首頁 >後端開發 >C++ >為什麼OpenCV的Point(x,y)使用(Column,Row)而不是(Row,Column)?

為什麼OpenCV的Point(x,y)使用(Column,Row)而不是(Row,Column)?

Linda Hamilton
Linda Hamilton原創
2024-12-10 16:11:10877瀏覽

Why Does OpenCV's Point(x,y) Use (Column, Row) Instead of (Row, Column)?

Point(x,y)在OpenCV中的表示

OpenCV的Point(x,y)使用(row,column)表示像素位置座標。然而,通常期望使用 (column,row) 來代替。

差異的原因

OpenCV 對矩陣使用行主序,類似於數學行索引排在第一位的約定。相反,影像通常使用列主順序,其中列索引在軸排序中排在第一位。

解釋

澄清差異:

  • src.at(i,j):
  • src.at(i,j):
  • 這個表示法使用(row,column) 排序,其中i 是行號,j 是列號。
  • Point(x,y):
這裡,x 代表列號,y 代表列號代表行

範例

  • 範例
  • 考慮一個具有300 行和200 列的影像。左上角的像素有:
  • 矩陣座標:
(0,0)

    點座標:
  • (0 ,0)
  • 右下角的像素有:
  • 矩陣座標:
(299,199)

(299,199)

點座標: (199,299)結論理解 OpenCV 中 Point(x,y) 的表示對於有效存取影像像素至關重要。透過牢記這些約定,開發人員可以避免混淆並確保正確的圖像操作操作。

以上是為什麼OpenCV的Point(x,y)使用(Column,Row)而不是(Row,Column)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn