直接提取Y分量就成了
灰度圖。然後在OpenCV中創建單通道的I plI mage格式的圖象,就可以進行處理了:
流程及部分關鍵代碼:
1.獲得海康板卡的原始碼流YV12(彩色的),能得到圖象的寬度W,高度h,以及大小Siz e,圖象數據指針
pBuffer;
2.從原始的YV12數據幀提取Y(灰度)分量(做圖象的分析一般是先將圖象灰度化,以減少計算量)
int nYSiz e=w *h; //灰度圖象的大小==YV12中Y分量長度.
char *pYData =new char [nYSiz e];
memcpy(pYData,pBuffer,nYSiz e); //pYData就是一幀灰度圖;這句以及上一句可以省略,爲了你能看的
更清楚點。
3.創建單通道的I plI mage的圖象
I plI mage *pI plI mage=cvCreateI mage(cvSiz e(nWidth,nH eight),I PL_DEPTH _8U ,1); //創建但通道的位深爲
8位的I plI mage格式的圖象
if(pI plI mage)
{
memcpy(pI plI mg->imageData,pYData,nYSiz e);
}
4.構造了一個I plI mage格式的圖象後,你就能做你想做的事情了