2016-03-27 9 views

cevap

1

uint8 gibi tamsayı türleri MATLAB içinde saturated arithmetic'a sahiptir, ayrıca kayan nokta türleri belirli işlemler sırasında daha hassastır. Ayrıca, diğer yönde downcast olmaktan ötürü uint8 ile double arasında olduğu söylenebilir.


Sadece bir örnek vermek gerekirse, bir 2 'lik bir güç yükseltiyoruz bir görüntünün dinamik aralığını değiştirmek istedim ki:

img = imread('peppers.png'); 
subplot(121), imshow(im2double(img).^2), title('double') 
subplot(122), imshow(img.^2), title('uint8') 

image

Sen nasıl görebilirsiniz uint8 image 255'te çoğu değerle doygun hale geldi.

Daha da fazlası, kesir üssü kullanarak tamsayı türleri için bir hata atar:

>> img.^(1.1); 
Error using .^ 
Integers can only be raised to positive integral powers. 
+0

Bu, uint8'de aralık [0, 255] olduğu için aritmetik işlemler yapılırken aralığının taşma aritmetik işlemler yapmak için iki kat aralığında olmasına rağmen menzili taşabileceği anlamına gelir. –

+0

@ZAFRANULLAH evet – Amro

İlgili konular