Posted by: cpretz | July 8, 2009

Week 5: Wednesday

The past few days we have been researching and preparing for the next step in our project.  We are finally going to start working on building working microscopes.  We decided to split up into two teams; one will be creating a microscope using a laser and the other an LED light source.  Dan and Allen will be working on the LED and Kevin and I will be working on the laser.  We’ve had a couple group meetings with everyone and discussed the different parts of the project:  light source (laser andLED), microfluidic channel, sensor, body of the microscope, and the image reconstruction.  Allan and I will focus on the image reconstruction and the sensor (closely related to the reconstruction) and it sounds like Kevin and Dan will work more with the channel.

We are allowed to buy more parts as we need them but we do have a budget to stick to.  Kevin and I started looking through catalogues but realized we need to start playing around with some ideas before we buy anything.  We all took apart the prototype that Prof. Buma had made and tried to get a better understanding of how the parts worked.  It looks like the light source will be the biggest challenge for us.

We also got to walk through Prof. Buma’s lab on Monday to see what materials he had lying around that we could potentially use.  It seems like we will definitely have enough to get started with.  His lab was pretty impressive and I hope we get to see what he is working on one of these days.  I think this afternoon Kevin and I will work more on the design of the microscope and start putting some things together.  The rest of this week I have just been researching filtered backprojections (a technique used to sharpen the images from tomosynthesis) and reading up on papers Prof. Buma had sent us.

Its been a nice break from MATLAB, but hopefully soon we will start actually building the microscope and testing it out because that is what I am most interested in.  Until next time :)

Posted by: cpretz | June 29, 2009

Week 4: Monday

After a weekend at the beach its back to work and back to MATLAB.  In the NISE program there are not only undergraduate researchers but also high school teachers that come in and work on the projects with us.  After being introduced to everyone last week we had a big meeting and discussed what is going on and who is doing what.  For the most part the high school teachers working on our project are doing background research (similar to what we did) on optofluidics, tomosynthesis and microscopy/optics for now.  They will be focusing more on the hardware aspect of the project while Allan and I continue with MATLAB.  I hope we get to do some of the prototypes of the microscopes too because that is more of what I am interested in but its understandable that we are responsible for the software part seeing as MATLAB is too hard to pick up in a few weeks for the teachers.

Allan and I have been working on essentially the same code as before however our focus has shifted slightly this time.  Instead of generating the images and seeing how well we can use tomosynthesis to put them back together we are trying to figure out how many frames or images of the actual object should we be taking to use in our program.  First, I changed the code a little bit to have an input of the number of frames I wanted.  The program would produce that number of frames, use tomosynthesis to combine the images and display the image of what the object really looks like.  Then, I also made the program display two graphs.  In digital imaging each image is a matrix of numbers that correspond to what color that pixel should be in the image.  In this case 1 corresponds to a white pixel and 0 corresponds to a black pixel and grays are in between.  I chose the middle, horizantal  line of pixels (the line that goes through the middle of the spheres) to graph so I can see how accurately the circles are being produced by the tomosynthesis actually are. 

Below is a sample image of the two graphs produced when we take 20 frames of the two spheres (same as the previous post); the top graphtakes the middle line of pixels from the tomosynthesis slice where the larger circle is located (z=4.0) and the bottom graph is of the z-value where the smaller circle is located (z=6.0).  As you can see in both graphs there are two dips in the line which signifies the darker pixels of each of the two circles (the darkest pixels are in the middle).

untitled

The next step of my process includes quantifying these graphs so I can see how the different number of frames effects the tomosynthesis accuracy.  I took the approach that the darker the middle pixel in each circle on the respective graph the more accurate the tomosynthesis recreation is.  So I collected data and found the intensity of the middle pixel for each circle and compared that to the number of frames that produced that image.  I then graphed the value of the darkest pixel with the number of frames.  As you can see as the number of frames increase the intensity of the pixel decrease (or gets darker) and therefore is more accurate.  However, it does seem to level out as the number of frames increase.

xfgh

From this work I have concluded that is is probably best to use someplace between 10 and 50 frames, more specifically around 20-25.  This way there is still accuracy but is not an excessive amount of frames are needed.  Allan is working on the same thing but with a completely different approach so hopefully his program will yield similar numbers and we can settle on a number to use in the future.

Posted by: cpretz | June 23, 2009

Week 3: Tuesday

The past several days seem to be filled with LOTS and LOTS of MATLAB.  We are still trying to develop programs that will simulate objects in 3D space and then use that data in another program to create a 3D images.  In the long run we are just focusing on the program that will take images of the object(s) from various angles and compile them into a 3D reconstruction.  However, first we are just using simple 2D squares and now 3D spheres with known locations and dimensions to see how accurately we can approximate the real shape of it.  Throughout the past few days Allan and I have been trying to create a program that will simulate 16 frames of a sphere from 16 different locations. 

We both approached the program with the same idea that if you take a lot of circles or disks and stack them on top of each other you will have a sphere.  However we ran into a lot of trouble with just drawing a circle.  Although it seemed easy and basic for a program like MATLAB, we could not produce a circle  in the correct format what we needed.  After much frustration Professor Buma helped us out and sent us a code that seemed to take him no time at all.  Although I think I could have gotten it eventually, my MATLAB skills are not good enough to complete it in a timely manner.

Once I could draw a circle, the rest of the code moved a little quicker.  I made a code that would produce 16 frames (like the 16 frames for the boxes) for a sphere made of multiple disks on top of each other.  I based this code off of the one for the boxes with a few differences due to the sphere being 3D and not 2D.  Once I had the code to produce the pictures of sphere I moved on the tomosynthesis part of the exercise.  I used the same code to combine the image as I did for the boxes.  I did not have to change much about my tomosynthesis code which was good because that means it is fairly general and can be used for a wider range of images.  After I got this code to work I started adding more spheres with different sizes and locations.

Here is an image with four (of the 16) frames of three spheres from different source locations.

Figure 1:

figure 2

The next two figures are part of the tomosynthesis of the images.  Similar to my previous code for the boxes my code samples different z-values and produces ‘slices’ of the 3D model of the objects.  Although the pictures aren’t great you can still see in figure 2 that in the bottom right frame the two circles to the left are clearer in this image because the center of these spheres is located at z=4.  The same thing goes for the third sphere in the bottom left frame of figure 3 because that is also where the center of the sphere is, thus the image is clearer.

Figure 2:

figure 222

Figure 3:

figure 3

Posted by: cpretz | June 19, 2009

Just a few pictures…

So I figured I would put up a few pictures from MATLAB programs I was trying to explain last time. The first two images are of the three squares and each frame is taken from a different position along the x-axis (which is why it looks like the squares are moving across the image).

Figure 1:

squares1

Figure 2:

squares2

The last figure is from the code that I wrote which combines the images above from all different angles to one image that shows the real shape and position of the objects.  Since I couldn’t produce a 3D image of the squares I just produced images at different z-values (so these are like slices of the 3D model).  As you can see the images of the squares are clearest when z=2.5 for the single square and z=3.5 for the other two. This is because the squares will be clearest when we look at the planes in which they lie.

combined

Posted by: cpretz | June 17, 2009

Week 2: Wednesday

As I had hoped this week gave us a little more work to do rather than just research and look up information.  Last Friday afternoon (after our burgers and frisbee game) Professor Buma showed us a prototype of a microscope.  He said it looked pretty ugly but I thought it was pretty cool.  It was battery charged with a laser which, through various lenses, he made into a point source of light.  Then there was a place to put a slide and also a handy tool to move the slide horizontally with great precision.  On the other side of the slide there was a webcam (or at least part of one) which acted as our ‘detection plane.’  We used a webcam for that part because it can take pictures which can be immediately transferred to the computer and it was readily available.  Although we didn’t get a chance to play around with the microscope then I’m sure we’ll have plantly of practice in the weeks to come. 

This week started off with a Dunkins Donut breakfast which gave us all a chance to catch up with each other and hear about other projects.  After that Professor Buma sent us a MATLAB code which produced 16 frames of the same 3 objects from different positions.  The objects were just two dimensional squares in the xyz coordinate system.  There were two squares in the same z=3.5 plane and and a third in the z=2.5 plane.  The different pictures or frames were images of projections of the pointsource traveling along the x-axis and projecting images of the 3 squares on a dection plane which laid at z=20.  We knew the position and size of each of the squares, the postion of the detection plane, and the 16 different position of the source along the x-axis.

Although it sounds kind of complicated, the program was pretty straight forward and produced 16 frames of these 3 squares.  The squares seemed to travel across the image in each of the consectutive squares because of the shifting source.  When Allan and I first got the code we just played around with it and tried to figure out how it worked and tried to visualize what was going on.  After we understood that program well enough we had to try to make our own code that would combine the images to one image that would represent the actual object. 

This seemed like a daunting task at first.  We had the images and we also knew what the final image should look like (two seperate images would be produced, one of the z=3.5 plane and one of the z=2.5 plane) however the inbetween steps proved to be problematic.  Both Allan and I worked on this program using the shift-and-add method but we worked seperately to both get the experience.  The shift and add method is just as it sounds, you shift the images individually and then add the shifted images together to get the finished product.  After a lot of searching, trial and error, and looking through MATLAB Help both Allan and I found (seperately) the same functions we needed to use; the imadd and the circshift functions.

Once we knew which functions to use it was up to us to figure out how to use them.  My first approach was very specific to this problem.  However to get this code to work I had to count the pixels the square moved from frame to frame, a tedious process.  For the other two squares I had to do the same thing (in a seperate code) so once I got a code to work and produce decent images, I went back and tried to improve my code.  This morning I finally got my code to work even better and in a more general manner.  Instead of hardcoding the shift of each frame into the code, I used information that I knew would be available to us in future experiment: the distance to the detector and the distance to the object.  However after we met with Professor Buma he informed us that we would not nessecarily know the distance to the object.  So that is the task at hand now.  Make another program like what we just did but even more general so it will work on any z plane. Great.

Posted by: cpretz | June 12, 2009

First Week

I have just about made it through the first week of the program.  It started with safety training on Monday morning and continued into the afternoon with various tours of the buildings and labs.  I attend UD during the school year so I had seen all of the buildings and most of the labs we walked through but it was still good to take a look at the labs as a work place for the summer instead of a classroom setting. 

Tuesday we began with a quick evaluation of the program and then broke up into pairs and met with the professors we will be working with throughout the summer.  Allan and I are working with Professors Buma and Barner this summer from the Electrical Engineering Department at UD.  They explained what they had in mind for our project this summer and gave us a brief gameplan for how we will go about this.  Basically, what we will be working towards this summer is a combination of optofluidic microscopes and tomography.  After speaking with the professors we were sent on our way to do some research on our own and gain a background knowledge of these topics as well as digital image processing (which seems like a prominent part of the project as well). 

The rest of the week, including today, as been background reading and research to prepare ourselves for the actual work on our project.  Through my readings I have found that tomography is basically combining multiple images of an object into a 3D model of the object. Also I found that optofluidic microscopes involve very small ‘targets’ flowing through a channel which has tiny holes in the bottom through which images are captured and then complied together to create an image of the target.  So it sounds like we are trying to develop something like  an optofluidic microscope that will produce 3D images or models instead of just a 2D image.

I have also been working with MATLAB and figuring out digital image processing tools and techniques.  Although I do have a little knowledge of MATLAB, I do not know anything about image processing so I have been practicing with tutorials and my own experimenting.  We have gotten help from some of the Grad students here and in my opinion I definitely have a better grasp of image processing as well as a general understanding of optofluidic microscopes and tomography.

I think the next step in the process is to take a look  at a prototype developed by one of the professors and then making a computer program involving tomosynthesis-based image reconstruction.  Hopefully next week we will have a little more hands on work to do and get this project underway!

Posted by: cpretz | June 11, 2009

new wordpress page

This is the first time I’ve used WordPress blog’s so you will have to bare with me as I get used to everything.  This page was created so I can account for what happens with my research throughout the summer.

Categories

Follow

Get every new post delivered to your Inbox.