[問題] 關於OpenCV中計算的問題

看板C_and_CPP (C/C++)作者 (SaoAn)時間16年前 (2009/02/20 21:08), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
我的圖是用灰階讀取 程式碼如下 for(int i=0;i<babyleftdis->height;i++) for(int j=0;j<babyleftdis->widthStep;j++) Disparityleft[i][j]=babyleftdis->imageData[i*babyleftdis->widthStep+j] cout << int(Disparityleft[10][200])<< endl; 結果出來是140 for(int i=0;i<babyleftdis->height;i++) for(int j=0;j<babyleftdis->widthStep;j++) Disparityleft[i][j]=babyleftdis->imageData[i*babyleftdis->widthStep+j]/4 cout << int(Disparityleft[10][200])<< endl; 結果出來是227????? 請問為什麼不是35 我測了其他的點,有些是正常除以4,有些就會跑出像這樣奇怪的數值@@ 拜託各位大大解惑,搞了很久還是搞不出來 在此叩謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.7.59

02/20 21:24, , 1F
cast成int再做除法運算試試看
02/20 21:24, 1F

03/19 23:28, , 2F
是因為IPL_DEPTH_8U是unsigned char (-127~128)
03/19 23:28, 2F

03/19 23:29, , 3F
你必須寫個轉換副程式(-127~128 -> 0~255) 值才會對
03/19 23:29, 3F
文章代碼(AID): #19dgjUt_ (C_and_CPP)
文章代碼(AID): #19dgjUt_ (C_and_CPP)