I'm working with this paper: Textural Features Corresponding to Visual Perception, by Tamura, Mori, and Yamawaki. There's a part where you have to calculate neighborhoods of one image (matrix of, for example $256 \times 256$) and those neighborhoods have to be $2^k$ size square.

Step 1: Take averages at every point over neighborhoods whose sizes are powers of two, e.g., $1\times1$, $2\times2$, $\cdots$, $32\times32$. The average over the neighborhood of size $2^k\times2^k$ at the point $(x,y)$ is $$A_k(x,y)=\sum_{i=x-2^{k-1}}^{x+2^{k-1}-1}\sum_{j=y-2^{k-1}}^{y+2^{k-1}-1}f(i,j)\big/2^{2k}$$ where $f(i,j)$ is the gray-level at $(x,y)$.

Ok that's great.

Then I have to calculate a difference:

Step 2: For each point, at each point, take differences between pairs of averages corresponding to pairs of non-overlapping neighborhoods just on opposite sides of the point in both horizontal and vertical orientations. For examples, the difference in the horizontal case is $$E_{k,h}(x,y)=\left|A_k\left(x+2^{k-1},y\right)-A_k\left(x-2^{k-1},y\right)\right|.$$

Let $A(0,0)$ be the point where I want to calculate the difference.

If I use $A(0,0)$, I will go out of bounds on the second member.

Do you think it's an error? There's nothing about the '$h$' parameter anywhere as well.

$k$ could be $0, 1, 2 \dots$

  • $\begingroup$ Perhaps it's h for horizontal. When you do differences, there will be an edge, of width $2^{k-1}$ where you can't do it exactly. $\endgroup$ – Empy2 Sep 12 '14 at 18:35

As Michael suggested, $h$ is for horizontal. You'll also have vertical difference $$ E_{k,v}(x,y) = |A_k(x+2^{k-1},y) - A_k(x-2^{k-1},y)| $$ I think that they take $E_k = \max(E_{k,h},E_{k,v})$ and then maximize over $k$.

I will go out of bounds on the second member.

Yes you will, if $(x,y)$ are close to the boundary. The authors admit as much:

boundary strips of a picture within the width of the largest operator size $2L$ cannot be processed properly.

They offer no remedy to the boundary effects. One possible solution is to extend the image to a larger square by setting the color of every exterior pixel equal to the color of the image pixel nearest to it.

  • $\begingroup$ It's a good answer, thanks. But I don't understand yet, if I take neighborhoods of k = 3, how to calculate the E1,h or E2,h or v... how could I do it ? $\endgroup$ – Rafael Ruiz Muñoz Sep 12 '14 at 19:04
  • $\begingroup$ First you calculate $A_k$. Can you do that? $\endgroup$ – user147263 Sep 12 '14 at 19:05
  • $\begingroup$ of course. Then ? $\endgroup$ – Rafael Ruiz Muñoz Sep 12 '14 at 19:06
  • $\begingroup$ Then you subtract and take absolute value. I don't see what the trouble is. $\endgroup$ – user147263 Sep 12 '14 at 19:06
  • $\begingroup$ The trouble are those variables (h and v)... what should I do with them ? $\endgroup$ – Rafael Ruiz Muñoz Sep 12 '14 at 19:10

It looks ok to me.

enter image description here

In the diagram I have taken $(x,y)$ to be $(5,4)$, so I am comparing two squares, one yellow, one orange, either side of $(x,y)$. That is the $k$ case. Then there is a similar comparison for the $h$ case. Of course, you run into trouble if you are too close to the border, but that is inevitable.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.