Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大于零的像素值的Numpy ndarray图像像素平均值:规格化图像_Python_Image_Numpy_Scipy_Normalization - Fatal编程技术网

Python 大于零的像素值的Numpy ndarray图像像素平均值:规格化图像

Python 大于零的像素值的Numpy ndarray图像像素平均值:规格化图像,python,image,numpy,scipy,normalization,Python,Image,Numpy,Scipy,Normalization,我正在尝试在numpy中读取并规范化3通道图像。对于图像中的每个通道,我想计算大于零的像素值的平均值 我从以下几点开始: from scipy import misc img = misc.imread('test.png') print(type(img) ) #<type 'numpy.ndarray'> print(img.shape) #(512, 512, 3) 来自scipy导入杂项 img=misc.imread('test.png') 打印(类型(img))# 打印

我正在尝试在numpy中读取并规范化3通道图像。对于图像中的每个通道,我想计算大于零的像素值的平均值

我从以下几点开始:

from scipy import misc
img = misc.imread('test.png')
print(type(img) ) #<type 'numpy.ndarray'>
print(img.shape) #(512, 512, 3)
来自scipy导入杂项
img=misc.imread('test.png')
打印(类型(img))#
打印(图像形状)#(512、512、3)
但我不确定第一个1。)如何索引出保持维数的正值,而不使数组变平。以及2.)如何获取所选正值的通道平均值

我的完全正常化过程如下所示:

img_mean = mean(img[img >0])#channel wise mean of positive pixels
img_std  = std(img[img>0]) #channel wise std. deviation of positive pixels
img_norm = (img - img_mean)/img_std
img_norm[img_norm < -1] = 0 #setting pixel values less than 1 to 0. 
img_mean=mean(img[img>0])#正像素的通道平均值
img_std=std(img[img>0])#正像素的通道标准偏差
img_标准=(img-img_平均值)/img_标准
img_norm[img_norm<-1]=0#设置小于1到0的像素值。
下面是我正在处理的一个图像示例


最简单的方法是将所有零屏蔽为NaN,然后使用
np.nanmean
np.nanstd
基本上忽略计算中的
零,如下所示-

imgn = np.where(img>0,img,np.nan)
img_norm = (img - np.nanmean(imgn,axis=(0,1)))/np.nanstd(imgn,axis=(0,1))