ahmdtaha / TextureClassification_FilterBank

This repos provides an MATLAB code implementation for the Statistical Approach to Texture Classification from Single Images paper by Varma et. al.
BSD 2-Clause "Simplified" License
12 stars 6 forks source link

a bug in maximum response #2

Closed stnoh closed 6 years ago

stnoh commented 6 years ago

I found that the part of maximum response code has small issue. If the filter bank covers 2pi (i.e. [-pi:pi) ), the original code will work properly. However, the filter bank in this implementation (from original VGG) only covers pi (i.e. [-pi:pi) ) due to symmetry. Therefore, it is needed to pick the absolute maximum response.

Although it is a small issue, but I think it will affect the result in some cases. Please check my commit a8b578b . Thank you.

stnoh commented 6 years ago

Sorry, I could not catch the meaning of "-ve" you mentioned... (-value evaluated?) If you are concerning on the meaning of sign for oriented filters (1:6, 7:12, ...), I think that we do not need it anymore...

Let's suppose that we have fully oriented filter banks (from -pi to +pi). In that case, the system generates the pairs of positive/negative responses at the opposite direction, identically. The maximum value is picked from the positive side by max() function and the negative side will be disposed. filter_positive_negative

Besides, the orientation part in "makeLM/RMSfilters" only generates the half (from 0 to +pi, actually) range, because we can get the opposite filter value just change the sign. However, there is no guarantee that it will generates only positive values. That is why I suggest to use max(abs()). filter_positive_only