feature extraction for MRI image

10 views (last 30 days)
hi. I want to extract features for analyzing an image. I have extracted 8 basic features such as energy, homogeneity, contrast, skewness, correlation, variance etc. What other features can i use for image classification? My image is a cancer MRI. Thanks in advance. Have a nice day :)

Accepted Answer

Image Analyst
Image Analyst on 21 Jun 2015
Too many to list. See VisionBib for lots of algorithms to measure all kinds of things.

More Answers (4)

Rafee Muhammad
Rafee Muhammad on 11 Feb 2019
%% Image Read
[filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.tif'; '*.gif'; '*.png'; '*.jpeg'}, 'Load Image File');
brainImg = imread([pathname filename]);
subplot(231);imshow(brainImg);title('Input image','FontSize',20);
%% preprocessing
[m n c] = size(brainImg);
if c == 3
brainImg = rgb2gray(brainImg);
end
[ brainImg ] = Preprocess( brainImg );
subplot(232);imshow(brainImg);title('preprocessed image','FontSize',20);
%% Convert To Binary
img2 = im2bw(brainImg);
%% Feature Extraction
signal1 = img2(:,:);
[cA1,cH1,cV1,cD1] = dwt2(signal1,'db4');
[cA2,cH2,cV2,cD2] = dwt2(cA1,'db4');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'db4');
DWT_feat = [cA3,cH3,cV3,cD3];
G = pca(DWT_feat);
whos DWT_feat
whos G
g = graycomatrix(G);
stats = graycoprops(g,'Contrast Correlation Energy Homogeneity');
Contrast = stats.Contrast;
Correlation = stats.Correlation;
Energy = stats.Energy;
Homogeneity = stats.Homogeneity;
Mean = mean2(G);
Standard_Deviation = std2(G);
Entropy = entropy(G);
RMS = mean2(rms(G));
%Skewness = skewness(img)
Variance = mean2(var(double(G)));
a = sum(double(G(:)));
Smoothness = 1-(1/(1+a));
Kurtosis = kurtosis(double(G(:)));
Skewness = skewness(double(G(:)));
  2 Comments
Emma Stone
Emma Stone on 10 Nov 2020
Edited: Emma Stone on 10 Nov 2020
Hello Sir,
in your code we don't have information about preprocess function ,it gives error in below line, would you suggest me whats the issue!
[ brainImg ] = Preprocess( brainImg );
thanks
Priyanka Matta
Priyanka Matta on 20 May 2021
Hello Rafee,
I tried your code for extracting features in a IVUS image.
It worked very well.
thanks

Sign in to comment.


farheen asdf
farheen asdf on 2 Jul 2015
I have finally trained my neural network and the results are good (87% accurate). That being said i'm still a little confused as to how it can be used practically. For example, in my case it takes the network several tries to get to 87% accuracy. Sometimes its accuracy is as bad as 26%. How can i make sure that my network remembers what it has learned when it gets to 87% accuracy? Second, i was wondering if i could use this network to find the class of an unknown image which i select at runtime. I've used indexing method to separate the training, validation and test data so that the network tests only the images i want it to. Thanks in advance. Have a nice day :)
  2 Comments
Image Analyst
Image Analyst on 2 Jul 2015
I don't use Neural Networks. I've added the Product Neural Network Toolbox above, so maybe Greg Heath will see it and answer you.
farheen asdf
farheen asdf on 3 Jul 2015
Thank you Image Analyst

Sign in to comment.


Foading Leonce
Foading Leonce on 10 Mar 2019
Edited: Image Analyst on 5 Dec 2022
Hello @Rafee Muhammad. Thanks for your contribution.
But in your code we don't have information about preprocess function in this line:
[ brainImg ] = Preprocess( brainImg );
Please supply that function. Thanks. 🙂
  2 Comments
Image Analyst
Image Analyst on 5 Dec 2022
@Foading Leonce and @Fatima you might be able to get away without even using that line of code. We don't know what he did. Maybe it was just something you don't need to do, like cropping his image. Try it without that line of code (comment it out) and see how it works.

Sign in to comment.


Fatima
Fatima on 5 Dec 2022
Me too

Categories

Find more on Biomedical Imaging in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!