更多文章參考:自己動手實現darknet預測分類動態庫
數據截取:
CMemoryBase *memory = g_pScanManager->GetCurrentScan()->GetOCTMemory();
int rWidth = 1024;
int width = 860;
int height = 1000;
BYTE** ppImage = (BYTE**)malloc(sizeof(BYTE*) * 100);
for (int i = 0; i < 100; i++)
{
ppImage[i] = (BYTE*) malloc(width * height);
}
for (int i = 0; i < 100; i++)
{
for (int h = 0; h < height; h++)
{
for(int w = 0; w < width; w++)
{
ppImage[i][h * width + w] = memory->GetScanData(i)->OCTData[h * rWidth + w];
}
}
int m_height=860;
int m_wid = 1000;
int c=3;
for (int i = 0; i < m_height; ++i)
{
for (int j = 0; j < m_wid; ++j)
{
int iPos = j * c;
int k = i * m_wid * c + iPos;
if (c == 3)
{
mImgData[h][k] = (unsigned char)ppImage[j * m_height + m_height - i - 1];
mImgData[h][k + 1] = (unsigned char)ppImage[j * m_height + m_height - i - 1];
mImgData[h][k + 2] = (unsigned char)ppImage[j * m_height + m_height - i - 1];
}
}
}
}
採集存儲到共享內存:
//OCT實際圖像寬度
int nRealWidth = 1024;
int nWidth = 860;
int nHeight =500;
PBYTE buff = m_fnGetOctBufferNextPointer(nHeight, nWidth, 1);
for (int j = 0; j < nHeight; j++)
{
for (int i = 0; i < nWidth; i++)
{
buff[j*nWidth + i] = pOCTData[j * nRealWidth + i];
}
}
分析:共享內存到mtsd文件