Problem in converting to uint8()

7 visualizaciones (últimos 30 días)
Jash Shah
Jash Shah el 11 de Mayo de 2020
Comentada: Jash Shah el 16 de Mayo de 2020
The function here takes image matrix and creates a 2w+1 X 2w+1 matrix to convolute over it and average the pixel value and hence create a blur image using averaging method.
% Function to blur any image by average method.
function output = blur(img,w)
[row,cols] = size(img);
total = 0;
freq = (2*w + 1)*(2*w + 1);
temp_i = 1;
temp_j = 1;
output = [];
for i = 1:1:row
for j =1:1:cols
total = 0;
for temp_i = i-w:1:i+w
for temp_j = j-w:1:j+w
if(temp_i >=1 & temp_i<=row & temp_j>=1 & temp_j<= cols)
total = total + img(temp_i,temp_j);
freq = freq+1;
end
end
end
output(i,j) = total/freq;
end
end
% output = uint8(output);
end
The output works fine if for the current code, but if I un-comment the line to get uint8 output image, I get incorrect result. To be precise, I get a uniform matrix having same value as all its elements.

Respuesta aceptada

Navya Seelam
Navya Seelam el 14 de Mayo de 2020
Editada: Navya Seelam el 14 de Mayo de 2020
uint8 can represent integers from 0 to 255. Make sure that elements are less than or equal to 255 to get the expected results.
  1 comentario
Jash Shah
Jash Shah el 16 de Mayo de 2020
Oh! Okay got my fault. Thanks

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by