我如何添加兩個矩陣,複雜的雙打之一,另一隻是雙打,使用Matlab中的imadd
功能?加入兩個不同類型的圖像與Matlab的imadd功能
%tpye of img1 is double and img2 is complex double
img=imadd(img1,img2);
我如何添加兩個矩陣,複雜的雙打之一,另一隻是雙打,使用Matlab中的imadd
功能?加入兩個不同類型的圖像與Matlab的imadd功能
%tpye of img1 is double and img2 is complex double
img=imadd(img1,img2);
我猜你在添加它們之後顯示圖像時遇到了麻煩。當你使用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);
是否有任何理由爲什麼'IMG = IMG1 + img2'是不適合你? –
對圖像處理並不十分熟悉,但從文檔看來,它看起來像是「imadd」只是矩陣加法,它會截斷所有值大於255的值,在正常矩陣添加後可以手動進行。 – excaza
圖像增強img1是原始圖像,img2是在特定處理後銳化圖像。 – Mohammad