16位数字图像改变窗宽窗位使感兴趣区域拥有最大动态范围
窗宽窗位不同于亮度对比度调整,但效果类似亮度对比度。
RAW原图 16bit 1536*1536 ImageJ打开:
自动亮度对比度:
窗宽窗位调整:
C++代码实现:
BOOL CImageOperate::16BitToImage(uchar *pSrc, uchar *pDst, int width, int height,int m_dLevelVal,int m_dWindowVal)
{
if (pSrc == NULL || pDst == NULL) return FALSE;
double dMin = 0, dMax = 0, dVal = 0;
dMin = m_dLevelVal - (m_dWindowVal / (double)2);
dMax = m_dLevelVal + (m_dWindowVal / (double)2);
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
int index = width * i + j;
dVal = pSrc[index];
int iValue = 255.0 * (((double)dVal - dMin) / (dMax - dMin));
if (iValue < 0)
pDst[index] = 0;
else if (iValue > 255)
pDst[index] = 255;
else
pDst[index] = iValue;
}
}
return TRUE;
}
转载请注明出处
参考文章:https://blog.csdn.net/laziji/article/details/104539008