How to detect frequency of noise and how to get rid of it in a set of images?
9 views (last 30 days)
Show older comments
Hello Everyone,
I hope that you all are doing great. I am developing a program to process IR images of nerve fibers. Our end goal is to measure the area of the flare (see dark organge arrow shown in the image below) evoked in these fibers over time. The area of the flare is being affected by noise evoked from blood pulsation (which has a frequency; see light orange arrow shown in image below), patients's movement, and other types of involuntary movement.
I would like to identify the frequency of the noise (we can seee in the graph below that some of the noise has a frequency) and get rid of it. I also would like to get suggestions about how to wisely remove other artifacts caused by iregular movement.
Your suggestions and help will be highly appreciated. I attached to this post a sample of the data and files you can use to check out the data.
If you have questions, please let me now. Thank you!
SAMPLE IMAGES
The following image shows one of the frames negatively affected by motion. It shows how the pulsation increases the size of the flare. The light orange arrow points at the origin of the pulsation while the dark orange arrow points at the flare ( what we want to measure).
The following is the frame right after the one shown above. Note that this frame is not negatively affected by motion.
4 Comments
Image Analyst
on 9 Dec 2023
Edited: Image Analyst
on 9 Dec 2023
OK, masking is easy (see attached demos). And getting area after thresholding is easy.
% Find bright things.
brightPixels = grayImage > someThreshold;
% Get rid of everything outside the mask, which is where the flare is.
mask = brightPixels & handDrawnMask;
props = regionprops(mask, grayImage, 'Area', 'MeanIntensity');
The hard part is to know how much brighter the pulsation causes the flare to be so we can correct for it by darkening the flare area. Do you have any ideas about that? Otherwise if we just used the raw intensity and got the area from that, which may make it a little bit larger, then maybe there is a way to look at the areas over time and somehow figure out which ones were affected by pulsation and which were not.
Can you attach an original frame, in gray scale not pseudocolored, so I can show you how to do masking, thresholding, and to obtain the area?
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!