Python 颜色调整器仅 3d numpy
Python color adjuster 3d numpy only
我正在尝试制作一个 rgb 彩色图片编辑器,只使用 numpy。
我试过使用嵌套的 for 循环,但它真的很慢(超过一分钟)。
我想控制嵌套数组第三维的第一、第二和第三个元素 (r,g,b)。谢谢
这只是看数字:
%matplotlib inline
import numpy as np
img = plt.imread('galaxy.jpg')
img = np.array(img)
for i in range(len(img)):
for j in range(len(img[i])):
for k in (img[i][j]):
print(k)
也许这对你有帮助。 np.ndenumerate()
让您无需嵌套 for 循环即可遍历矩阵。我做了一个快速测试,就打印而言,我的第二个 for 循环(在下面的示例中)比你的三重嵌套 for 循环稍快。打印速度非常慢,因此取出打印语句可能有助于提高速度。至于修改这些值,我添加了 r g b a
可以修改以缩放各种像素值的变量。只是一个想法,但也许它会给你更多的想法来扩展。此外,我没有检查哪些索引值对应于 r、g、b 或 a。
r = 1.0
g = 1.0
b = 1.0
a = 1.0
for index, pixel in np.ndenumerate(img): # <--- Acheives the same as your original code
print(pixel)
for index, pixel in np.ndenumerate(img):
i = index[0]
j = index[1]
print("{} {} {} {}".format(img[i][j][0], img[i][j][1], img[i][j][2], img[i][j][3]))
for index, pixel in np.ndenumerate(img):
i = index[0]
j = index[1]
imgp[i][j][0] *= r;
imgp[i][j][1] *= g;
imgp[i][j][2] *= b;
imgp[i][j][3] *= a;
希望对您有所帮助
我正在尝试制作一个 rgb 彩色图片编辑器,只使用 numpy。 我试过使用嵌套的 for 循环,但它真的很慢(超过一分钟)。 我想控制嵌套数组第三维的第一、第二和第三个元素 (r,g,b)。谢谢
这只是看数字:
%matplotlib inline
import numpy as np
img = plt.imread('galaxy.jpg')
img = np.array(img)
for i in range(len(img)):
for j in range(len(img[i])):
for k in (img[i][j]):
print(k)
也许这对你有帮助。 np.ndenumerate()
让您无需嵌套 for 循环即可遍历矩阵。我做了一个快速测试,就打印而言,我的第二个 for 循环(在下面的示例中)比你的三重嵌套 for 循环稍快。打印速度非常慢,因此取出打印语句可能有助于提高速度。至于修改这些值,我添加了 r g b a
可以修改以缩放各种像素值的变量。只是一个想法,但也许它会给你更多的想法来扩展。此外,我没有检查哪些索引值对应于 r、g、b 或 a。
r = 1.0
g = 1.0
b = 1.0
a = 1.0
for index, pixel in np.ndenumerate(img): # <--- Acheives the same as your original code
print(pixel)
for index, pixel in np.ndenumerate(img):
i = index[0]
j = index[1]
print("{} {} {} {}".format(img[i][j][0], img[i][j][1], img[i][j][2], img[i][j][3]))
for index, pixel in np.ndenumerate(img):
i = index[0]
j = index[1]
imgp[i][j][0] *= r;
imgp[i][j][1] *= g;
imgp[i][j][2] *= b;
imgp[i][j][3] *= a;
希望对您有所帮助