SystemError: new style getargs format but argument is not a tuple[与putpixel(xy, value)相关]

本文主要是介绍SystemError: new style getargs format but argument is not a tuple[与putpixel(xy, value)相关],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天,我在中国大学mooc中学习Python机器学习应用(礼欣、嵩天)里的降维处理人脸图像特征提取的时候,遇到了一点小问题,但是搜索了,网上很少有措施处理这个问题,对此,我做点小分享
首先,需要用到的图片是:
在这里插入图片描述

import numpy as np
import PIL.Image as image
from sklearn.cluster import KMeansdef loadData(filePath):f = open(filePath,'rb') # 二进制形式打开文件data = []               img = image.open(f)     # 列表形式返回图片像素值m,n = img.sizefor i in range(m):      # 将每个像素点RGB颜色处理到0-1for j in range(n):  # 范围内存放进datax,y,z = img.getpixel((i,j))  # 获取某个像素位置的值data.append([x/256,y/256,z/256])f.close()return np.mat(data),m,n  #以矩阵形式返回data,以及图片大小imgData,row,col = loadData('bull.jpg')
label = KMeans(n_clusters=4).fit_predict(imgData)label = label.reshape([row,col])
pic_new = image.new("L", (row, col))
for i in range(row):for j in range(col):pic_new.putpixel((i,j),256 / (label[i][j] + 1))
pic_new.save("result-bull-4.jpg", "JPEG")

运行以上代码出现了问题,

File “…lib\site-packages\PIL\Image.py”, line 1641, in putpixel
return self.im.putpixel(xy, value)


SystemError: new style getargs format but argument is not a tuple

可见,出问题的语句是:

pic_new.putpixel((i,j), 256/(label[i][j]+1))

解决办法是,将256/(label[i][j]+1)转换成int类型

pic_new.putpixel((i,j), int(256/(label[i][j]+1)))

修改后,运行上述正确代码可得:
在这里插入图片描述

这篇关于SystemError: new style getargs format but argument is not a tuple[与putpixel(xy, value)相关]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405342

相关文章

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

MySQL中DATE_FORMAT时间函数的使用小结

《MySQL中DATE_FORMAT时间函数的使用小结》本文主要介绍了MySQL中DATE_FORMAT时间函数的使用小结,用于格式化日期/时间字段,可提取年月、统计月份数据、精确到天,对大家的学习或... 目录前言DATE_FORMAT时间函数总结前言mysql可以使用DATE_FORMAT获取日期字段

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2