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)相关]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_43584807/article/details/104209292
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/405342

相关文章

解决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

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...