opencv中遍历图片数据的两种方法
2012-02-21 19:22
267 查看
方法一:
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<nWidth; j++)
for (int k=0; k<nChannels; k++)
{
pImg->imageData[i*nStep + j*nChannels + k] = 255 - pImg->imageData[i*nStep + j*nChannels + k];
}
方法二:
IplImage *image = ...;
int div = 8;
int nl = image->height;
int nc = image->width*image->nChannels;
int step = image->widthStep;
unsigned char *data = (unsigned char *)image->imageData;
for (int i=1; i<nl; i++)
{
for (int j=0; j<nc; j+=image->nChannels)
{
data[j] += div/2;
data[j+1] += div/2;
data[j+2] += div/2;
}
data += step;
}
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<nWidth; j++)
for (int k=0; k<nChannels; k++)
{
pImg->imageData[i*nStep + j*nChannels + k] = 255 - pImg->imageData[i*nStep + j*nChannels + k];
}
方法二:
IplImage *image = ...;
int div = 8;
int nl = image->height;
int nc = image->width*image->nChannels;
int step = image->widthStep;
unsigned char *data = (unsigned char *)image->imageData;
for (int i=1; i<nl; i++)
{
for (int j=0; j<nc; j+=image->nChannels)
{
data[j] += div/2;
data[j+1] += div/2;
data[j+2] += div/2;
}
data += step;
}
相关文章推荐
- MFC上显示摄像头JPEG图片数据的两种方法
- opencv 遍历图片像素并生成新图片(两种方式对比)
- OPENCV 遍历文件夹中的图片方法
- Map中两种遍历数据的方法
- Opencv判断是否加载图片的两种方法
- 解决下载妹子网图片数据不全的两种方法
- 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)
- Opencv批量处理图片的两种方法
- 【opencv】获取图片某点像素值的两种方法
- OpenCV图片拼接的两种方法
- iOS读取图片数据的两种方法:UIImageJPEG和UIImagePNG
- ios图片拉伸两种方法
- Java遍历Map的两种实现方法
- jquery ajax遍历json的两种方法
- Android提交数据到服务器的两种方式四种方法
- 数据结构上机测试4.1:二叉树的遍历与应用1【根据二叉树的前序序列和中序序列求后序序列方法1,2】
- MFC获取rgb图像数据后动态显示及保存图片的方法
- 用OpenCV批量读取图片的三种方法
- 窗体图片背景(两种方法:设置Brush.Bitmap指向图片,别的控件也可以这样)
- js循环遍历的两种方法for循环和for ... in 循环