[英]Summing 3D array elements with 1D arrays
我正在將OpenCV用於計算機視覺項目,但是,我需要對圖像進行逐像素操作,這意味着需要訪問640x480圖像中的每個像素並更改其HSV值。 該圖像由3D數組X,Y和HSV值組成,因此130、230處的像素的HSV值可以為[12、26、18]或在圖像中表示:(130、230,(12, 26,18))
我需要執行一項操作,使我可以將X值添加到HSV值的V值(元素索引2)中:(130,230,( 12,26,18 ))
我可以使用兩個循環來做到這一點:
for x in range(image.width):
for y in range(image.height/2):
initcolor = cv.Get2D(image, y, x)
initcolor2 = [0, 0, 10, 0]
summed = [sum(pair) for pair in zip(initcolor, initcolor2)]
cv.Set2D(image, y, x, summed)
但這確實很慢,並且由於某種原因大約需要20秒才能完成整個圖像的操作。
有沒有更簡單,更快的方法來實現這一目標?
如果我使用Python進行計算機視覺,我肯定會使用Numpy並盡快將數組轉換為numpy格式。 我懷疑您可能希望numpy.asarray()從PIL轉換為數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.