opencv Mat類型和BYTE*指針類型互轉
知識
07-16
1.Mat轉BYTE*函數
- void MatToByte(Mat srcImg, BYTE*& pImg)
- {
- int nFlag = srcImg.channels() * 8;//一個像素的bits
- int nHeight = srcImg.rows;
- int nWidth = srcImg.cols;
- int nBytes = nHeight * nWidth * nFlag / 8;//圖像總的位元組
- if(pImg)
- delete[] pImg;
- pImg = new BYTE[nBytes];//new的單位為位元組
- memcpy(pImg, srcImg.data, nBytes);//轉化函數,注意Mat的data成員
- }
2.BYTE*轉Mat函數
- void BYTEToMat(BYTE* pImg, int nH, int nW, Mat& outImg)//nH,nW為BYTE*類型圖像的高和寬
- {
- int nByte = nH * nW * nFlag / 8;
- pImg = new BYTE[nByte];
- int nType = nFlag == 8 ? CV_8UC1 : CV_8UC3;
- outImg = Mat::zeros(m_nHeight, m_nWidth, nType);
- memcpy(m_matSrc.data, pImg, nByte);
- }
※教你繪製通透質感的按鈕
※負載均衡session共享的三種處理方法
TAG:程序員小新人學習 |