自己的学习记录,希望能帮到别人,小菜鸟一枚,大牛勿喷。
许多人遇到这种RGB图像转RGBA转换问题,第一是想到用opencv,确实opencv功能强大,只需要调用一个函数接口就可以实现了,但是习惯依赖opencv等开源库,会让我们渐渐忘了图像处理的本质是什么,其实这种转换算法很简单,但也能让我们看清楚图像处理的过程。
void CFaceComparisonDlg::RGBtoRGBA(unsigned char *RGBImage,const int wdth,const int heght, int& step, unsigned char *RGBAImage){
//void **RGBAImage = NULL;
int i,j;
int h = heght ,w = wdth;
for(i = 0; i < h; i++){
for(j = 0; j < wdth; j++){
RGBAImage[i*wdth*4 + j*4 + 0] = RGBImage[i*step + j*3 + 0];
RGBAImage[i*wdth*4 + j*4 + 1] = RGBImage[i*step + j*3 + 1];
RGBAImage[i*wdth*4 + j*4 + 2] = RGBImage[i*step + j*3 + 2];
RGBAImage[i*wdth*4 + j*4 + 3] = 0xff;
}
}
//CFile m_file;