Private browser tool · No signup · No watermark
Stitch Two Photos Together
Two overlapping photographs, one wider view. The tool finds shared detail, works out how the frames relate, and blends the seam — and it will tell you when the pair cannot be joined.
- Local processing
- JPG, PNG & WebP
- Works on phone
This is not the same as placing two photos side by side
Joining photos puts two complete rectangles next to each other and keeps both in full. Stitching does something harder: it assumes the two frames show the same scene from a slightly different angle, works out the geometric relationship between them, bends one to match the other, and merges the shared region so the join disappears.
That is why stitching can fail and joining cannot. If you want both photos kept whole and unmodified, you want Join Photos Together instead. If you want a wider view of one scene, continue here.
The tool runs a standard computer-vision pipeline entirely in your browser, using OpenCV compiled to WebAssembly. It detects ORB features — small, distinctive patches that can be recognised from a different angle — in both frames. It matches those patches between the two images, then uses RANSAC to discard matches that do not agree with a single consistent transformation.
From the surviving matches it estimates a homography: the projective transform that maps one frame onto the other's plane. It warps the second image by that transform and feathers the overlap, ramping opacity across the shared band so no hard edge remains.
Every stage runs on your device. The OpenCV runtime is fetched from this site the first time you stitch, which is why the first run takes a moment longer than the second.
Capturing a pair that will actually stitch
Most failed stitches are decided at capture time, not at processing time. Three rules cover almost all of it.
Overlap by about a third. The two frames need enough shared content for the matcher to find common ground. Below roughly 20 percent there is often too little to work with; above about 60 percent you are spending a frame to gain very little width.
Rotate, do not walk. Pivot the camera around roughly its own position. If you step sideways between shots, near objects shift against far ones — parallax — and no single homography can satisfy both distances at once. This is the most common cause of a stitch that looks almost right but bends in the middle.
Lock exposure and focus. If the camera re-meters between frames, the sky changes brightness across the seam. Feathering hides a soft gradient, not a step change in exposure.
Reading a failure
"No reliable overlap was found." The matcher could not find a consistent set of shared points. Usual causes: the frames overlap too little, the overlap falls on a featureless region — clear sky, a blank wall, still water — or it falls on a repeating pattern like tiling or railings, where many locations look equally plausible and nothing wins.
The result is warped or stretched at one end. The homography was estimated from matches clustered in one corner rather than spread across the overlap, or the viewpoint moved too far between frames. A new pair shot from a single pivot point fixes this; re-running the same pair will not.
A person or car appears twice, or is torn in half. The subject moved between the two exposures. Feathering blends pixels; it cannot decide which moment was the real one. Shoot the pair quickly, or keep moving subjects away from the overlap band.
Straight lines bend near the seam. Check rooflines, poles and horizons specifically — a panorama can look convincing overall and still carry a local bend. This is parallax again, and it is a capture problem.
When stitching is the wrong tool
Screenshots of a long page. These do not need feature matching — they need cropping and stacking in order. Use Combine Images Vertically.
Three or more frames, or a full 360° sweep. This page deliberately handles exactly two. Multi-row and full-circle panoramas need cylindrical or spherical projection and global bundle adjustment, which is beyond a two-frame browser tool.
Two unrelated photos. There is no shared scene to align. You want side by side or a joined row.
Two layers on one canvas. That is blending, not stitching — see Image Mix.