2015-11-19 32 views
-1

我如何添加兩個矩陣,複雜的雙打之一,另一隻是雙打,使用Matlab中的imadd功能?加入兩個不同類型的圖像與Matlab的imadd功能

%tpye of img1 is double and img2 is complex double 
img=imadd(img1,img2); 
+1

是否有任何理由爲什麼'IMG = IMG1 + img2'是不適合你? –

+1

對圖像處理並不十分熟悉,但從文檔看來,它看起來像是「imadd」只是矩陣加法,它會截斷所有值大於255的值,在正常矩陣添加後可以手動進行。 – excaza

+0

圖像增強img1是原始圖像,img2是在特定處理後銳化圖像。 – Mohammad

回答

0

我猜你在添加它們之後顯示圖像時遇到了麻煩。當你使用imshow(img)時,matlab總是看到img的類型,當它看到它的雙倍映射0=black 1>=white,所以很多信息被截斷。

在添加這些圖像組合在一起,你應該再次縮放裏面,這樣的值是0和1之間。這裏是將標準化陣列

function normalized_arr = NormalizeArray(inp_arr) 
% normalized_im = NormalizeArray(inp_arr) takes an input array of any size 
%  and normalizes all the values so the result is an array with all 
%  values between 0 and 1 inclusive 

    %finds the smallest value in the current array 
    min_val = min(inp_arr(:)); 

    %finds the largest value in the current array 
    max_val = max(inp_arr(:)); 

    %finds the scale factor so that all values are between 0 and 1 
    scale_factor = 1/(max_val - min_val); 

    %removes offset from image, so the minimum value will be 0 
    normalized_arr = inp_arr - min_val; 

    %normalization 
    normalized_arr = normalized_arr .* scale_factor; 
end  

你可以使用它在你的代碼這樣

功能
img = img1+img2; 
norm_img = NormalizeArray(img); 
imshow(norm_img); 
+0

我們還沒有寫出答案,因爲其中一個圖像是複數值。添加一個真實的圖像和一個「複雜」的圖像並沒有什麼意義,這就是爲什麼我們一直在評論線程中詢問上面的OP。這就是說,你所說的是完全有效的......因爲這兩個圖像是相同的類型。 – rayryeng

+0

你是對的。我讀它爲img1 __AND__ img2都是複雜的雙。我想他只是在傅立葉域 – andrew

+0

哦,當然。如果兩者都是複雜的,那麼這仍然可行......兩者都不是同一類型,這一切都讓我們非常困惑。 – rayryeng

相關問題