简体   繁体   English

我无法在 Opencv 上更改分辨率实时视频

[英]I cant change resolution live video on Opencv

Hi I want to Change live video frame in shape before while loop my webcam default resolution 640x480.嗨,我想在循环我的网络摄像头默认分辨率 640x480 之前更改实时视频帧的形状。 When i run it say "(480, 640, 3)" it still default resolution当我运行它时说“(480, 640, 3)”它仍然是默认分辨率

......
ret, frame1 = cap.read()
cropped1 = frame1[0:240, 0:320]
ret, cropped1 = cap.read()
ret, frame2 = cap.read()
print(cropped1.shape)
while cap.isOpened():

    diff = cv2.absdiff(cropped1, frame2)
    gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
    blur = cv2.GaussianBlur(gray, (5,5), 0)
    _, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
    dilated = cv2.dilate(thresh, None, iterations=3)
    contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    ......

Finally i did it!!!我终于做到了!!!

...
ret, frame1 = cap.read()
ret, frame2 = cap.read()
print(frame1.shape)
while cap.isOpened():

    diff = cv2.absdiff(frame1, frame2) # 640x480 frame
    diff2 = diff[0:240, 0:320]         # Top Left
    diff3 = diff[0:240, 320:640]       # Top Right
    diff4 = diff[240:640, 0:320]       # Down Left
    diff5 = diff[240:480, 320:640]     # Down Right
    gray2 = cv2.cvtColor(diff2, cv2.COLOR_BGR2GRAY)
    blur2 = cv2.GaussianBlur(gray2, (5,5), 0)
    _, thresh2 = cv2.threshold(blur2, 20, 255, cv2.THRESH_BINARY)
    dilated2 = cv2.dilate(thresh2, None, iterations=3)
    contours2, _ = cv2.findContours(dilated2, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

    gray3 = cv2.cvtColor(diff3, cv2.COLOR_BGR2GRAY)
    blur3 = cv2.GaussianBlur(gray3, (5,5), 0)
    _, thresh3 = cv2.threshold(blur3, 20, 255, cv2.THRESH_BINARY)
    dilated3 = cv2.dilate(thresh3, None, iterations=3)
    contours3, _ = cv2.findContours(dilated3, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    .
    .
    .
    gray5 ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM