Solved

How to merge many images to make a montage image without boundary edge?

Posted on 2004-03-29
8
726 Views
Last Modified: 2012-06-27
Hi, I have many medical images called proofsheet. A proofsheet includes 10 TIF image files.
I am looking for a way to merge all images together to make a sheet of large images as a map.
Problem is how to delete or make smooth for the image boundary and how to find the merge position.
Let's say there are many blood vessels on the images which can be used as a reference position.
How to find the all the fine positon before the merge and merge together without boundary condition.
Even thought 3rd party library, that will be wonderful to know.

Thanks,
Young
0
Comment
Question by:young_nacs
  • 5
  • 3
8 Comments
 
LVL 1

Expert Comment

by:fxnut
ID: 10712478
You should do a search on Google for "Image stitching". There are heaps of packages out there which will automatically stitch your images together.

If you want to write it yourself then it's not the easiest thing to do, but it makes it a lot easier if there isn't any rotation between pictures. All you have to do is a convolution between a border of one image with the image of another. Wherever you get the highest value from performing the convolution is where your image border is best fitted to the other image.

The best way to imagine what a convolution is, is by thinking of taking the overlapping areas of the images and multiplying each pixel from one image with the underlying pixel in the other image. The value of the convolution is the sum of these multiplied pixel values in the overlapping area. As you change the overlapping areas, the value of the convolution will change. Where it is a maximum, you have the best match between the two image areas. Note that as the overlapping area changes, so will the number of pixels that you have to perform the convolution on, and so to have a fair comparison between the different convolution values, you should divide each convolution value by the number of pixels that it was taken over. By doing this, you are effectively providing a normalization of the convolution values, and thus performing a fair comparison.

Alternatively (and this is what I'd do)... just use Photoshop :-)
0
 
LVL 1

Expert Comment

by:fxnut
ID: 10821205
Are you gonna close this question?
0
 

Author Comment

by:young_nacs
ID: 10921164
Still looking for it.
Such as photoshop's Blending image, looking for how to merge several images by layer overlapping so image looks like a one big image. It looks like 360 degree movie. I take a picture within certain angle only and add other picture which is taken by different angle and merge to look like one picture ( twice bigger picture).

Young
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 1

Expert Comment

by:fxnut
ID: 10922135
So what exactly are you after then? Are you after a step by step procedure on how to piece together and blend two or more images in Photoshop? Can you be explicit on what sort of answer you are looking for?

:-)

Andy
0
 

Author Comment

by:young_nacs
ID: 10971185
I am looking for SDK so I can customize this feature.
Such as photoshop SDK, If user supplises input images, this function will automatically generate a montage image based on finding auto align position and merge images as a one piece.

Young
0
 
LVL 1

Expert Comment

by:fxnut
ID: 10978269
Well, if you're after the Photoshop SDK, you can get it from here, although you have to undergo a registration process and it is subject to approval.

http://partners.adobe.com/asn/photoshop/index.jsp

But if you want a generic extendable API for processing images, then I think that this is exactly what you are looking for.

http://www.leadtools.com/

It should let you program the process I described above in my first post.

This part...

http://www.leadtools.com/SDK/Medical/Medical-Imaging.htm

Accepts formats generated by most medical equipment. I quote..

"DICOM 3 (2003 file specification), the industry standard medical imaging format/protocol is fully and completely supported, allowing programmers access to medical images retrieved from digital imaging modalities such as CT and MR scanners."

It also has an image processing module as well.

Andy
0
 

Author Comment

by:young_nacs
ID: 10995451
I am using LeadTool SDK but no function for mergeing two or many images to create a montage image.
My point is that:
a. read many images
b. search synchronize position of each image to overlay
c. overlay images with or w/o layer
d. and make images layers to flat so image looks like a big image.

Young
0
 
LVL 1

Accepted Solution

by:
fxnut earned 500 total points
ID: 10996613
Okay, well I'm not sure anyone can help then. I've told you how you can detect the matching portions of the image programatically in my first post, and I've also told you the SDK that you can do it with (even though you already knew). It does unfortunately need some work on your part, but in my opinion your original question has been answered.

If you need specifics or code on each of the (in my mind, mostly trivial) separate processes in achieving this end, then you should post them to new questions. As a friendly piece of advice, I think you should be more specific when you ask your questions.

I hope you find what you're after. :-)

Kind regards

Andy
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
C# Error - Add Failed 12 94
Definitions and default visual studio colors 5 70
Reccomended programming language for client-server applications 12 132
Bot application - advice 3 39
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
A short article about problems I had with the new location API and permissions in Marshmallow

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question