MATLAB:如何提高灰度图像的饱和度
我知道我可以使用MATLAB:如何提高灰度图像的饱和度,matlab,image-processing,rgb,Matlab,Image Processing,Rgb,我知道我可以使用rgb2hsv更改RGB图像的饱和度,但不能更改灰度图像的饱和度。我已经试过邻里函数了。你能给我一个提示吗?正如前面提到的,“饱和度”不是一个可以应用于灰度图像的术语。下面是一个可能接近你想象的效果的建议: sat = 10; imshow(img1,rgb2gray(map).^(exp(-0.1*sat))); 这假设您的图像img1在map中有相应的颜色映射。如果没有彩色贴图,可以将rgb2gray(map)替换为gray(256) 在上面的示例中,sat的正值将生成较亮
rgb2hsv
更改RGB图像的饱和度,但不能更改灰度图像的饱和度。我已经试过邻里函数了。你能给我一个提示吗?正如前面提到的,“饱和度”不是一个可以应用于灰度图像的术语。下面是一个可能接近你想象的效果的建议:
sat = 10;
imshow(img1,rgb2gray(map).^(exp(-0.1*sat)));
这假设您的图像img1
在map
中有相应的颜色映射。如果没有彩色贴图,可以将rgb2gray(map)
替换为gray(256)
在上面的示例中,
sat
的正值将生成较亮的图像,sat
的负值将生成较暗的图像。实际上,您可以更改扭曲颜色贴图的函数,无论您选择何种方式来获得所需的效果。正如其他人所指出的,灰度图像的饱和度定义为0。如果您希望提高对比度,请尝试imadjust
或histeq
如何定义饱和度?真实灰度图像(与已去饱和度的RGB图像相反)只有一个参数可以更改:灰度,它与亮度类似。灰度饱和度的想法对我来说毫无意义。换言之:灰度饱和度定义为0。:-)你想要的效果可能不是饱和。尝试更好地描述它,或者添加一个示例。