Finding value of a matrix

2 views (last 30 days)
FIR
FIR on 19 Dec 2012
I have a 3x3 matrix, for example:
d=rand(3,3)
Now i want to implement the equation
V=1/2(d(q4,q5)+d(q5,q6))
where q5 is the centre pixel
q4,46 are neighbouring pixels
for example
d= q1 q2 q3
q4 q5 q6
q7 q8 q9
please assist
  1 Comment
Walter Roberson
Walter Roberson on 19 Dec 2012
q4 and q5 and so on are values of those pixels?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 19 Dec 2012
Hard to tell. You might be asking for
oldMatrix = double(ImageMatrix);
NewMatrix = ( oldMatrix(:,1:end-1) + oldMatrix(:,2:end) ) ./ 2;
But perhaps your "d" matrix is trying to talk about weighting the pixel values ? If so then let w1 be the weight for what you showed as d(q4,q5), and let w2 be the weight for what you showe as d(q5,q6), and then
NewMatrix = ( w1 .* oldMatrix(:,1:end-1) + w2 .* oldMatrix(:,2:end) ) ./ 2;
  12 Comments
Walter Roberson
Walter Roberson on 19 Dec 2012
B(i,j)=median(K(:));

Sign in to comment.

More Answers (2)

Muruganandham Subramanian
Muruganandham Subramanian on 19 Dec 2012
Edited: Muruganandham Subramanian on 19 Dec 2012
d=ones(3);
V=1/2*(d(d(2,2),d(2,2))+d(d(2,2),d(2,3)))
but, If you're using rand(), d(2,2),etc.. can't be accessible, if not using ceil() or floor()..Is this you want?
  7 Comments
Muruganandham Subramanian
Muruganandham Subramanian on 19 Dec 2012
@FIR, I din't worked on images, anyway, by using imread() read your image and do the calculation

Sign in to comment.


Image Analyst
Image Analyst on 19 Dec 2012
By chance do you mean just convolution with a [1 2 1]/4 kernel, where you take the average of the left pair of pixels and the right pair of pixels? If so, you'd need to extract each color plane first and then use conv2() to get the output image one color plane at a time.

Community Treasure Hunt

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

Start Hunting!