0
image=imread('Tiger.jpg');
%figure,imshow(uint8(image)),title('Before applying Median Filter');


[rows, cols]=size(image);
B=zeros(rows, cols);

for rowNo=2:rows-1
    for colNo=2:cols-1
         K=image(rowNo-1:rowNo+1,colNo-1:colNo+1);

    B(rows,cols)=median(K);
   end
end


figure,imshow(uint8(B)),title('After applying Median Filter');

組み込み関数を使用せずに画像の中央値を計算したいのですが、エラーが発生します。誰か助けてくださいエラー

??? Subscripted assignment dimension mismatch.

Error in ==> Quest_2median at 18
    B(rows,cols)=median(K);
4

1 に答える 1

0

以下のコードはより良い実装です:

image=imread('../SampleImages/cat.jpg');
%figure,imshow(uint8(image)),title('Before applying Median Filter');
image = rgb2gray(image);
image = imnoise(image,'salt & pepper');
[rows, cols]=size(image);
B=zeros(rows, cols);

for rowNo=2:rows-1
    for colNo=2:cols-1
        K=image(rowNo-1:rowNo+1,colNo-1:colNo+1);
K = reshape (K,1,9);
B(rowNo,colNo)=median(K);
    end
end

figure,imshow(uint8(image)),title('Before applying Median Filter');
figure,imshow(uint8(B)),title('After applying Median Filter');

中央値関数はベクトルを取り、行列を渡すと、各列の中央値を含む行ベクトルが得られることに注意してください。

于 2013-03-08T20:32:50.893 に答える