Comments (9)
Hey,
I also thought about informing the user if not all of the images are stitched.
I think it should at least report which pics are not
stiched and suggest to experiment with some settings
this is a good idea. I will implement this if I find some time, or you can do it and create a PR if you wish
from stitching.
To summarize:
Mostly users of the stitching package will have a set of images which ALL should be included in the final panorama. By setting the confidence threshold to 1, by default images are sorted out if they don't have good enough matches. In this case the user should be informed.
from stitching.
BTW do you need help for your images or have you figured out how to generate a complete panorama?
from stitching.
from stitching.
Yeah a Sample Set would be helpful
from stitching.
from stitching.
try
stitch Screen* --confidence_threshold 0.2 --matches_graph_dot_file matches.txt --detector sift
and add
--final_megapix 0.01
if you don't want to wait for so long if you're just trying out some settings.
--matches_graph_dot_file matches.txt
this will create a file with matching informations, especially the confidences. We can see that with the default settings the confidences are too low, thats why so many images are filtered out. We can lower the --confidence_threshold
to include more images. Changing the Feature Detector to SIFT improves the matches significantly. Here is the resulting matching graph:
graph matches_graph{
"Screen20221018_132345.jpg" -- "Screen20221018_132408.jpg"[label="Nm=8, Ni=8, C=0.769231"];
"Screen20221018_132408.jpg" -- "Screen20221018_132445.jpg"[label="Nm=14, Ni=14, C=1.14754"];
"Screen20221018_132500.jpg" -- "Screen20221018_132515.jpg"[label="Nm=6, Ni=6, C=0.612245"];
"Screen20221018_132544.jpg" -- "Screen20221018_132610.jpg"[label="Nm=38, Ni=38, C=1.95876"];
"Screen20221018_132610.jpg" -- "Screen20221018_132628.jpg"[label="Nm=7, Ni=7, C=0.693069"];
"Screen20221018_132628.jpg" -- "Screen20221018_132646.jpg"[label="Nm=29, Ni=29, C=1.73653"];
"Screen20221018_132646.jpg" -- "Screen20221018_132702.jpg"[label="Nm=19, Ni=19, C=1.38686"];
"Screen20221018_132725.jpg" -- "Screen20221018_132745.jpg"[label="Nm=33, Ni=29, C=1.62011"];
"Screen20221018_132745.jpg" -- "Screen20221018_132806.jpg"[label="Nm=327, Ni=315, C=2.9689"];
"Screen20221018_132806.jpg" -- "Screen20221018_132825.jpg"[label="Nm=24, Ni=21, C=1.38158"];
"Screen20221018_132825.jpg" -- "Screen20221018_132839.jpg"[label="Nm=28, Ni=28, C=1.70732"];
"Screen20221018_132839.jpg" -- "Screen20221018_132911.jpg"[label="Nm=40, Ni=40, C=2"];
"Screen20221018_132925.jpg" -- "Screen20221018_132958.jpg"[label="Nm=24, Ni=24, C=1.57895"];
"Screen20221018_132958.jpg" -- "Screen20221018_133013.jpg"[label="Nm=41, Ni=39, C=1.92118"];
"Screen20221018_133013.jpg" -- "Screen20221018_133031.jpg"[label="Nm=22, Ni=21, C=1.43836"];
"Screen20221018_133031.jpg" -- "Screen20221018_133043.jpg"[label="Nm=39, Ni=39, C=1.9797"];
"Screen20221018_133043.jpg" -- "Screen20221018_133057.jpg"[label="Nm=8, Ni=8, C=0.769231"];
"Screen20221018_133218.jpg" -- "Screen20221018_133240.jpg"[label="Nm=41, Ni=41, C=2.0197"];
"Screen20221018_133240.jpg" -- "Screen20221018_133326.jpg"[label="Nm=28, Ni=24, C=1.46341"];
"Screen20221018_133326.jpg" -- "Screen20221018_133343.jpg"[label="Nm=40, Ni=34, C=1.7"];
"Screen20221018_133343.jpg" -- "Screen20221018_133352.jpg"[label="Nm=10, Ni=10, C=0.909091"];
"Screen20221018_133352.jpg" -- "Screen20221018_133417.jpg"[label="Nm=25, Ni=25, C=1.6129"];
"Screen20221018_133417.jpg" -- "Screen20221018_133438.jpg"[label="Nm=11, Ni=11, C=0.973451"];
"Screen20221018_133438.jpg" -- "Screen20221018_133453.jpg"[label="Nm=9, Ni=9, C=0.841121"];
"Screen20221018_133506.jpg" -- "Screen20221018_133519.jpg"[label="Nm=12, Ni=12, C=1.03448"];
"Screen20221018_133519.jpg" -- "Screen20221018_133536.jpg"[label="Nm=77, Ni=77, C=2.47588"];
"Screen20221018_133536.jpg" -- "Screen20221018_133558.jpg"[label="Nm=8, Ni=8, C=0.769231"];
"Screen20221018_133558.jpg" -- "Screen20221018_133613.jpg"[label="Nm=28, Ni=28, C=1.70732"];
"Screen20221018_133613.jpg" -- "Screen20221018_133623.jpg"[label="Nm=15, Ni=15, C=1.2"];
"Screen20221018_133640.jpg" -- "Screen20221018_133650.jpg"[label="Nm=61, Ni=49, C=1.86312"];
"Screen20221018_133132.jpg";
"Screen20221018_133631.jpg";
}
only two images are not processed, I havn't analized why. For a graphic representation visit graphviz
Here is a low resolution result of the stitching
from stitching.
from stitching.
You could try the other two detectors brisk or akaze, but other than that I dont see that much potential for further optimization but more overlap. Cheers Lukas
from stitching.
Related Issues (20)
- How to stitch a floor image? HOT 1
- Manually enforce image matches and stitching sequence HOT 4
- Change homography plane to avoid miniaturization effect
- Stitch works not correctly HOT 1
- Can I improve speed calculation ?
- How can I fix "On entry to DLASCLS parameter number 4 had an illegal value" HOT 7
- Retrieving Transformation Matrix Used to Stitch Mosaic? HOT 1
- Image Stitching angle issue HOT 1
- Question about stitching image follows longitude
- Regarding calculation of Homography matrix HOT 1
- Camera parameters adjusting failed. HOT 4
- store used parameters when using verbose mode HOT 1
- Request a complete configuration file (requirements.txt) that works HOT 4
- "Segmentation fault" error HOT 7
- Part of the stitching is missing HOT 1
- verbose mode shows matching images without matches when using `range_width`
- How to get an equirectangular image?
- Saving Plane warper points for video stitching HOT 1
- Images don't seem to stitch, despite pretty clear matches HOT 1
- The images are stitched longitudinally error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stitching.