看板 C_and_CPP 關於我們 聯絡資訊
我的圖是用灰階讀取 程式碼如下 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
kvykn:cast成int再做除法運算試試看 02/20 21:24
Hermite:是因為IPL_DEPTH_8U是unsigned char (-127~128) 03/19 23:28
Hermite:你必須寫個轉換副程式(-127~128 -> 0~255) 值才會對 03/19 23:29