初学opencv小记-对像素的操作

本文介绍了使用OpenCV库访问图像像素的多种方法。对于C语言,可以通过指针直接获取像素值;而在C++中,提供了更为灵活的方式,如通过.at()函数、ptr()函数以及直接利用指针操作来获取特定位置的像素值。

opencv现在主要用两种语言,一个是C语言和C++语言

1c语言直接访问像素的方法是

1)IplImage img;

uchar* pdata;  //声明一个指针

img=cvLoadImage(...);

pdata=(uchar *)img->imageData;  //这就获得指向第一个像素的指针

pdata+row*img->widthStep+col即为你想要指向的行数和列数的像素

2)pixval32f( img, r, c )

r为行,c为列

这个函数其实就是上面取得的那个指针


2c++版本的

有好几个方法

1)

Mat image;

image.at<Vec3b>(x,y)[c]即为像素值

x为行,y为列,c为通道  (rgb依次通道)

2)

uchar* data= image.ptr<uchar>(j);//可以先获得每一行的第一个像素的指针下面你懂的,就跟指针操作一样

3)其实第一种和第二种可以归为一类

下面这种是纯指针了,我觉得这种方便

下面指向坐标为(j,i)的像素的指针

data= image.data+j*image.step+i*image.elemSize();  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值