MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

# what does this code mean?

Asked by satish thapaliya on 20 Nov 2012

1/(mean(mean(I1(xy_index(2)+(-7:7),xy_index(1)+(-7:7),1)))/mean(mean(I2(xy_index(2)+(-7:7),xy_index(1)+(-7:7),1))))

## Products

No products are associated with this question.

Answer by satish thapaliya on 20 Nov 2012

Thanks Roberson

Answer by Matt Fig on 20 Nov 2012
Edited by Matt Fig on 20 Nov 2012

It appears to be finding the ratio of the mean values of two 15 element square subarrays, each from a different array.

satish thapaliya on 20 Nov 2012

the whole command for the first set of image was as follow

```I1 = imread('E:\allergen-data\20120823\folder 3\3.BMP');
subplot(211)
imshow(I1)
I2 = imread('E:\allergen-data\20120823\folder 2\14.BMP');
subplot(212)
imshow(I2)
I1 = rgb2gray(I1);
I2 = rgb2gray(I2);
xy_index = [310 820];
1/(mean(mean(I1(xy_index(2)+(-7:7),xy_index(1)+(-7:7),1)))/mean(mean(I2(xy_index(2)+(-7:7),xy_index(1)+(-7:7),1))))
```

it displays ans in the value between 0 to 1. could you help what is it actually?

Walter Roberson on 20 Nov 2012

It is not a gray scale value. It is "something else".

It does not produce a value between 0 and 1: it can produce infinity in some cases.

The expression is of the form 1 / (A / B) . That could be rewritten as B/A, which makes it clearer that what it produces is a ratio of the grayscale intensities of the mean color of the respective two blocks.

satish thapaliya on 20 Nov 2012

Thanks Roberson