對於具有真實數據類型的圖像,像素值可以是負的,並且這三個操作是等效的:
real1 = Image[RandomReal[1, {10, 10}]];
real2 = Image[RandomReal[1, {10, 10}]];
ImageData[ImageDifference[real1, real2]] ==
[email protected][ImageSubtract[real1, real2]] ==
Abs[ImageData[real1] - ImageData[real2]]
Out[4]= True
但它不與整數數據類型的圖像的情況下。這是因爲只有正值可以存儲在這樣的圖像,並且從減法負結果在輸出圖像中裁剪到零:
int1 = Image[RandomInteger[255, {10, 10}], "Byte"];
int2 = Image[RandomInteger[255, {10, 10}], "Byte"];
這仍然True
是:
ImageData[ImageDifference[int1, int2]]
== Abs[ImageData[int1] - ImageData[int2]]
但是這兩個因剪裁不同而不同:
ImageData[ImageDifference[int1, int2]]
== [email protected][ImageSubtract[int1, int2]]
將兩個輸入圖像轉換爲「Real」或「Real32」數據類型時,會出現較少令人費解的結果。
請上傳您的圖片在某個地方... –