我想處理像素的r和通道并將其從 轉換為,然后使用存盤在. 這就是我通常使用常規 for 回圈的方式,但由于我使用的影像尺寸約為 4k*4k,這需要很長時間,我很想加快速度。我對并行化等知之甚少,但任何資源都會有所幫助。我已經嘗試過和之類的庫,但我感覺好像我在這些實作中犯了一些基本錯誤,通常會導致一些泡菜錯誤。g0 <-> 255-1 <-> 1(r, g)(0,0)rotations[i]joblibmultiprocessing
c = math.cos(rotations[i])
s = math.sin(rotations[i])
pixels = texture_.load()
for X in range(width):
for Y in range(height):
x = (pixels[X, Y][0]/255 -.5)*2
y = (pixels[X, Y][1]/255 -.5)*2
z = pixels[X, Y][2]
x_ = x*c-y*s
y_ = x*s y*c
x_ = 255*(x_/2 .5)
y_ = 255*(y_/2 .5)
pixels[X, Y] = (math.floor(x_), math.floor(y_), z)
uj5u.com熱心網友回復:
用于numpy向量化計算并在矩陣樣式計算中一次計算所有單個元素。
嘗試這樣的事情:
import numpy as np
pixels = np.array(pixels) # Assuming shape of (width, length, 3)
x = 2 * (pixels[:, :, 0]/255 - 0.5)
y = 2 * (pixels[:, :, 1]/255 - 0.5)
z = pixels[:, :, 2]
x_ = x * c - y * s
y_ = x * s y * c
x_ = 255 * (x_ / 2 .5)
y_ = 255 * (y_ / 2 .5)
pixels[:, :, 0] = np.floor(x_)
pixels[:, :, 1] = np.floor(y_)
pixels[:, :, 2] = z
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/496645.html
上一篇:在Clinux中使用帶有UDP服務器的執行緒時,如何阻止recvfrom()阻塞?
下一篇:從多個執行緒訪問同一個物件實體
