前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。 在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。 例如1:如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。 这个图像的一行需要4个字节,只使用前3个,最后一个空着。也就是一个宽3高3的图像的imageData数据大小为4*3=12字节。例如2:我的一幅图
转载 2013-04-15 10:10:00
54阅读
2评论
 width是图像宽度,可为任意值;widthstep是行字节数,应该是4的倍数,不一定等于width,nchannels为图像通道数。 #define WIDTHBYTES(bits) (((bits)+31)/32*4) 看看这个公式你就明白了。   对ROI和widthStep的补充 ROI和widthStep在实际工作中有很重要的作用,在很多情况下,使用它们会提
转载 精选 2013-05-07 10:19:58
1147阅读
这里img1->p_w_picpathdata指的图像第一行的首地址,pt.y是指图像的height(图像高像素数即行数),y 乘以img->widthstep(排列的图像行大小)即首地址加上行数乘以每行总数,得到第y行的首地址。widthstep是指图像每行所占的字节数,主要要和width区别,width是指每行所含的像素个数,但是一个像素也可能占一个字节,也可能占三个字节或者四个。
原创 2013-05-15 20:23:22
2071阅读
一般我们需要对图像直接进行操作的时候,需要知道图像存储的数据结构,这要也就知道了它的遍历方式在opencv2.4.4版本下,IplImage的数据结构如下(貌似在别的版本下差别也不会太大)其中比较重要的是width,height,imageData,widthStep。(其他的刚开始学也知道的不多- -)width,height 就是表示图像的宽度,高度,imageData是一个指向某内存空间的指针,该内存空间里面存放了图像实际像素点的颜色信息(这里是RGB信息)widthstep图像一行像素点所占的字节数,这里是三通道,所以这时widthstep =width * 3知道的上面的基本变量以后
转载 2014-01-20 16:52:00
84阅读
2评论
1 for (int y = 0; y < testImage->height; y++) 2 { 3 4 uchar * ptr = (uchar *)testImage->imageData + testImage->widthStep * y; 5 6 for (int x = 0; x < testImage-&g
Iplimage To Bitmap (銀展提供)if (ipl->depth == 8){if (ipl->nChannels == 3){return gcnew System::Drawing::Bitmap(ipl->width , ipl->height , ipl->widthStep , System::Drawing::Imaging::PixelFo
转载 2012-02-13 14:57:00
125阅读
2评论
方法一:IplImage *pImg = ...;int nWidth = pImg->width;int nHeight = pImg->height;int nChannels = pImg->nChannels;int nStep = pImg->widthStep; for (int i=0; i<nHeight; i++)for(int j=0; j<
i++
转载 2012-02-21 19:22:00
88阅读
2评论