[問題] 有關OpenCV 的空間座標疑問

看板C_and_CPP (C/C++)作者 (septem)時間15年前 (2010/10/04 21:40), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 大家好, 最近常常利用Matlab和C之間寫程式, 發現常常會對座標搞混. 當我用OpenCV中face detection method時, 得到臉部的區域, Opencv用CvRect表示 一張人臉的結構, 我測試了一下 其中CvRect的x,y 座標表示法為圖1. 但在使用Opencvc函數cvGet2D去讀取IplImage影像結構時, 座標表示法好像變成圖2 ---------> x ---------> y | | | | v v y x 圖1 圖2 若我的圖為 image[height][width] 要讀圖的pixel時 for (i=0;i < width ;i++) for (j=0 ; j < height ;j++ ) pixel = cvGet2D(image , j, i); <=== 若是將此行改成 pixel = cvGet2D(image, i, j); 就會出錯 想請問各位, 我的認知有錯嗎? 我覺得非常奇怪, 明明都是OpenCv的函數 為什麼座標系會不一樣, 這樣寫程式的人不會感覺很困擾嗎? 各位若發現我想法有誤, 請不要客氣多多指教, 謝謝大家. 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dec C++ 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.198.47 ※ 編輯: overtime23 來自: 220.133.198.47 (10/04 21:43)

10/04 22:12, , 1F
一般來說會寫成這樣吧 image[height][width]
10/04 22:12, 1F
※ 編輯: overtime23 來自: 220.133.198.47 (10/04 22:17)

10/04 22:18, , 2F
阿, 打錯抱歉, 已改回來 囧
10/04 22:18, 2F

10/04 22:59, , 3F
用它的函數前, 就應該搞懂它的規則, 看不慣可自訂函數
10/04 22:59, 3F
文章代碼(AID): #1CgTbf_t (C_and_CPP)
文章代碼(AID): #1CgTbf_t (C_and_CPP)