Expected Ptr<cv::UMat> 用于参数'src'



我必须先将视频转换为灰色格式,然后再转换为hsv,但我得到了这个错误:

Traceback (most recent call last):
File "c:/Users/eycan/Desktop/serittakip.py", line 8, in <module>
im = cv2.cvtColor(vid, cv2.COLOR_BGR2GRAY) # grayscale kopya
TypeError: Expected Ptr<cv::UMat> for argument 'src'

我的代码:

import cv2
import numpy as np
vid = cv2.VideoCapture("C:\Users\eycan\Desktop\serit\yol.mp4")
while 1:    #frame cektıgımız ıcın whıle dongusune soktuk resım olsaydı boyle olmazdı
_,frame = vid.read()
im = cv2.cvtColor(vid, cv2.COLOR_BGR2GRAY) # grayscale kopya
vid = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) #bgr dan hsv ye donusturduk
lower_white = np.array([0, 0, 212])
upper_white = np.array([131, 255, 255])
mask = cv2.inRange(vid,lower_white,upper_white)
cv2.imshow("Frame",frame)
cv2.imshow("MASK",mask)

请帮助:/

  • 第一个问题是需要将frame转换为灰度对象。

    • im = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
      
  • 第二个问题是,当您从BGR2HSV转换时,请使用不同的变量,而不是vid,因为vid正在读取下一个视频帧。

    • im_hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
      
  • 此外,请使用im_hsv更改vid变量的其余部分

    • mask = cv2.inRange(im_hsv,lower_white,upper_white)
      

代码:


import cv2
import numpy as np
vid = cv2.VideoCapture("C:\Users\eycan\Desktop\serit\yol.mp4")
while 1:    #frame cektıgımız ıcın whıle dongusune soktuk resım olsaydı boyle olmazdı
_,frame = vid.read()
im = cv2.cvtColor(frane, cv2.COLOR_BGR2GRAY) # grayscale kopya
im_hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) #bgr dan hsv ye donusturduk
lower_white = np.array([0, 0, 212])
upper_white = np.array([131, 255, 255])
mask = cv2.inRange(im_hsv,lower_white,upper_white)
cv2.imshow("Frame",frame)
cv2.imshow("MASK",mask)

相关内容

最新更新