how to correct the error in finding neighbor pixels in an 3x3 window? how many input arguments for an max() function have?

1 回表示 (過去 30 日間)
I=[2 3 10 4 6; 1 4 7 5 3; 5 2 8 4 3;8 2 1 7 3;1 9 8 3 4;];
D = padarray(I,[1 1],0,'both');
[x y]=size(D);
m=1;
n=1;
for i=2:x-1
for j=2:y-1
I1(m,n)=max(max(D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)));
n=n+1;
end
m=m+1;
n=1;
end
I1=I1(1:x-2,1:y-2);
error: Error using max Too many input arguments.
Error in sampl1 (line 9) I1(m,n)=max(max(D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)));

回答 (1 件)

ES
ES 2013 年 10 月 9 日
max ideally takes one argument, a vector or matrix and returns the maximum element(s) (elements in case the passed input is a matrix).
max also takes two arguments.
But foryour case, you can form a matrix x=[D(i-1,j-1:j+1),D(i,j-1),D(i,j+1),D(i+1,j-1:j+1)] and do a max on x like
max(x)
  3 件のコメント
Walter Roberson
Walter Roberson 2013 年 10 月 9 日
max can also take three arguments. When it is given 2 arguments, it always proceeds element-by-element. When it is given three arguments with the second argument empty, it uses the third as the dimension number to take the maximum over.
Ashish Uthama
Ashish Uthama 2013 年 10 月 10 日
Sheno39, if this answered your question, please mark it as accepted.

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by