我有設置數組元素與序列的錯誤,我不知道如何修復它。即引發錯誤的行是:Python:爲我的邊緣檢測設置一個序列錯誤的數組元素
ret[q,l] = (50,255,20)
ValueError: setting an array element with a sequence.
我試圖做的是從灰度圖像脫粒陣列(位於邊緣)的每一個像素更改爲綠色,但是我不斷收到此錯誤。
另外這裏是我的邊緣的剩餘部分檢測代碼:
def edgeDetect(img, threshold):
ret = img.copy()
thresh = []
h = img.shape[0]
w = img.shape[1]
for y in range(1, h-2):
for x in range(1, w-2):
gx = 0
gy = 0
gx = (img.item(y, x)*0 + img.item(y + 1, x)*0 + img.item(y-1, x)*0 + img.item(y, x+1)*2 + img.item(y, x-1)*-2 + img.item(y+1, x+1)*1 + img.item(y-1, x-1)*-1 + img.item(y+1, x-1)*-1 + img.item(y-1, x+1)*1)
gy = (img.item(y, x)*0 + img.item(y + 1, x)*-2 + img.item(y-1, x)*2 + img.item(y, x+1)*0 + img.item(y, x-1)*0 + img.item(y+1, x+1)*-1 + img.item(y-1, x-1)*1 + img.item(y+1, x-1)*-1 + img.item(y-1, x+1)*1)
result = gx**2 + gy**2
if(result > float(threshold)**2):
thresh.append([y,x])
for p in range(len(thresh)):
print()
q, l = thresh[p]
img[q,l] = (50,255,20)
return ret
發佈確切的錯誤消息,包括回溯。 –
我會猜測:使用'img [q] [l]'而不是'img [q,l]' –
你想要'img [q,l] = ...'做什麼?什麼是'img'?一個Python清單列表? 2D-Numpy-Array?一些特殊的圖像類?從你在'img'上使用的方法來看,它應該是一個Numpy數組,但是'img [q,l]'應該可以工作。 –