What's wrong with my feature extraction code?

I am getting same descriptors for different images.
I tested it by:
image1 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\A.jpg');
image2 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\B.jpg');
v1=Descrip(image1);
v2=Descrip(image2);
SUM=sum(v1-v2)
_____________________________________________________________________________________
Output :
SUM =
0

댓글 수: 1

Explorer
Explorer 2014년 2월 12일
There is something wrong in Descrip.m because I am getting zero for SUM=sum(v1-v2). Ideally, it should not be zero.

답변 (2개)

David Young
David Young 2014년 2월 12일

0 개 추천

Descrip writes then reads contour.jpg, and then computes the result from that. One way to set about debugging would be to see whether contour.jpg is different for the two images. That will help pin down where the problem lies.

댓글 수: 4

Explorer
Explorer 2014년 2월 12일
편집: Explorer 2014년 2월 12일
How can I program it to save figure with different name whenever I run it?
I created another function having name "Descrip2.m" in which image will be saved with contour2.jpg
And tested again by
image1 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\A.jpg');
image2 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\B.jpg');
v1=Descrip(image1);
v2=Descrip2(image2);
SUM=sum(v1-v2)
__________________________________________________________________________________
Output:
SUM =
0
____________________________________________________________________________
Still I am getting sum as zero.
Explorer
Explorer 2014년 2월 12일
편집: Explorer 2014년 2월 12일
But sum is not equal to equal when I replace "1" with "2" in line # 57 of Descrip.m and Descrip2.m
i.e
________________________________________________________________________
Original
thisBoundary = boundary{1}; % Or whatever blob you want.
________________________________________________________________________
Replaced
thisBoundary = boundary{2}; % Or whatever blob you want.
The idea was that you run Descrip with one input image, look at contour.jpg, run it again with the other input image, and look at contour.jpg again. Are they different?
Image Analyst
Image Analyst 2014년 2월 12일
편집: Image Analyst 2014년 2월 12일

0 개 추천

Don't use image as a variable name - it's the name of a built-in function.

댓글 수: 5

Explorer
Explorer 2014년 2월 13일
I have renamed it but still there occur same problem.
Image Analyst
Image Analyst 2014년 2월 13일
편집: Image Analyst 2014년 2월 13일
What are you using now: Descrip or Descrip2? Doesn't stepping through it with the debugger reveal where the problem is????
Explorer
Explorer 2014년 2월 13일
편집: Explorer 2014년 2월 13일
image1 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\A.jpg');
image2 = imread('C:\Users\Explorer\Documents\MATLAB\ASL_signs\B.jpg');
v1=Descrip(image1);
v2=Descrip(image2);
SUM=sum(v1-v2)
___________________________________________________________________________________
Output :
SUM =
0
_____________________________________________________________________
I think sum should not be zero here. Don't you think so?
If image A equals image B then I think they should be the same. You didn't attach either image so only you can know that. What did stepping through with the debugger reveal to you?
Watch out for the case where v1 and v2 are being returned as unsigned integers; in that case if v2 > v1 you would get "clipping" at 0 instead of getting a negative number.

이 질문은 마감되었습니다.

질문:

2014년 2월 12일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by