void TestShowGrayImage(uint8_t* data, int32_t width, int32_t height, int32_t stride,
const String fileName, const String winName)
{
Mat img(height, width, CV_8UC1);
uint8_t * imgData = img.data;
uint8_t * srcData = data;
int32_t idx = 0;
for (int32_t row = 0; row < img.rows; row++)
{
for (int32_t col = 0; col < img.cols; col++)
{
imgData[idx] = srcData[col];
idx ++;
}
srcData += stride;
}
imwrite(fileName, img);
imshow(winName, img);
waitKey(0);
}
void TestShowColorImage(uint8_t* channelR, uint8_t* channelG, uint8_t* channelB,
int32_t width, int32_t height, int32_t stride,
const String fileName, const String winName)
{
Mat img(height, width, CV_8UC3);
uint8_t * imgData = img.data;
uint8_t * srcDataR = channelR;
uint8_t * srcDataG = channelG;
uint8_t * srcDataB = channelB;
int32_t idx = 0;
for (int32_t row = 0; row < img.rows; row++)
{
for (int32_t col = 0; col < img.cols; col++)
{
imgData[idx] = srcDataB[col];
imgData[idx + 1] = srcDataG[col];
imgData[idx + 2] = srcDataR[col];
idx += 3;
}
srcDataR += stride;
srcDataG += stride;
srcDataB += stride;
}
imwrite(fileName, img);
imshow(winName, img);
waitKey(0);
}