作者cherrybomb (missing)
看板C_and_CPP
標題[問題] 灰階圖片的width和widthstep
時間Fri Apr 22 23:09:01 2011
我使用的是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