當前位置:首頁 > 資訊 > info6 > 正文

海康視頻SDK抓取圖像生成圖片

發表于: 2012-08-01   作者:chduguxue   來源:轉載   瀏覽:
摘要: 最近在做海康的視頻相關開發,遇到需要從視頻中抓取圖片出來,生成jpg格式。值得注意的是抓圖部分分為兩種形式。一種是基于板卡的,一種是針對視頻播放的針對視頻播放的可以參見H264播放器編程指南。它里面用到如下方法獲取BOOLPlayM4_GetJPEG(LONGnPort,PBYTEpJpeg,DWORDnBufSize,DWORD*pJpegSize);說明:抓取jpeg圖像參數:nPort:通道

最近在做海康的視頻相關開發,遇到需要從視頻中抓取圖片出來,生成jpg格式。

值得注意的是抓圖部分分為兩種形式。一種是基于板卡的,一種是針對視頻播放的

針對視頻播放的可以參見H264播放器編程指南。它里面用到如下方法獲取

BOOL PlayM4_GetJPEG(LONG nPort,PBYTE pJpeg,DWORD nBufSize,DWORD* pJpegSize);
說明: 抓取jpeg圖像
參數: nPort: 通道號
HikVision H264 播放器編程指南
pJPeg: 存放JEPG圖像數據地址,由用戶分配,不得小于JPEG圖像大小,建議大小w * h * 3/2, 其中w和h分別為圖像寬高。
nBufSize: 申請的緩沖區大小。
pJpegSize: 獲取到的實際bmp圖像大小。
返回值: TRUE: 獲取成功
FALSE: 獲取失敗

針對板卡的需要采用另外一套方法,可參見xxx系列板卡系統SDK編程指南

抓取JPEG格式圖像GetJpegImage
函 數: int __stdcall GetJpegImage(HANDLE hChannelHandle,UCHAR *ImageBuf,ULONG *Size,
UINT nQuality)
參 數:
HANDLE hChannelHandle;通道句柄
UCHAR *ImageBuf;JPEG圖像指針
ULONG *Size;JPEG圖像尺寸,函數調用前是ImageBuf的大小,調用后是實際圖像所占用的字節數
UINT nQuality;JPEG圖像質量,取值范圍1-100,取值100時質量最好
返回值: 成功返回0,失敗返回錯誤值
說 明: 抓取JPEG格式圖像
注 意:
DS-42xxHC卡的JPEG抓圖是CIF圖像格式;DS-42xxHFV卡的JPEG抓圖像的4CIF圖像格式。
DS041xxHCV卡的JPEG抓圖是4CIF圖像格式;
DS-40xxHC/HC+/HF/HCS的JPEG抓圖是4CIF圖像格式(包括QCIF編碼);
DS-40xxHS的JPEG抓圖是CIF圖像格式;
DS-40xxH的JPEG抓圖是CIF圖象格式;

以上兩種方案,也會有針對生成bmp格式的函數,這里就不累述了。可以在官方demo中搜索這兩個函數的用法,很簡單的。

以下是我用板卡寫的一個demo

DWORD Size = 704 * 576*2;
UCHAR *imageBuffer=new UCHAR[Size];
try
{
pImage = new BYTE[nBufSize];
if(NULL == pImage)
{
throw 0;
}
}
catch(…)
{

}

int reGetJpg=GetJpegImage(MyHandle,imageBuffer,&Size,100);//這個MyHandle是視頻的通道句柄
CString sFilePath;
CFile clsFile;
sFilePath=”d:\\abcd.jpeg”;
try
{

FILE *pFile=fopen(sFilePath,”wb”);
if(pFile)
{
fwrite(imageBuffer,Size,1,pFile);
fclose(pFile);
}
else
AfxMessageBox(“Can not open JPEG file!”);
}
catch (CFileException* e)
{
e->ReportError();
e->Delete();
}

轉載自http://www.duguxue.com/index.php/archives/701.html

海康視頻SDK抓取圖像生成圖片

版權所有 IT知識庫 CopyRight ? 2009-2015 IT知識庫 IT610.com , All Rights Reserved. 京ICP備09083238號
广东25选5开奖结果