加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++ ATL标准读取图片

发布时间:2020-12-15 04:57:56 所属栏目:百科 来源:网络整理
导读:?CImage转Mat //CImage 转 Mat void CImage2Mat(CImage Image,Mat src) { // CImage 转 Mat if (Image.IsNull()) { cout //MessageBox(_T("没有加载成功")); } if (1 == Image.GetBPP() / 8) { src.create(Image.GetHeight(),Image.GetWidth(),CV_8UC1); } e

?CImage转Mat

//CImage 转 Mat

void CImage2Mat(CImage& Image,Mat& src)

{

// CImage 转 Mat

if (Image.IsNull())

{

cout << "没加载成功" << endl;

//MessageBox(_T("没有加载成功"));

}

if (1 == Image.GetBPP() / 8)

{

src.create(Image.GetHeight(),Image.GetWidth(),CV_8UC1);

}

else if (3 == Image.GetBPP() / 8)

{

src.create(Image.GetHeight(),CV_8UC3);

}

//拷贝数据

uchar* pucRow; //指向 Mat 数据区的行指针

uchar* pucImage = (uchar*)Image.GetBits(); //指向 CImage 数据区的指针

int nStep = Image.GetPitch();//每行的字节数,注意这个返回值有正有负

for (int nRow = 0; nRow < Image.GetHeight(); nRow++)

{

pucRow = (src.ptr(nRow));

for (int nCol = 0; nCol < Image.GetWidth(); nCol++)

{

if (1 == Image.GetBPP() / 8)

{

pucRow[nCol] = *(pucImage + nRow * nStep + nCol);

}

else if (3 == Image.GetBPP() / 8)

{

for (int nCha = 0; nCha < 3; nCha++)

{

pucRow[nCol * 3 + nCha] = *(pucImage + nRow * nStep + nCol * 3 + nCha);

}

}

}

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读