python归一化 增大差异_图像数据集制作——窗位窗宽+归一化处理【python版本】...

在图像训练集制作中,尤其对于医学影像,为了获得更好的训练效果,往往需要增大图像间像素值差异。同时,为了防止训练中出现数值暴增,补充简单归一化处理。

源代码

import numpy as np

import matplotlib.pyplot as plt

import random

import math

#-----------data-----------#

rawData = np.fromfile('CDH_Low.raw', dtype=np.int16) #读取.raw数据

# window-level Processing

rawData_win=np.zeros(rawData.shape,dtype='float32')

window_center=1200 #窗位

window_width=400 #窗宽

win_min = (2*window_center - window_width)/2.0 + 0.5

win_max = (2*window_center + window_width)/2.0 + 0.5

dFactor = 255.0/(win_max - win_min)

nNumPixels=rawData.shape[0]

for i in range(nNumPixels):

pixel_val = rawData[i]

if pixel_val < win_min:

disp_pixel_val = 0

continue;

if pixel_val > win_max:

disp_pixel_val = 255

continue;

nPixelVal = (pixel_val - win_min)*dFactor

if nPixelVal < 0:

disp_pixel_val = 0

elif nPixelVal > 255:

disp_pixel_val = 255

else:

disp_pixel_val = nPixelVal

rawData_win[i]=disp_pixel_val

# normalize processing

rawData_win=(rawData_win-np.min(rawData_win))/(np.max(rawData_win)-np.min(rawData_win))

窗位窗宽图像增强

win_min = (2*window_center - window_width)/2.0 + 0.5

win_max = (2*window_center + window_width)/2.0 + 0.5

nPixelVal = [(pixel_val - win_min)/(win_max - win_min) ]*255 这里映射为8bit 0~255灰度图像

窗位窗宽可根据数据特征和自身需求手动设置,本帖中博主使用为CT数据,故选择常用窗宽400,窗位1200参数。

图像归一化处理

(1)线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。(2)对数函数转换,表达式如下:y=log10(x)说明:以10为底的对数函数转换。(3)反余切函数转换,表达式如下:y=atan(x)*2/PI(4)一个归一化代码.I=double(I);maxvalue=max(max(I)');%max在把矩阵每列的最大值找到,并组成一个单行的数组,转置一下就会行转换为列,再max就求一个最大的值,如果不转置,只能求出每列的最大值。f = 1 - I/maxvalue; %为什么要用1去减?Image1=f;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值