この方法だとアスペクト比の変更まではできず、
大きい方の値にもう片方が左右されてしまうようですね。
解決策なのですが、
横長に引き伸ばせばよいのなら、
cv2.resize()で縦横のサイズを指定すればそのとおりになります。
最小構成のコードを書いておくので参考にしていただければと思います。
python
1import cv2
2
3c=cv2.VideoCapture(0)
4w, h= c.get(cv2.CAP_PROP_FRAME_WIDTH), c.get(cv2.CAP_PROP_FRAME_HEIGHT)#w:640.0px+h:480.0px
5print('w:'+str(w)+'px+h:'+str(h)+'px')
6c.set(cv2.CAP_PROP_FRAME_WIDTH, w/2)
7c.set(cv2.CAP_PROP_FRAME_HEIGHT, 150)
8w, h= c.get(cv2.CAP_PROP_FRAME_WIDTH), c.get(cv2.CAP_PROP_FRAME_HEIGHT)#w:320.0px+h:240.0px
9print('w:'+str(w)+'px+h:'+str(h)+'px')
10while True:
11 ret, frame =c.read()
12 if cv2.waitKey(1)&0xFF==ord('q'):
13 c.release()
14 cv2.destroyAllWindows()
15 break
16 if ret:
17 cv2.imshow('',
18 cv2.resize(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB), (int(900), int(200)))
19 )
20
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/17 06:14
2019/05/17 22:09