python 如何不用循环语句实现对矩阵数据的批量操作?
以下代码实现对图片指定颜色的批量替换,但是使用了循环语句。看了以后我强迫症犯了。知道Numpy库可以直接调佣intel cpu 的mkl指令集实现“矩阵运算”。可以大大提高运算效率,不知道在如下代码中应该使用什么函数替代循环,完成快速完成同样的任务
from PIL import Image
i = 1
j = 1
img = Image.open("e:/pic/222.jpg")#读取系统的内照片
print (img.size)#打印图片大小
print (img.getpixel((4,4)))
width = img.size[0]#长度
height = img.size[1]#宽度
for i in range(0,width):#遍历所有长度的点
for j in range(0,height):#遍历所有宽度的点
data = (img.getpixel((i,j)))#打印该图片的所有点
print (data)#打印每个像素点的颜色RGBA的值(r,g,b,alpha)
print (data[0])#打印RGBA的r值
if (data[0]>=170 and data[1]>=170 and data[2]>=170):#RGBA的r值大于170,并且g值大于170,并且b值大于170
img.putpixel((i,j),(234,53,57,255))#则这些像素点的颜色改成大红色
img = img.convert("RGB")#把图片强制转成RGB
img.save("e:/pic/testee1.jpg")#保存修改像素点后的图片
————————————————
版权声明:本文为CSDN博主「徐为波」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xwbk12/java/article/details/78998196
不知道你的 JPG 怎么会是 RGBA, JPG 不支持透明度, 应该是 RGB. 所以这里读入的图像是 PNG.