如何在 MATLAB 中使用对数函数将三波段彩色图像量化为彩色图像

How do I quantize a three-band color image into a color image using logarithmic function in MATLAB

对数函数为I' =C*ln(I+1)(对每个波段),其中I为原始值(0~255),I'为量化值,C为常数将I'缩放为(0~255),ln为自然对数

到目前为止我试过这个:

C1 = double(C1);
C = 0;
I = (C*log(1+C1));
image(I);
figure;

结果是黑色图像。

您已设置 C=0,然后乘以 C。相反,通过考虑结果图像的最大值并确保它缩放到 1.

来计算 C
I = log(C1+1);
C = 1/max(I(:));
I = C*I;
image(I);