【发布时间】:2015-11-07 15:57:28
【问题描述】:
我正在尝试使用 python 和openCV 实现“LOG blob 检测器”。
这个想法是创建 10-15 级 LOG 过滤器,将它们中的每一个应用于我的原始灰度图像并将图像保存在大小为 height x width x numOfLevels 的数组中,然后找到局部最大值3D 数组。
问题是我不确定如何将这些保存在数组中。
我尝试执行以下操作:
myImage = cv2.imread('butterfly.jpg')
gray_image = cv2.cvtColor(myImage, cv2.COLOR_BGR2GRAY)
sigma = 2
k = 2**(0.25)
std2 = float(sigma**2)
arr = []
for i in range(10):
filt_size = 2*np.ceil(3*sigma)+1
H = log_filt( filt_size, sigma)
H *= sigma**2
dst = cv2.filter2D(gray_image,-1,H)
arr.append(dst)
cv2.imshow('Gray', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
sigma = sigma * k
std2 = float(sigma**2)
plt.imshow(H,interpolation='nearest')
但是,如果我尝试使用图像并使用cv2.imshow(arr[0]),则会收到以下错误:
TypeError: Required argument 'mat' (pos 2) not found
我在这里做错了什么?
有没有更好的方法将这些保存在数组中?
也许以某种方式使用np.array?
【问题讨论】:
-
请始终包含完整的错误回溯,而不仅仅是错误消息。
标签: arrays python-2.7 opencv numpy