當前位置:
首頁 > 知識 > opencv Mat類型和BYTE*指針類型互轉

opencv Mat類型和BYTE*指針類型互轉

1.Mat轉BYTE*函數

  1. void MatToByte(Mat srcImg, BYTE*& pImg)
  2. {
  3. int nFlag = srcImg.channels() * 8;//一個像素的bits
  4. int nHeight = srcImg.rows;
  5. int nWidth = srcImg.cols;
  6. int nBytes = nHeight * nWidth * nFlag / 8;//圖像總的位元組
  7. if(pImg)
  8. delete[] pImg;
  9. pImg = new BYTE[nBytes];//new的單位為位元組
  10. memcpy(pImg, srcImg.data, nBytes);//轉化函數,注意Mat的data成員
  11. }

2.BYTE*轉Mat函數

  1. void BYTEToMat(BYTE* pImg, int nH, int nW, Mat& outImg)//nH,nW為BYTE*類型圖像的高和寬
  2. {
  3. int nByte = nH * nW * nFlag / 8;
  4. pImg = new BYTE[nByte];
  5. int nType = nFlag == 8 ? CV_8UC1 : CV_8UC3;
  6. outImg = Mat::zeros(m_nHeight, m_nWidth, nType);
  7. memcpy(m_matSrc.data, pImg, nByte);
  8. }

opencv Mat類型和BYTE*指針類型互轉

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

教你繪製通透質感的按鈕
負載均衡session共享的三種處理方法

TAG:程序員小新人學習 |