您的位置:首页 > 编程语言 > C语言/C++

C++ Mat 读取imagedata内的数据

2016-07-02 16:23 218 查看



应用:将三通道彩色图的Mat数据,转存为单通道灰度图的unsigned char*数据:

       Mat ImageMedia;                           //读取
unsigned char *pGrayImage;//存入
int xsize = ImageMedia.cols;
int ysize = ImageMedia.rows;

pGrayImage = new unsigned char[ xsize * ysize ];

for(int j = 0; j < ysize; j++){
auto ptr = ImageMedia.ptr<uchar>(j);
for(int i = 0; i < xsize; i++) {
pGrayImage[j * xsize + i] = (unsigned char)(
(float)(ptr[0] + ptr[1] + ptr[2])/3.0f);
ptr += 3;
}
}




注意的点:

1、图片数据如果是以uchar存储的,读取的时候一定要用<uchar>

2、ptr的方法是我百度了无数网页看到无数个版本后,第一个成功的。。。

因为IplImage和Mat读取图片数据的问题,踩了一堆堆的坑,无比心累。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 图片