自动窗宽窗位可以找到合理的灰度值区间段,在这个区间段最大程度的保留所关注的内容或者整张图像的主要内容。窗宽是灰度值区间的宽度,窗位一般是灰度值区间的中点位置,窗宽窗位的设置是为了最大程度的展现观察者所需要的内容。
窗宽窗位是为了展现图像上的内容,在图像的灰度域上能够反映这种程度的工具是直方图,因此设计合理的窗宽窗位就需要在直方图上做文章。
自动窗宽窗位的思路是基于直方图,根据自动阈值分割计算出阈值,根据该阈值往两边延拓,是该区间尽可能的包含图像的主要部分。值得注意的是,往左/右方向延拓的大小不一定相同。延拓的多少往往依赖于经验以及图像本身。
个人理解的自动窗宽窗位如下:
第一步,计算图像的直方图(hist);
第二步,根据图像的直方图计算图像阈值(thresh),可以用最大类间距法(Otsu方法, MTALAB的graythresh函数就是用的该方法提取图像阈值,高于该阈值的点为前景点,低于阈值的点为背景点)。
第三步,如果关注点不在整个图像,跳转第四步。如果关注点在整个图像,计算出图像像素的最小像素值(min thresh, 以下用minT简代)与最大像素值(max thresh,以下用maxT简代),置窗宽的左边界(leftBorder)的初值为minT,置窗宽的右边界(rightBorder)的初值为maxR。如果需要剪切掉靠近最小像素的部分区域(如0%,1%,2.5%等),则将leftBorder上移;如果需要剪切掉靠近最大像素值的部分区域(如0%,1%,2.5%等),则将rightBorder下移;如果需要另外剪切掉部分区域(如0%,1%,2.5%等),则需要判断leftBorder和rightBorder处对应的直方图哪方更稀疏,从更稀疏处剪切掉部分区域,也即是将leftBorder加1或将rightBorder减1,再继续比较leftBorder和rightBorder处对应的直方图哪方更稀疏,直到截切的区域达到预设的比例。
第四步,如果关注点在图像背景区域,跳转第五步。如果关注点在图像前景区域,置窗宽的左边界(leftBorder)的初值为thresh,置窗宽的右边界(rightBorder)的初值为maxR。需要计算前景区域占整个图像的比例(massRatio),根据该比例设置需要在左边界增加的区域和在右边界剪切的部分区域(该区域的大小设置依赖经验和图像本身),并移动leftBorder和rightBorder。
第五步,如果关注点在图像背景区域,步骤与第四步类似。
第六步,右边界与左边界的平均值为窗位,差值(大于0)为窗宽。
如果图像是无符号16位的图像,像素值在[0, 65535],则直方图需要65536维度,在用最大类间距法计算阈值时较耗时间,这时可以将无符号16位转化为无符号10位图像(其他低位图像亦可,如无符号8位图像),计算出阈值后再安装比例放大到无符号16位图像(对于无符号10位图像,需要将其阈值放大26=16倍)得到阈值a,在[a-2(16-10), a+2^(16-10)] 的像素范围内搜索无符号16位图像的确切阈值。
自动窗宽窗位的一些思路
最新推荐文章于 2023-11-09 12:06:51 发布