gpt4 book ai didi

python - 在 python 中迭代图像的所有像素的最快方法

转载 作者:太空狗 更新时间:2023-10-30 02:16:14 26 4
gpt4 key购买 nike

我已经将图像读取为数组:

import numpy as np
from scipy import misc
face1=misc.imread('face1.jpg')

face1 尺寸为 (288, 352, 3)

我需要遍历每个像素并填充训练集中的 y 列我采用了以下方法:

Y_training = np.zeros([1,1],dtype=np.uint8)

for i in range(0, face1.shape[0]): # We go over rows number
for j in range(0, face1.shape[1]): # we go over columns number
if np.array_equiv(face1[i,j],[255,255,255]):
Y_training=np.vstack(([0], Y_training))#0 if blank
else:
Y_training=np.vstack(([1], Y_training))

b = len(Y_training)-1
Y_training = Y_training[:b]
np.shape(Y_training)`

挂墙时间:2.57 秒

因为我需要对大约 2000 张图像执行上述处理,有没有更快的方法可以将运行时间减少到毫秒或 naonseconds

最佳答案

您可以使用 broadcasting对白色像素执行广播比较:[255, 255, 255]ALL 使用 .all(axis=-1) 减少每一行> 最后转换为 int dtype。这将为我们提供您在退出循环后立即获得的输出。

因此,一种实现方式是 -

(~((face1 == [255,255,255]).all(-1).ravel())).astype(int)

或者,更紧凑的版本 -

1-(face1 == [255,255,255]).all(-1).ravel()

关于python - 在 python 中迭代图像的所有像素的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com