2
|
9537 Views
|
4 Replies
|
9 Total Likes
View groups...
Share

# Digital Image Correlation or Particle Image Velocimetry?

Posted 10 years ago
 Hey Wolfram Community, I would like to use Mathematica's image processing functionality to visualize the difference between these two images. Here's what's going on here: I am heating the pins, and the hot air rising from the pins is distorting the randomized background. My goal is to visualize the air plumes resulting from heating the pins. Thus far I have tried to use ImageFeatureTrack on the two images, which gives me a list of points, but I don't know how to turn these points into a meaningful visualization on top of the original image. My ideal visualization would be lines drawn from their position in the first image to their distorted position in the second image, perhaps colored as a function of their length (i.e. areas with more distortion would have a more intense color). I've spent about two days watching tutorials and to learn the Wolfram Language, but I'm not able to figure out which functions to use, and I keep getting errors about data types passing from one function to the next. Even an explanation of the right strategy for achieving this would be really helpful. Attached is a notebook with the two images, and my attempts so far. Thanks, Alexander Attachments:
4 Replies
Sort By:
Posted 10 years ago
 Hey, I just wanted to update the forum on progress. I was able to use the nuance of Photoshop to dial in the subtract features and achieve results like these. For developing this technique, some alignment algorithms that don't deform the image could be really useful, but for me it's easier to do this manually in Photoshop than to achieve it in Mathematica. Attachments:
Posted 10 years ago
 Marco, thanks for such a thorough reply! It seems I was headed in the wrong direction and these images represent some great progress. I put Mathematica down for a while and did some more research on the most algorithms to use for this problem. This article seems to demonstrate the most success, as there are several scales of phenomena visible, especially using Brox's algorithm. I have followed their instructions for capturing the images, so I think the weakness in my images is in the image-processing.https://www.cs.ubc.ca/nest/imager/tr/2008/Atcheson_BOS_EiF/The subtract function is good for making the phenomena visible, and I'm able to enhance it somewhat in Photoshop, but the underlying problem is that it is only identifying disturbance, rather than quantifying the amount of disturbance. The images are more intense where the air moves fastest, but they aren't nearly as clear as the images in this paper. Are any of the image functions capable of running more nuanced algorithms for tracking movement from one image to another? Attachments:
Posted 10 years ago
 By the way, this is what you get with ImageCorresponding points:  Show[ImageResize[images[[1]], 300], Graphics[{Green, Disk[#[[1]], 2]} & /@ Transpose[ ImageCorrespondingPoints[ImageResize[images[[1]], 300], ImageResize[images[[2]], 300]]]], Graphics[{Red, Disk[#[[2]], 2]} & /@ Transpose[ ImageCorrespondingPoints[ImageResize[images[[1]], 300], ImageResize[images[[2]], 300]]]], Graphics[{Thick, Line[#]} & /@ Transpose[ ImageCorrespondingPoints[ImageResize[images[[1]], 300], ImageResize[images[[2]], 300]]]]] which givesso this does not really appear to be useful for you.Cheers, Marco
Posted 10 years ago
 Hi Alexander,I don't think that ImageFeatureTrack will work here. It is quite simple to visualise the differences between the two images: ImageSubtract[images[[1]], images[[2]]] // ImageAdjust You can also colorise that: Colorize[ImageAdjust[ImageSubtract[images[[1]], images[[2]]]], ColorFunction -> "ThermometerColors"] You can then zoom in onto one of the pins img=ImageTrim[Colorize[ImageAdjust[ImageSubtract[images[[1]], images[[2]]]], ColorFunction -> "ThermometerColors"], {{270., 420.}, {460., 630.}}] You can make the structures a bit clearer with MorphologicalBinarize[img] // Colorize I particularly like this one: MorphologicalComponents[Binarize[img]] // Colorize I know that this is not what you want, but as I said I think that ImageFeatureTrack will not work well. If you draw the Key Points you get Show[Graphics[{Green, Disk[#, 5]} & /@ ImageKeypoints[images[[1]]]], Graphics[{Red, Disk[#, 5]} & /@ ImageKeypoints[images[[2]]]]] the thing is that even the number of key points does not match up. 7180 in one and 7186 in the other. there is no reason to assume that they "match up". In fact if you draw lines between them that looks horrible: Graphics[Line /@ Transpose[{ImageKeypoints[images[[1]]][[1 ;; 7180]], ImageKeypoints[images[[2]]][[1 ;; 7180]]}]] This command does something similar to what you want; it produces still error messages, because some points are missing, but never mind. Show[images[[1]], Graphics[{Green, Disk[#, 5]} & /@ features[[1]]], Graphics[{Red, Disk[#, 5]} & /@ features[[2]]], Graphics[{Thick, Line[#]} & /@ Transpose[{features[[1]], features[[2]]}]]] I can fix the missing problem if you want.Cheers, Marco