回覆列表
-
1 # 手機使用者81872590743
-
2 # 使用者3296806220335
編輯M檔案如下:
function [c]=function_q(x,n)
t=cputime;
a=zeros(1,256*256);
for p=1:1:length(a)
a(p)=x(p);
end
s_a=sort(a,"descend");
n_a=s_a(n);
c=max(x,n_a);
for i=1:1:256
for j=1:1:256
if c(i,j)==n_a
c(i,j)=0;
end
end
end
time=cputime-t;
fprintf("Run time is %f.\n",time);
這裡的關鍵在於mat2gray這個函式的用法。 mat2gray有兩種呼叫方式:第一種呼叫方式指定對應於光強0-1的A範圍,而第二種方式則以A的最小值、最大值分別作為amin和amax。這樣意味著,按照正常的理解,如果A的最小值不是0,本來沒有完全黑色的點的,但在第二種呼叫方式下,最小值的點光強為0,即為全黑,類似的,最大值為完全白色。 如果用會得到和原始的a相同的影象。