7
$\begingroup$

I am proficient in computers, but a relative noob to blender. My video is H.264 with 1080p@60. I have loaded a video in and did the whole tracking system and collected the movement data. I slowly panned left and right and up and down and have about 700 frames.

I followed a tutorial on stabilizing videos, but the exercise got me thinking. If blender knows exactly how far frame 1 is off from frame 2,3,4, and etc it should be able to make an excellent panorama from it.

You start with the 1st frame as your base. Lets say the tracking data says your picture moved up 10 pixels and right 10 pixels. So you take the top 10 (rows) pixels and right 10(columns) pixels and you add them to the top and right of frame 1 and do this for the rest of the 700 frames. If it offers no new pixels ignore that frame. Then you have a panorama. It would be nice to be able to overlay certain frames if a few are blurry or otherwise defective.

Is this possible, and of course how?

I was in the Node Editor and linked the video and tracking data, but then what?

$\endgroup$
  • 2
    $\begingroup$ I'm sure some clever person could figure out how to this with scripting wizardry. No such function exists out of the box as far as I know... In the meantime you could save some frames as images making sure that the chosen images have some overlapping features and stitch them together in hugin (hugin.sourceforge.net) photoshop or any other stitching software. $\endgroup$ – cegaton Aug 28 '15 at 16:04
  • $\begingroup$ 700^2 =490,000 loops for hugin.sourceforge.net it make blender look like a NASCAR. It is horribly inefficient. If it is not done by morning it will be cancelled, and I have a fast system. $\endgroup$ – cybernard Aug 28 '15 at 20:17
  • 1
    $\begingroup$ That's why I wrote "save some frames as images making sure that the chosen images have some overlapping features" Don't feed the program all of them. Processing 700 frames is just not efficient at all! $\endgroup$ – cegaton Aug 28 '15 at 20:44
  • $\begingroup$ Any stitching program will chug with so much data... $\endgroup$ – cegaton Aug 28 '15 at 20:46
  • 1
    $\begingroup$ What hugin (and other sofware) does very well is give you options to undistort the resulting panorama in different ways. $\endgroup$ – cegaton Aug 29 '15 at 2:29
2
$\begingroup$

The only way to achieve this in Blender I think is with Dynamic Paint. But the vertex paint can be poor quality. You'll have to bake an image sequence. Of course you only need the last frame.

  1. Track the image with 1 marker. Use "offset" if marker leaves frame.

Track pan shot

  1. Solve the track for Tripod.
  2. In Geometry tab of the MCE link an empty to the track.
  3. Go to the 3D view and create a plane for the canvas, subdivide it lots. The more you subdivide it the sharper the image later.
  4. Give it a Copy location Constraint (new empty)and a copy rotation constraint (camera rotation).
  5. Press 0 to look through the camera and scale the canvas so that it covers the camera view from first frame to last.
  6. Then add another plane using the Images as Planes addon. This will be the brush.
  7. Give it a constraint to copy the camera location but in edit mode, scale it to fill the field of view and move it towards the canvas object.
  8. Add a Solidify modifier so that the image plane goes through the canvas plane.

Solidify paint object, fill camera view

  1. Go to the physics tab and activate Dynamic paint > brush. Set material to the movie image material.
  2. Now select the canvas and in the physics tab activate the Dynamic paint > canvas. Turn down Drying time to 1 frame.

Painted version of the source pan shot

The canvas should move below the camera in sync with the original camera move. The source movie should be projected onto the canvas from the camera point of view.

To reduce the processing you would use fewer frames from the source pan. Blender won't drop frames in Texture mode so you would have to preprocess them in the VSE, by applying a speed effect which will drop frames. In this way a pan that could use 100 frames could be created with just 10 frames. Tracking would be a bit more challenging.

$\endgroup$
  • $\begingroup$ Just an additional thought but I think that the distortion could be resolved (sort of) by projecting onto the inside of a sphere instead of the plane. In which case you would have to animate the camera with a tripod solve. Then parent the paint object to the camera view. $\endgroup$ – 3pointedit Aug 9 '16 at 12:30
0
$\begingroup$

If you want to create a panorama out of a video, split the video in single pictures and stitch them together with Hugin.

$\endgroup$
  • $\begingroup$ I have tried Hugin, but after loading in around 700 images, and waiting a considerable amount of time the results were not good. I may try it again on another sequence to see if that helps. $\endgroup$ – cybernard May 16 '16 at 22:57
  • $\begingroup$ You should try to select as few frames as possible that still contain the whole panorama. The pictures should overlap on the edges for about a 4th of the image. $\endgroup$ – piegames May 19 '16 at 7:56
0
$\begingroup$

Problems arise from the masks you need and the amount of overlap between the pictures. As long as the panoramic movie was recorded on a electric turntable, than there's a chance the masking can be scripted. Otherwise: First grab about 35 overlapping keyframes out of your 700 sequence. Let than hugin or MS Image Composition Editor (ICE) do the stitching work for you. http://research.microsoft.com/en-us/um/redmond/projects/ice/ Both are free and each has its advantages. Give them a try :)

Yet another idea when using Hugin (or similar apps): Try to stitch blocks of images i.e. 10 to 15 as 'sub-panoramas' but remember to always integrate some overlapping pictures to each side. Stitching the subs together will lead you to your final all-in-panorama. Lots of work, though.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.