Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 平均颜色有点不对。(np.mean())_Python_Image_Numpy_Rgb - Fatal编程技术网

Python 平均颜色有点不对。(np.mean())

Python 平均颜色有点不对。(np.mean()),python,image,numpy,rgb,Python,Image,Numpy,Rgb,我写了一个脚本,它将图像的平均颜色写入一个文件中。但是,它返回的值有点错误 #编码=utf-8 来自未来导入打印功能 导入cv2、系统、操作系统 将numpy作为np导入 调色板=[] 如果len(系统argv)

我写了一个脚本,它将图像的平均颜色写入一个文件中。但是,它返回的值有点错误

#编码=utf-8
来自未来导入打印功能
导入cv2、系统、操作系统
将numpy作为np导入
调色板=[]
如果len(系统argv)<2:
打印(将文件拖到我身上)
打印(u)(按Enter键关闭),结束=“”)
原始输入()
sys.exit()
如果操作系统路径不存在(sys.argv[1]):
打印(u'无效文件名')
打印(u)(按Enter键关闭),结束=“”)
原始输入()
sys.exit()
对于sys.argv[1:]中的文件:
im=cv2.imread(文件)
如果im为无:
打印(u'指定的文件已损坏或不是图片')
打印(u)(按Enter键关闭),结束=“”)
原始输入()
sys.exit()
颜色=np.唯一(im.重塑(-1,im.形状[2]),轴=0)
color=np.flip(colors.mean(axis=0,dtype=np.float64).astype(int)).tolist()
palete.append([color,os.path.basename(文件)[:-4]]
调色板=np.数组(调色板)
palette=palette[palette[:,0].argsort(kind='mergesort')]
out=open('palete.txt','w')
out.write(str(palete.tolist()))
结束
示例:-在Photoshop和中,平均颜色为[105,99,89],但我的脚本返回[107100,90]

colors=np.unique(im.reformate(-1,im.shape[2]),axis=0)

colors=im.重塑(-1,im.形状[2])

对于平均颜色计算,如果一种颜色被多次使用很重要,因此使用
np.unique
将给出错误的结果。

使用

colors=np.unique(im.reformate(-1,im.shape[2]),axis=0)

colors=im.重塑(-1,im.形状[2])


对于平均颜色计算,如果一种颜色被多次使用是很重要的,因此使用
np.unique
将给出不正确的结果。

您可能需要删除
unique
命令来重现javascript正在执行的操作。换成

colors = im.reshape(-1, im.shape[2])

不同之处在于,您平均了味觉(使用的每种颜色都出现一次),而脚本平均了图像(平均了图像中出现的颜色)

您可能需要删除
unique
命令来重现javascript正在执行的操作。换成

colors = im.reshape(-1, im.shape[2])

不同之处在于,您平均了味觉(使用的每种颜色都出现一次),而脚本平均了图像(平均了图像中出现的颜色)

为什么要使用
np.unique
?您希望它是托盘的平均值还是图像实际使用的颜色及其频率?非常感谢!我删除了
np.unique()
,它可以正常工作!为什么要使用
np.unique
?您希望它是托盘的平均值还是图像实际使用的颜色及其频率?非常感谢!我删除了
np.unique()
,它可以正常工作!我也谢谢你,斯蒂芬!我也谢谢你,斯蒂芬!