OPENCV - !ssize.empty()
OPENCV - !ssize.empty()
这是我的代码:
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
imgTarget = cv.imread('photos\TargetImage.jpg') #bu resmimiz
Vid = cv.VideoCapture('photos\video.mp4')
detection = False
frameCounter = 0
success, Video = Vid.read()
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
Video = cv.resize(Video, (w, h))
伙计们,这是我代码的一部分。我正在尝试调整图像大小,但出现以下错误:
error: OpenCV(4.0.1)
C:\ci\opencv-suite_1573470242804\work\modules\imgproc\src\resize.cpp:3784:
error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
你有什么解决这个问题的建议吗?
首先,视频捕获主要是在一个循环中完成的,在这个循环中,您检查抓取帧是否“成功”,然后继续显示帧或进行任何类型的处理,一个非常简单的示例是:
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow('camera', frame)
k = cv2.waitKey(1)
else:
cap.release()
cv2.destroyAllWindows()
如果未接收到帧,捕获将停止。
其次,我看到您打开了两个单独的捕获:
cap = cv.VideoCapture(0)
Vid = cv.VideoCapture('photos\video.mp4')
一个用于设备摄像头,另一个用于您提供的视频路径。如果您是两个并行捕获的句柄,还建议使用上述方法检查它们是否正确捕获帧。
最后我猜是视频路径提供不正确,所以我的建议是应用以上内容,然后提供您要打开的视频的完整路径。
图像也一样。如本文所述
您应该首先检查图像是否已加载。
如果我没记错的话,你想调整视频帧的大小与 imgTarget
的大小相同
分两步解决
-
- 检查视频是否打开
-
- 如果视频打开则
resize
首先你应该检查你的视频是否可以打开
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
现在需要检查当前帧是否returns
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
现在调整大小
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
如果要显示可以使用imshow
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
cv2.imshow("Video")
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
确保释放代码末尾的 cap
和 Vid
变量。
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
cv2.imshow("Video")
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
Vid.release()
cap.release()
这是我的代码:
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
imgTarget = cv.imread('photos\TargetImage.jpg') #bu resmimiz
Vid = cv.VideoCapture('photos\video.mp4')
detection = False
frameCounter = 0
success, Video = Vid.read()
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
Video = cv.resize(Video, (w, h))
伙计们,这是我代码的一部分。我正在尝试调整图像大小,但出现以下错误:
error: OpenCV(4.0.1) C:\ci\opencv-suite_1573470242804\work\modules\imgproc\src\resize.cpp:3784: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
你有什么解决这个问题的建议吗?
首先,视频捕获主要是在一个循环中完成的,在这个循环中,您检查抓取帧是否“成功”,然后继续显示帧或进行任何类型的处理,一个非常简单的示例是:
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if ret:
cv2.imshow('camera', frame)
k = cv2.waitKey(1)
else:
cap.release()
cv2.destroyAllWindows()
如果未接收到帧,捕获将停止。
其次,我看到您打开了两个单独的捕获:
cap = cv.VideoCapture(0)
Vid = cv.VideoCapture('photos\video.mp4')
一个用于设备摄像头,另一个用于您提供的视频路径。如果您是两个并行捕获的句柄,还建议使用上述方法检查它们是否正确捕获帧。
最后我猜是视频路径提供不正确,所以我的建议是应用以上内容,然后提供您要打开的视频的完整路径。
图像也一样。如本文所述
如果我没记错的话,你想调整视频帧的大小与 imgTarget
分两步解决
-
- 检查视频是否打开
-
- 如果视频打开则
resize
- 如果视频打开则
首先你应该检查你的视频是否可以打开
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
现在需要检查当前帧是否returns
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
现在调整大小
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
如果要显示可以使用imshow
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
cv2.imshow("Video")
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
确保释放代码末尾的 cap
和 Vid
变量。
h,w,c = imgTarget.shape #burada resmimizin yüksekliğini, kalınlığını genişliğini falan alıyoruz.
while Vid.isOpened():
success, Video = Vid.read()
if success:
Video = cv.resize(Video, (w, h))
cv2.imshow("Video")
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
Vid.release()
cap.release()