내 이미지를 흐리게하는 Matlab에서 함수를 만들려고합니다. Matlabs 데모 이미지 peppers.png
을 사용하고 있습니다.Matlab Blur 함수를 사용하여 필터
>> img = imread('peppers.png');
>> imshow(img)
>> imgGray = rgb2gray(img);
>> imshow(imgGray)
>>
>> filt1 = (1/9)*ones(3)
filt1 =
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
>> test = myfilter(imgGray, filt1);
>> imshow(test)
성공적 회색으로 컬러 이미지를 변환하고 필터를 적용합니다 : 여기
function g = myfilter(f, h)
f = double(f); %convert to double
g = zeros(size(f)); %new array (size of f)
a = (size(h, 1) - 1)/2; %padding on edges
for row = (a + 1) : (size(f,1) - a)
for col = (a + 1) : (size(f,2) - a)
gxy = 0; %running sum
for m = -a:a
for n = -a:a
gxy = gxy + f(row - m, col - n) + h(m + a+1, n + a+1);
end
end
g(row, col) = gxy;
end
end
g = uint8(g); %convert back to int
내 명령입니다 :
여기 내 기능입니다.
불행히도 필터는 거의 완벽한 흰색 이미지 (너무 밝음)를 만듭니다 ... 나는 왜 그런지 알 수 없습니다 ... 3x3 필터를 사용하여 각 픽셀의 평균을 취해야합니다 ... 아무거나 이 일이 왜 일어나고 있는지 당신네들에게 분명합니까?