Matlab中的人工平均

Matlab中的人工平均,matlab,image-processing,Matlab,Image Processing,为什么对图像矩阵使用mean()函数和手动使用mean()函数会有区别? 见: 您确定手动平均值不会使uint8值饱和吗?im(:,:,1)+im(:,:,2)+im(:,:,3)将值剪裁为255。因此,自定义方法并不像您希望的那样工作。转换为双精度,然后除以3。如果使用im2double,则在除以3之前先放大255。 im=imread('img.jpg'); imshow(uint8(mean(im,3))); figure; imshow(uint8((im(:,:,1)+im(:,:,2

为什么对图像矩阵使用mean()函数和手动使用mean()函数会有区别? 见:


您确定手动平均值不会使uint8值饱和吗?
im(:,:,1)+im(:,:,2)+im(:,:,3)
将值剪裁为255。因此,自定义方法并不像您希望的那样工作。转换为双精度,然后除以3。如果使用
im2double
,则在除以3之前先放大255。
im=imread('img.jpg');
imshow(uint8(mean(im,3)));
figure;
imshow(uint8((im(:,:,1)+im(:,:,2)+im(:,:,3))/3));