Mammogram feature extration

1 次查看(过去 30 天)
ws
ws 2011-10-23
Hi all, I have 2 questions for my feature extration part : 1. I have an image name "im1" and after I done fft2, my im1 value need to be in real part and absolute value before finding statistical features? e.g.
im1=real(im1)
im1=abs(im1)
2. If I want to find kurtosis and skewness, do I need to convert my im1 value into 1 row data before using them? e.g.
im1=im1( : );
k=kurtosis(im1);
s=skewness(im1);
Thank you.

回答(2 个)

Image Analyst
Image Analyst 2011-10-23
1. Number 1 is not a question. It's best if you don't overwrite your original spatial domain image (im1) with its spectrum. Call the fft something like fftOfim1 instead.
2. I don't have those functions in any of my toolboxes. You'd have to look at the help for them. If they require a 1D vector you should do it all in one shot, so you don't ruin im1's shape, by doing this
k = kurtosis(im1(:));
s = skewness(im1(:));
By the way, I think you wouldn't find nodules in mammograms by looking at the FFT. I could be wrong though if it's one of the methods listed in section 20.7.1 and deeper here: http://iris.usc.edu/Vision-Notes/bibliography/contentsmedical.html#Medical%20Applications,%20CAT,%20MRI,%20Ultrasound,%20Heart%20Models,%20Brain%20Models
  1 个评论
ws
ws 2011-10-24
Thank for your reply.
For number 1 question was after I called fft2 function, do I need to perform real() and abs() before proceed to get the statistical features?
This is my example code:
function [dft]=Feature(im1)
imr=imresize(im1,[512 512]); % change my image size from 1024 to 512
im512=double(imr); % change the img type to double b4 fft2
imfft2=fft2(im512);
im=real(imfft2); % is this line required
im=abs(imfft2); % is this line required
% my statistical features here, e.g:
% m = mean(mean(im));
% s1 = std2(im);
% k = kurtosis(im); % my question 2
% s2 = skewness(im); % my question 2
dft=[m s s1 k];
end
Question2: I have look at the help for them, both can perform well in 2D vector, but the values for 1D and 2D are different, so I must use 1D or 2D vector?
From my code above, k and s2 will return 1x512 values and it cant save in dft, so I need to find those values by using :
k = mean(kurtosis(im);
s2 = mean(skewness(im));
or change it to 1D vector below?
k= kurtosis(im(:));
s2 = skewness(im(:));

请先登录,再进行评论。


Image Analyst
Image Analyst 2011-10-24
Question 1. Sure you can do that.
Question 2. Often for MATLAB functions (like sum, mean, etc.) if you pass it a 2D array you get the operations done on each column, not on the array as a whole. It looks like you're saying kurtosis and skewness do that. If that's not what you want, then use the (:) like I showed you.
I still doubt whether you'll find any abnormalities in the mammogram from this approach though.
  3 个评论
Image Analyst
Image Analyst 2011-10-24
I think that approach will ultimately prove fruitless because I don't think that nodules and other abnormalities can be seen or identified from the Fourier transform. My suggestion was that link where you can find state of the art algorithms. For Q2, I'd use the 1D version, for what it's worth.
Walter Roberson
Walter Roberson 2011-10-24
The fourier transform can potentially be valuable as part of calculating a phase image. When there are structures with different chemical makeup (such as tumors) then they may be highlighted by measuring differences in the phase changes.
On the other hand, such techniques are usually more suitable for radiogram or MRI than for x-rays: I suspect that probably it is not a common practice to used a coherent x-ray source ("x-ray laser") for mammograms at present.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 AI for Signals 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by