cv2 python上的Mac照片亭,为啥我的代码会导致错误?

Posted

技术标签:

【中文标题】cv2 python上的Mac照片亭,为啥我的代码会导致错误?【英文标题】:Mac photo booth on cv2 python, why does my code result in an error?cv2 python上的Mac照片亭,为什么我的代码会导致错误? 【发布时间】:2022-01-02 23:28:15 【问题描述】:

我希望代码使用 cv2 以 1 秒的间隔拍摄 4 张照片,然后使用 hconcat 函数将它们相加。当我尝试运行此代码时,我得到('numpy.ndarray' 对象没有属性'release'),有人可以帮忙

import cv2,random
num = random.randint(0,2000)
cam = cv2.VideoCapture(0)

cv2.namedWindow("Mac")

def concat_tile(im_list_2d):
    return cv2.vconcat([cv2.hconcat(im_list_h) for im_list_h in im_list_2d])

x = []
for i in range(4):
    ret,frame = cam.read()
    x.append(frame)
    frame.release()
    cv2.destroyAllWindows()

im_v = concat_tile([[x[0],x[1]],
                    [x[2],x[3]]])
img_name = "opencv_frame_.png".format(num)
cv2.imwrite(img_name,im_v)

【问题讨论】:

【参考方案1】:

不应该是frame.release(),而是试试cam.release()

另外,release()cv2.destroyAllWindows() 应该写在代码的末尾,而不是在 for 循环中

for i in range(4):
    ret,frame = cam.read()
    x.append(frame)

cam.release()
cv2.destroyAllWindows()

【讨论】:

以上是关于cv2 python上的Mac照片亭,为啥我的代码会导致错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 cv2.namedWindow 不起作用?

Python - CV2 改变维度和质量

cv2.imshow() 在 Mac 上崩溃

为啥我用pycharm的cv2.imshow会报错,一直没有解决,要自闭了?

为啥我的网站在 Mac 上的 safari 上滚动过度?

为啥 jQuery 不能在我的 Mac 上的 xampp 上运行?