06-05-2019 01:28 PM
My aim is to stitch images which is having fixed horizontal and vertical overlap with neighbour images. I have images stored in folder. For example, consider first image it is having some overlap (say 10%) with image on right and horizontal overlap with image on bottom of first image (say 10%). My final output should be M by N image with overlapping areas among images correctly joined.(M rows and N columns)
I have a VI where image detection,homography, matching blending is applied to 2 images acquired from camera. Right now , I am concentrating on part that images are already stored in folder.
But I need M by N images stitched as final panaroma with proper blending techniques applied.
I have attached VI.
Kindly help.
06-05-2019 01:40 PM
My aim is develop a VI to stitch array of images which are having some fixed amount of overlap in both horizontal and vertical directions(say 10%). User has to specify number of rows, columns, overlap in X direction, Y direction.
For example, my first image (image in row1 column1 )in folder has some vertical overlap with second image (image in row1 column2)and horizontal overlap with bottom image(image in row 2 column 1 when arranged in form of array).
I have a VI that can perform image stitching on images with image detection, matching, homography, blending of 2 images acquired using camera.
But I tried to produce a final stitched image with proper overlapping area among images stitched. If user inputs M (rows) and N (columns), output should be panaroma. But I am not getting proper output for images selected from folder for M by N images.
I have attached VI.
Please help
06-05-2019 05:29 PM - edited 06-05-2019 05:34 PM
You've basically posted the same question twice, and now you have posted what is essentially the same thing again! Haven't we already "solved" your problem for you? I recommend that you start doing your own work, or hire a competent LabVIEW Developer who can use the VIs we've already provided to you to solve your task.
Bob Schor
06-05-2019 10:28 PM
I got solution for previous work ,i.e, join images without overlap. Now I am looking the case where images are having overlap.
Where I can get best online training in LabVIEW? Is NI offering the same?
06-06-2019 05:35 AM
Bob, I think SSG0484 is asking this time for something like
http://matthewalunbrown.com/autostitch/autostitch.html
"AutoStitch works from unordered collections of images, automatically finding matches between images using the SIFT algorithm. It then robustly aligns all images and uses advanced blending algorithms to form seamless panoramas"
Obviously, that's far more more complicated than the task you asked for
in Re: Stacking images in array.
The files you attached in stitch images.zip 2037 KB
look like an IMAQ demo.
Moreover, here's a Knowledge Base article from NI:
Information about Image Stitching
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000004BDJSA2&l=de-DE
I agree with Bob's statment:
"I recommend that you start doing your own work, or hire a competent LabVIEW Developer"
06-06-2019 08:22 AM
@alexderjuengere: Thank you for the Knowledge Base Article. I read the one on "Stitch Images Together with the VDM" and recognized where SSG0484 got his original algorithm (he copied the Example, but didn't understand how to use it).
I was thinking how I'd stitch a collection of Images whose order was unknown but which I "knew" formed a complete picture. I came up with the following (possibly inefficient) algorithm:
Bob Schor
06-07-2019 04:32 AM
Bob, your approach sounds totally reasonable.
The most interesting part is the "fitting the most similar" part:
@Bob_Schor wrote: [...]
- For all the remaining Images, try to put it to the right, below, to the left, and above the Test Image. See if it "fits" by testing if adjoining pixel row/column values (row for above/below, column for left/right) have "similar" Gray values.
I wonder if this can be achieved with a 2d cross correlation
06-07-2019 07:54 AM
Interesting topic.
If the camera is always a fixed distance from the object, and fixed orientation (like on a microscope, where the target is only making movements in X,Y) then stitching images is a much smaller problem. as it only takes XY translation of the images, looking for regions of overlap.
If the camera or object has moved, (or zoomed), or can have any degree of rotational movement, then something like the mentioned SIFT algorithm is required. This is because each image is now a 2 flattened version of a 3d model whos model view matrix has just changed. Pixel values are affected by scale and skew from rotation and translation.
Rebuilding 3d topographic models from only pictures can be quite good fun. Its called photogrammetry if you haven't encountered it before.
https://en.wikipedia.org/wiki/Photogrammetry
0xDEAD