OpenCV的图像像素访问[转]

OpenCV图像像素访问

OpenCV是基于C/C++语言的开源图像处理函数库,可用于实时处理图像的有关问题,最近在实践访问图像像素方面有些许感悟:

运用OpenCV访问图像像素有间接访问。直接访问、基于指针的访问、基于 c++ wrapper 的直接访问等手段,经过实验觉得基于指针的直接访问较简单高效,同时也更容易接受:

我们假设要访问第k通道、第i行、第j列的像素:

1.对于单通道字节型图像:

IplImage*img=

cvCreateImage(cvSize(740,550),IPL_DEPTH_8U,1);

int height=img->height;

int width-img->width;

int step=img->widthStep/sizeof(uchar);

uchar*data=(uchar*)img->imageData;

data[i*step+j]=111;

2.对于多通道字节型图像:

IplImage* img  = cvCreateImage(cvSize(740,550),IPL_DEPTH_8U,3);

int height=img->height;

int width=img->width;

int step=img->widthStep/sizeof(uchar);

int channels=img->nChannels;

uchar*data=(uchar*)img->imageData;

data[i*step+j*channels+k] = 111;

3.对于多通道浮点型图像(假设图像数据采用4字节(32位)行对齐方式):

IplImage*img=

cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);

int height=img->height;

int width=img->width;

int step=img->widthStep/sizeof(float);

int channels=img->nChannels;

float*data=(float*)img->imageData;

data[i*step+j*channels+k]=111;

转载于:https://www.cnblogs.com/freedesert/archive/2013/05/11/3072465.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值