医学图像是16位灰度图,窗宽窗位一般是活动的,处理完图像后,返回一个合适的窗宽窗位是非常有必要的,阅览了知网的几篇论文,写了如下函数,很简单,原理是根据图像的直方图来调节的方法。
定义一个函数:
void Wadjust(Mat &src, ushort &WW, ushort &WL, double th)
src为输入图,WW,WL为窗宽和窗位输出,th为微调的参数,测试0.08-0.12都是比较好的。quality为粗定义图像的质量分数,项目需要,代码用下面方法二就可以了。上代码:
void Wadjust(Mat &src, ushort &WW, ushort &WL,int &quality, double th)
{
double sum = 0;
double num[MAXPIXEL+1] = { 0 };//MAXPIXEL =16384,255,65536看图像的位数去
double maxVal = 0;
double minVal = MAXPIXEL;
int left = 0; int right = 0; //窗宽的左边界和右边界
int pick = 0,pick_pos = 0; //存储直方图的峰值以及该峰值对应的直方图像素横坐标
//minMaxIdx(src, &minVal, &maxVal);
//计算直方图
for (auto i = 0; i < src.rows; i++)
for (auto j = 0; j < src.cols; j++)
{
ushort val = src.at<ushort>(i, j);
if (val > MAXPIXEL)
val = MAXPIXEL;
num[val] ++;
sum += val;
// 寻找图像像素的最大最小值,作为窗宽的粗范围
if (val >= maxVal)
{
maxVal = val;
}
if ((va

本文介绍了一种基于直方图分析的医学图像窗宽和窗位自动调整算法,通过计算图像直方图的峰值和分布,确定窗宽和窗位,以优化图像显示效果。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



