Rumah >pembangunan bahagian belakang >C++ >Mengapa OpenCV's Point(x,y) Menggunakan (Lajur, Baris) Daripada (Baris, Lajur)?

Mengapa OpenCV's Point(x,y) Menggunakan (Lajur, Baris) Daripada (Baris, Lajur)?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 16:11:10920semak imbas

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

Perwakilan Titik(x,y) dalam OpenCV

Titik(x,y) OpenCV mewakili lokasi piksel menggunakan (baris,lajur) koordinat. Walau bagaimanapun, ia selalunya dijangka menggunakan (lajur,baris) sebaliknya.

Sebab Perbezaan

OpenCV menggunakan susunan baris-utama untuk matriks, serupa dengan matematik konvensyen di mana indeks baris diutamakan. Sebaliknya, imej biasanya menggunakan lajur-tertib-utama, dengan indeks lajur didahulukan dalam susunan paksi.

Tafsiran

Untuk menjelaskan perbezaan:

  • src.at(i,j): Ini tatatanda menggunakan susunan (baris,lajur), dengan i ialah nombor baris dan j ialah nombor lajur.
  • Titik(x,y): Di sini, x mewakili nombor lajur dan y mewakili nombor baris.

Contoh

Pertimbangkan imej dengan 300 baris dan 200 lajur. Piksel di penjuru kiri sebelah atas mempunyai:

  • Koordinat matriks: (0,0)
  • Koordinat titik: (0 ,0)

Piksel di penjuru kanan sebelah bawah mempunyai:

  • Koordinat matriks: (299,199)
  • Koordinat titik: (199,299)

Kesimpulan

Memahami perwakilan Point(x,y) dalam OpenCV adalah penting untuk mengakses piksel imej dengan berkesan. Dengan mengingati konvensyen ini, pembangun boleh mengelakkan kekeliruan dan memastikan operasi manipulasi imej yang betul.

Atas ialah kandungan terperinci Mengapa OpenCV's Point(x,y) Menggunakan (Lajur, Baris) Daripada (Baris, Lajur)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn