필터 지우기
필터 지우기

Image recognition using MATLAB

조회 수: 1 (최근 30일)
Nishant Prakash
Nishant Prakash 2013년 5월 5일
I have to take any number of images suppose 5 and have to train the system in a way that when i bring the same image as testing data, it should recognize that which image it is. say i have images of apple, chair, man, car and tree. then if i test it with any different image of (say) apple or car etc. then my system should recognize it is an apple. It is a class project and i just want to know that how should i approach this problem .should i go for feature extraction and if so then what features should i extract from the images for training.

답변 (2개)

Image Analyst
Image Analyst 2013년 5월 5일
If, when you said "i bring the same image as testing data" you actually meant "i bring the same image as training data" then this is trivially easy and can be done in a few lines. Simply have one of the features be the mean value of the image. Most likely the 5 images won't have the same mean. So you just calculate the 5 means, and the mean of the test image which you are going to present to the system, and find out which is closest.
% Read in all images
image1 = imread(filename1);
image2 = imread(filename2);
image3 = imread(filename3);
image4 = imread(filename4);
image5 = imread(filename5);
% Get the means
theMeans(1) = mean2(image1);
theMeans(2) = mean2(image2);
theMeans(3) = mean2(image3);
theMeans(4) = mean2(image4);
theMeans(5) = mean2(image5);
% Get mean of test image
testMean = mean2(testImage);
% Find which image it matches:
[minValue, matchingImageIndex] = min(abs(theMeans - testMean));
matchingImageIndex is your answer - it will be a number between 1 and 5, inclusive.

Anand
Anand 2013년 5월 6일
You could use the 2-D correlation coefficient between the image you send and the images in the training set and select the one with the highest correlation coefficient. Use the corr2 function to do this. Ofcourse, the assumptions Image Analyst made above are valid here too.
  댓글 수: 1
Image Analyst
Image Analyst 2013년 5월 6일
You'd have to use normxcorr2() instead of corr2(), otherwise just some uniform image of 255 will give a higher correlation than the correlation of the image with itself, since it's just multiplying and summing.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by