Borrar filtros
Borrar filtros

I need code urgently for my project to find average of pixels by considering 7 by 7 matrix

2 visualizaciones (últimos 30 días)
I want code for finding the mean by considering 7 by 7 matrix. For each pixel in the image i want to calculate 5 mean values. First mean should be calculated by placing the original pixel at the center of 7 by 7 matrix and the second,third,fourth and fifth mean should be calculated by placing the same pixel at top left,top right,bottom left,bottom right of the 7 by 7 matrix.
  3 comentarios

Iniciar sesión para comentar.

Respuestas (2)

Walter Roberson
Walter Roberson el 28 de En. de 2019
Use filter2()
The mask you pass to filter2 is applied with the pixel at the top left if I remember correctly. However can ask for the full results rather than 'valid' and you can extract subsets of the filtered results . MM(1:end-6,1:end-6), MM(7:end,1:end-6) and so on where MM is the output of filter2 .
  3 comentarios
viswanath reddy
viswanath reddy el 28 de En. de 2019
I need to calculate 5 mean values of every pixel in an image. The first mean value should be calculated by assuming the pixel at the center of 7*7 window and the 2nd,3rd,4th and 5th mean values should be calculated by assuming that the same pixel is located at top left,top right,bottom left and bottom right corners of the 7*7 window.
Walter Roberson
Walter Roberson el 28 de En. de 2019
you already said that in the same words. If I did not understand your question then you need to explain differently such as with an example .

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 28 de En. de 2019
Try this:
grayImage = imread('moon.tif'); % Whatever ...
% Shift pixel at upper left to middle.
kernel = zeros(7);
kernel(1,1) = 1;
upperLeft = imfilter(grayImage, kernel);
% imshow(upperLeft);
% Shift pixel at upper right to middle.
kernel = zeros(7);
kernel(1,3) = 1;
upperRight = imfilter(grayImage, kernel);
% imshow(upperRight);
% Shift pixel at lower left to middle.
kernel = zeros(7);
kernel(3,1) = 1;
lowerLeft = imfilter(grayImage, kernel);
% imshow(lowerLeft);
% Shift pixel at lower right to middle.
kernel = zeros(7);
kernel(3,3) = 1;
lowerRight = imfilter(grayImage, kernel);
% imshow(lowerRight);
But it's not really correct to call the pixel at the upper left of a 7x7 window a "mean" since it's just a single pixe,, not the average of multiple values.

Community Treasure Hunt

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

Start Hunting!

Translated by