gpt4 book ai didi

arrays - 在python\openCV\numpy中创建图像数组

转载 作者:行者123 更新时间:2023-12-02 16:17:28 24 4
gpt4 key购买 nike

我正在尝试使用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

最佳答案

您的错误:

cv2.imshow(arr[0]) I get the following error: TypeError: Required argument 'mat' (pos 2) not found

是因为您将图像( arr[0])作为第一个参数传递,但您应将其作为第二个参数传递:
cv2.imshow('WindowName', arr[0])

请参阅 imshow的OpenCV 2.43.0文档:
cv2.imshow(winname, mat)

关于arrays - 在python\openCV\numpy中创建图像数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com