0

我昨天在这个线程上问了这个问题: Histogram Normalization

但是,我尝试使用链接中获得的一些想法对图像执行规范化,并得到以下结果。在这里,我将除黑白像素外的所有像素归一化为 50%。我使用的公式是:(pixel - min) / (max - min) * 127

pixel = (float)src.at<uchar>(j,i);


if (pixel == 255)
{
    img.at<uchar>(j,i) = pixel;
}

if (pixel == 0)
{
    img.at<uchar>(j,i) = pixel;
}

/*if (min == 0 || max == 0 || (max - min == 0))
{
    img.at<uchar>(j,i) = pixel;
}
else
{*/
    normal__ = ((pixel - min)/(max - min)) * ( 127);
    img.at<uchar>(j,i) = normal__;
//}

}

结果:

RED PIXEL: MIN = 0 MAX = 253
GREEN PIXEL: MIN = 0 MAX = 254
BLUE PIXEL: MIN = 0 MAX = 255

标准化前的图像 在此处输入图像描述

使用上述公式标准化后: 在此处输入图像描述

现在,我正在确认我的步骤是否正确。谢谢..:)

4

1 回答 1

0

由于声明

  normal__ = ((pixel - min)/(max - min)) * ( 127);
   img.at<uchar>(j,i) = normal__;

不在 if-else 语句中,它们也适用于黑白像素。可以吗?

于 2013-06-25T03:35:03.527 回答