How to mask the data of no information?

2 vues (au cours des 30 derniers jours)
Amjad Iqbal
Amjad Iqbal le 21 Sep 2022
Commenté : Amjad Iqbal le 22 Sep 2022
Dear Matlab experts,
I need to mask out data with no information and want to keep data for only targets of interest.
I have attached one image in which data with no information is masked out and retain with target information.
I have attached .mat file, could you please guide on how to mask the information of no use and get only target region?
Thank you!
Best Regards,
Amjad
load('two_targets.mat'); % data
imagesc(intensity,[-45 0]);
I need to keep target area as given in image below and maskout information of no use for spatial mean operation.
I used to cut data or keep points of target but it affects spatial mean operation.
  3 commentaires
Walter Roberson
Walter Roberson le 21 Sep 2022
What do you mean by "spatial mean" for this purpose?
What are the boundaries you want to mask with? Your .mat file does not contain anything that looks like a mask. Is the rule that two circles have to be constructed, both with center at half-height, with the two touching at half-width? If so then we would need to know the radius to use.
Amjad Iqbal
Amjad Iqbal le 21 Sep 2022
From .mat file we can have this image named *output* given below.
Now I need to keep information of these two circular targets, according to the colormap its value varies roughlt from -20 to 0
I want to keep this information and mask out rest of the information below -45 to -20 with NaN as given in image above
having white background and two targets.
After that I need to apply sliding window for spatial mean operation.

Connectez-vous pour commenter.

Réponse acceptée

Chunru
Chunru le 22 Sep 2022
websave("two_targets.mat", "https://www.mathworks.com/matlabcentral/answers/uploaded_files/1132000/Two_targets.mat");
load('two_targets.mat'); % data
imagesc(intensity,[-45 0]);
intensity(intensity<-20) = nan;
figure
imagesc(intensity,[-45 0]);
  2 commentaires
Walter Roberson
Walter Roberson le 22 Sep 2022
3 x 3 sliding window (sliding one pixel at a time)
websave("two_targets.mat", "https://www.mathworks.com/matlabcentral/answers/uploaded_files/1132000/Two_targets.mat");
load('two_targets.mat'); % data
imagesc(intensity,[-45 0]);
intensity(intensity<-20) = nan;
imagesc(intensity,[-45 0]);
[min(intensity(:)), max(intensity(:))]
ans = 1×2
-19.9535 0
smoothed = blockproc(intensity, [1 1], @(block) mean(block.data(:), 'omitnan'), 'Border', [1 1], 'TrimBorder', false);
imagesc(smoothed);
[min(smoothed(:)), max(smoothed(:))]
ans = 1×2
-19.9535 0
Amjad Iqbal
Amjad Iqbal le 22 Sep 2022
@Chunru and @Walter Roberson Thank you dear both!
It helps me a lot and work perfecly, and I learnt somthing new, I really appriciate your inputs

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by