深度32位图像转换为8位图像,利用 cvConvert就可以解决。也可以尝试做一个由[0,1]到[0,255]的线性映射。 具体步骤: IplImage* gray = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
for(int row=0;row<src->height;row++) { float* srcRowPtr = (float*)(src->imageData+row*src->widthStep); uchar* grayRowPtr = (uchar*)(gray->imageData+row*gray->widthStep); for(int col=0;col<src->width;col++) *(grayRowPtr+col) = (uchar)(*(srcRowPtr+col)*255); } 以上假设32位灰度图和8位灰度图都为单通道。 |
|