在open cv中看视频的时候遇到了问题。当我运行输出时,它没有显示整个视频。它就像一个放大的视频。输出视频与原始视频不同。如何显示整个视频?我是一个python和open cv的新手。下面是输出的屏幕截图。

下面是视频的真实图像

vidCap = cv2.VideoCapture('video.mp4')
while (True):
success, img = vidCap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
th, bw = cv2.threshold(gray, 170, 255, cv2.THRESH_BINARY)
bw = imclearborder(bw)
RemoveTop(bw, round(bw.shape[0] * 0.6))
RemoveTriangle(bw)
bw = bwareaopen(bw, 700)
blueMask = img.copy()
blueMask[:, :] = (255, 0, 0)
cv2.copyTo(blueMask, bw, img)
cv2.imshow('Output', img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vidCap.release()
cv2.destroyAllWindows()我希望输出能够显示与原始视频相同的整个视频
发布于 2019-09-14 03:01:26
我可以猜到你的视频分辨率比屏幕分辨率大。
第一张图片来自opencv窗口,我相信第二张图片不是由opencv生成的,而是由一个视频播放器生成的,它会缩小视频以适应您的屏幕。
您应该使用以下未经测试的代码调整您的img的大小:
imgToShow = cv.resize(img, img.size()/2)
cv2.imshow(imgToShow)我在C++中使用opencv,而不是Python,所以请检查语法。
发布于 2019-09-14 15:38:24
scale_percent = 60 # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
resized = cv2.resize(img, dim, interpolation=cv2.INTER_AREA)
cv2.imshow('Output', resized)https://stackoverflow.com/questions/57927917
复制相似问题