如何减去像素均值

时间:2018-03-12 01:54:26

标签: python numpy

mean_pixel是: path <- "C:/Data/2008/" files <- list.files(path =path,pattern="*.csv") for(file in files) { perpos <- which(strsplit(file, "")[[1]]==".") assign( gsub(" ","",substr(file, 1, perpos-1)), read_delim(paste(path,file,sep=""), ";",escape_double = FALSE, col_types = cols(Fecha = col_date(format = "%d/%m/%Y")), trim_ws = TRUE)) as.data.frame(file) } for (file in files) { file $fecha=as.Date(file $Fecha) orden.fecha=file [order(file $fecha),] lonjitud.fecha=length(orden.fecha$fecha) fecha.min=orden.fecha$fecha[1] fecha.max=orden.fecha$fecha[lonjitud.fecha] todas.fecha=seq(fecha.min,fecha.max,by="day") todas.fechas.frame<- data.frame(list(fecha=todas.fecha)) merged.fecha<-merge(todas.fechas.frame,orden.fecha,all = T) }

这就是我加载图片的方式。

103.939, 116.779, 123.68

我一直在尝试使用Numpy减去平均像素,但我似乎无法将图像转换回数组中的图像。

这就是我转换为RGB和BGR的方式:

image = Image.open(image_name)
image = image.convert('RGB')

我正在尝试复制这个Lua处理代码:https://github.com/jcjohnson/neural-style/blob/master/neural_style.lua#L416-L437,用于Pytorch。

如何正确地从图像中减去平均像素?

编辑:

这似乎无法正常工作,因为生成的图像完全搞砸了:

def rgb2bgr(image):
    data = np.array(image)
    red, green, blue = data.T 
    data = np.array([blue, green, red])
    data = data.transpose()
    image = Image.fromarray(data)
    return image

def bgr2rgb(image):
    data = np.array(image)
    blue, green, red = data.T
    data = np.array([red, green, blue])
    data = data.transpose()
    image = Image.fromarray(data)
    return image

也许我可以在将图像转换为张量后减去均值?

def SubtractMean(image):
    data = np.array(image)
    mean_pixel = np.array([123.68, 116.779, 103.939]).reshape((1,1,3))
    data = data - mean_pixel
    image = Image.fromarray((data), 'RGB')
    return image

0 个答案:

没有答案