Hi, All! Does anybody have stable compiled binaries on Linux? (the .mexa64 files). I have successfully compiled these binaries. But MATLAB always crashes when running the function RenderColorMesh. My email is email@example.com.
I'll briefly reply here. if you need additional explanations, please email me. I'm not familiar with the concept circular bi-linear interpolation. Regular bi-linear interpolation is basically about calculating value lying between nearest neighbors (interpolation ) values, via weighted average based on their distances to the desired value position (bi-linear). See First Order Hold as well.
In case of LBP, having a central point, and angle, and a radius, usually results in a point "falling" between pixels. This demands calculation of this value via interpolation. bi-linear is the easiest one. Bi-cubic for example is another, more expensive option.
Now again- in LBP image, each pixel value is calculated via sum of neighboring pixels (of when speaking of the whole image via it's shifted versions). As the shift is not always an integer value it demands interpolation. that's about all. See matlab imresize function, or any bi-linear based image zoom method for visualization.
Hope I've made things a bit more clear.
Hi Nikolay ..
I am very much new to LBP.
I have successfully calculated LBP.
Can you tell me how to calculate circular bi-linear interpolation. I am confused about radius of circular LBP and how circular neighbourhoods are calculated using bilinear interpolation.
Pls help me. I read Ojala's paper , but confused about uniform LBP and circular neighbourhood.
Using 32 neighbors to an image of [nxmxk] dimensions, results in storing an nxmx(kx32) matrix to the memory. Moreover, usage of 32 elements means storing LBP data in uint32, rather then uint8 (for up to 8 neighbors), which means *4 more memory. Altogether, the usage scenario you propose can indeed cause "out of memory" problem.
Currently I do not have a version with fever memory demands, so the only advice I can give you, it to devide the image to patches/windows, and applying the LBP to each such part in turn. You can then concatenate the sub-windows LBP into a single LBP. You can use my image concatenate function for this.
Regarding your grade (3/5)- I find it a bit insulting. Indeed, my implementation fails to deal with the hush scenario of 32 neighbors, especially if the image investigated is of large dimensions.
But you must understand, that some methods are limited, and you cannot apply them to any kind of data expecting it to work. perhaps there is an optimization, besides what I've proposed beforehand, but I have not figured one out so far. You are welcome to propose a better implementation, so I will be able to use and grade it.
If I set the number of neighbors to be 32（r=4）, the program failed with warning 'out of memory' because of the size of a variable was 2.^nNeigh. I wonder if it can be programmed in another way to avoid the memory problem because the variable is sparse.