看板 C_and_CPP 關於我們 聯絡資訊
我使用的是vc2008和opencv2.0 使用cvLoadImage載入一張684*600的圖檔Img.bmp並且是以灰階讀取 我想請問為何Img->width和Img->widthStep的值會不一樣呢@ @ IplImage如果是灰階圖片,一維陣列的元素應該就是一個值表示一個像素的灰階值吧@ @ 不像彩色圖片的話因為一維陣列排列是BGRBGRBGR......... 所以BGR三個元素的值才表示一個像素的值 為何輸出Img->widthStep會等於684 輸出Img->width卻會等於682呢 謝謝回答~~~~~~~~!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.184.242.210
FallwinDs:記得是為了加速做了alignment的關係 04/22 23:38
bbearh:BMP水平一行規定要4的倍數BYTE, 黑白彩色圖都一樣. 04/23 01:17
bbearh:width 是影像的實際長度, widthstep 是一行影像所占的BYTE 04/23 01:18
bbearh:widthstep=(width+3)/4*4; //gray image 04/23 01:19
bbearh:widthstep=(width*3+3)/4*4; // 24bits color 04/23 01:19