Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Registering two 3D data sets

Hello,

I am working on a project and I need to register two 3D data sets in order to analyze the differences between them. More specifically, I am working on two sets of Computed Tomography images and want to register them in order to find a cancerous region if it exists. I have the data as separate image files that represent different slices (that is heights in the patient). My initial thought was to create a vector of Mat objects and simply import the different slices into the separate places in the vector. But I kept getting out of range error at run-time. So I abandoned that approach.

I was then reading through the documentation and it explained how to create an n-dimensional Mat object for just this purpose. But I can not figure out how to import the image files into that 3D Mat object once it is created.

So far I have the object created like:

int size[] = {128,128,128}; cv::Mat images(3,sizes,CV_8U,Scalar::all(0));

This in theory will create a Mat object that has 3 dimensions of size 128x128x128 that are all 8 bit unsigned integers, and then sets them all to 0. However I cannot find anywhere in the documentation where it explains how to set any data in this object.

Oh BTW, I am planning on using the "estimateAffine3D" function to do most of the heavy lifting in the registration part, but any suggestions on that would be helpful too.

As you might have noticed, or perhaps I have successfully hidden my ignorance, I am pretty green when it comes to coding. I've taken basic C++ classes, but most of the higher level stuff goes way over my head. So if you could be so kind as to dumb down your answers so that a child could understand them, that would be very helpful.

THANKS!!!