Matlab代码公式的RGB图像蓝色比图像转换

10视图(30天)
你好我想matlab代码RGB图像蓝色比图像的公式。公式是:
100 * B / (1 + R) + G * 256/1 + R + G + B
我用下面的代码…请检查是否有任何问题。
img = imread (“image.jpg”);
R = img (:,: 1);
G = img (:,:, 2);
B = img (:,:, 3);
img_BlueRation = ((100 * 2) / (1 + R + G))。* (256. / (1 + R B + + G));
问候

接受的答案

图像分析
图像分析 2014年8月22日
不完全正确。你忘了把双以避免剪切uint8数到255。见下面纠正代码:
rgbImage = imread (“peppers.png”);
%提取各个颜色通道,避免削波翻倍。
双(R = rgbImage (:,: 1));
G =双(rgbImage (:,: 2));
B =双(rgbImage (:,:, 3));
blueRatio = uint8 (((100 * 2) / (1 + R + G))。* (256. / (1 + R B + + G)));
%显示图像
字形大小= 28;
次要情节(2、3、1);
imshow (rgbImage);
标题(“原始RGB图像”,“字形大小”、字形大小);
次要情节(2、3、2);
imshow (uint8 (R));%必须uint8显示
标题(“R形象”,“字形大小”、字形大小);
次要情节(2、3、3);
imshow (uint8 (G));%必须uint8显示
标题(“G形象”,“字形大小”、字形大小);
次要情节(2、3、4);
imshow (uint8 (B));%必须uint8显示
标题(“B图像”,“字形大小”、字形大小);
次要情节(2、3、5);
imshow (blueRatio);
标题(“蓝色比形象”,“字形大小”、字形大小);
%全屏放大图。
集(gcf,“单位”,“归一化”,“OuterPosition”,(0 0 1 1));
%的标题栏提供一个名称。
集(gcf,“名字”,“由ImageAnalyst演示”,“NumberTitle”,“关闭”)
2的评论
图像分析
图像分析 2014年8月22日
假设你把值作为他们来自文件——最有可能uint8。uint8 200 + 200不会给400。它会给255。那是因为它将剪辑和马克斯uint8可以有价值,也就是2 ^ 8 - 1或255年。所以为了避免这种剪裁翻倍。显示,如果你有一个浮点形象,它预计的范围0 - 1。0 0和1将会显示255 -马克斯你的显示器可以做。如果不在范围0 - 1,它将剪辑一切高于1 - 1和低于0到0。所以东西值200或400会剪1和显示为白色。可以投uint8然后它会夹的事情在255年到255年,所以200年显示很好,但是400会剪,并显示在255年。 Or you can have it scale everything so that it shows everything (no clipping) if you use [] and don't cast to uint8:
imshow (floatingPointImage []);%[]允许它自动扩展为0 - 255。

登录置评。

更多的答案(0)

类别

找到更多的在修改图片的颜色帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的