关于IplImage中的imageData

imageData指向存储图像数据的一块数据区。这块数据区虽然是被声明为char类型的,但是其也可以引用其他类型的数据。

例如声明一个图像,长宽为100,100,深度为32位的float型,灰度图像。

IplImage* Img = cvCreateImage(cvSize(100,100), IPL_DEPTH_32F, 1);

那么我们可以通过调试查看实际的内存分配空间为40000 = 100*100*(32/8)。也就是说实际上是分配了10000个float型的内存区域。其他类型的类似。如何使用呢?

建议使用宏:CV_IMAGE_ELEM(Img, type, row, col),

如  CV_IMAGE_ELEM(Img, float, 0, 0) = 1.024f;

float r = CV_IMAGE_ELEM(Img, float, 0, 0);

类似的CvMat中的data数据的声明形式更好一些,明显的union声明。实际上IplImage中也隐含的使用了这种结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值