# Problem in converting to uint8()

4 ビュー (過去 30 日間)
Jash Shah 2020 年 5 月 11 日
コメント済み: Jash Shah 2020 年 5 月 16 日
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.

サインインしてコメントする。

### 採用された回答

Navya Seelam 2020 年 5 月 14 日

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 件のコメント

Jash Shah 2020 年 5 月 16 日
Oh! Okay got my fault. Thanks

サインインしてコメントする。

R2020a

### Community Treasure Hunt

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

Start Hunting!

Translated by