有懂Matrox Imaging Library的嗎
妳好
MIL即為Matrox Imaging Library 的縮寫,是Matrox公司提供的圖像處理函數庫,主要是針對其公司生產的Matrox系列圖像采集卡。
幾個常用的函數如下:
MappAllocDefault();壹個默認的配置,Application、System、Digitizer、Display、Buffer都是按照默認的情況進行配置。
MappAlloc();分配壹個MIL應用,該函數要在使用其它MIL函數之前使用。
MsysAlloc();配置壹個硬件環境,指定使用得板卡類型,使用板卡序號。該函數要在分配buffer,display,digitizer前使用。
MdigAlloc();配置壹個抽象的圖像采集卡,指定可以使用的采集卡通道數,然後才能使用圖像采集卡的函數。
MdispAlloc();配置壹個display,把攝像機采集的圖像使用該抽象進行顯示。
MbufAlloc2d();分配壹個2維的內存區。
……
SizeX為圖像的長度,SizeY為圖像的寬度,SizeBand為圖像的顏色通道數。從讀出的數據分析可以知道,具體圖像像素數據是從上到下,從作到右存儲的。
unsigned?char?*data=new?unsigned?char[SizeX*SizeBand*SizeY];unsigned?char?red=0,green=0,blue=0;int?k=10;//連續采集的10幀圖像int?i,j;while(k--){MdigGrab(ColorMilDigitizer,?ColorMilImage8[0]);MbufGetColor(ColorMilImage8[0],M_PACKED?+M_BGR24,M_ALL_BANDS,data);for(i=0;i<SizeY/2;i++)for(j=0;j<SizeX*SizeBand;j+=SizeBand){blue=*(data+i*SizeX*SizeBand+j+0);green=*(data+i*SizeX*SizeBand+j+1);red=*(data+i*SizeX*SizeBand+j+2);?}MbufPutColor(ColorMilImage8[0],M_PACKED?+M_BGR24,M_ALL_BANDS,data);
MbufCopyColor(ColorMilImage8[0],ColorMilImageDisp,M_ALL_BANDS?);
}delete?data;
設定兩個線程分別采集兩個攝像機的信號,同時主線程控制兩個線程的運行。
希望對妳有幫助