Ask Your Question

How to resize frame's from video with aspect ratio

asked 2017-04-10 19:53:48 -0500

Gagazet gravatar image

At the head of question main idea. I am using Python 2.7, openCV for it. Finally, i have this code:

import cv2
vidcap = cv2.VideoCapture('myvid2.mp4')
success,image =
count = 0;
print "I am in success"
while success:
  success,image =
  resize = cv2.resize(image, (640, 480), interpolation = cv2.INTER_LINEAR) 
  cv2.imwrite("%03d.jpg" % count, resize)     
  if cv2.waitKey(10) == 27:                     
  count += 1

We have video and cutting it on each frames, as a .jpg images. In the same time we making resize from any size to the 640x480. And all images has correct order of reading. There is no any problems with code and it work's well, but! doesn't save prev. image ratio. And this is big problem, because i am need in it.

For example how it look's like, resize from 1920x1080: image description

There is problem in ratio, as you can see. 1920x1080 16:9, but 640:480 4:3

And how it should be in my dream: image description

At first, thank you for your reading of it. I will be very glad if you can help to me solve this issue of my code~ Have a good day, my friend.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2017-04-11 00:09:25 -0500

berak gravatar image

easy !

ifyou look at resize():

>>> help(cv2.resize)
>>> resize(...)
    resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst

you see, there's an fx and fy parameter. use those instead of the fixed dsize argument, to preserve your original ratio:

 # half size:
 resized = cv2.resize(image, fx=0.5, fy=0.5, interpolation = cv2.INTER_LINEAR)
edit flag offensive delete link more



Thank you. I spend around 4 hours, but found another way how to do it with correct borders! Anyway thank you. And i am not sure, that you can resize by your way from 1080 to the 480 properly~

Gagazet gravatar imageGagazet ( 2017-04-11 00:12:55 -0500 )edit

Question Tools

1 follower


Asked: 2017-04-10 19:53:48 -0500

Seen: 23,038 times

Last updated: Apr 11 '17