使用MATLAB计算RGB数据的颜色直方图
I=imread('sample.bmp'); % 文件名自己改
siz=size(I);I1=reshape(I,siz(1)*siz(2),siz(3)); % 每个颜色通道变为一列I1=double(I1);[N,X]=hist(I1, [0:1:255]); % 如果需要小矩形宽一点,划分区域少点,可以把步长改大,比如0:5:255bar(X,N(:,[3 2 1])); % 柱形图,用N(:,[3 2 1])是因为默认绘图的时候采用的颜色顺序为b,g,r,c,m,y,k,跟图片的rgb顺序正好相反,所以把图片列的顺序倒过来,让图片颜色通道跟绘制时的颜色一致xlim([0 255])hold onplot(X,N(:,[3 2 1])); % 上边界轮廓hold off如何使用MATLAB计算彩色图像的颜色直方图?
从别人那里学来的:
1.将RGB图象转为HSV2. 将H分量量化16级,将S分量和V分量分别量化为4级. 3.将三个颜色分量合成为一维特征向量:L = H*Qs*Qv+S*Qv+v;Qs,Qv分别是S和V的量化级数, L取值范围[0,255].4.计算L的直方图分布但愿合你胃口,呵呵!RGB直方图中色彩怎么分布才算正常?
答:
在色阶直方图的下面有三个滑标。黑色滑标为黑场滑标,用来设置片子中最黑的点。白色滑标为白场滑标,用来设置片子中最亮的点。而灰色滑标则用来设置图像的中间亮度的位置。 将中间灰滑标略微向左侧移动,可以看到输入色阶的参数向大于1变化。灰色滑标与白色滑标 之间的距离拉大。灰色滑标右侧的亮调空间加大,图像的影调也就越来越亮。将中间灰滑标略微向右侧移动,可以看到输入色阶中间的参数向小于1变化,灰色滑标与黑色滑标的距离拉大了,灰色滑标左侧的暗调空间加大了,图像影调也就越来越暗。如何在matlab中显示一幅图的RGB直方图,函数是什么?
代码clc; clear all; close all;
I = imread('football.jpg');figure;subplot(1, 3, 1); imhist(I(:, :, 1)); title('R直方图');subplot(1, 3, 2); imhist(I(:, :, 2)); title('G直方图');subplot(1, 3, 3); imhist(I(:, :, 3)); title('B直方图');结果为什么PS里的直方图变白色了,本来是RGB彩色的直方图, 不知自己按错什么键变成白色的了。
你好!
你上图的模式是颜色。下图的模式是RGB。你可以在这里右上角的下拉菜单中选择扩展,然后把通道选成颜色就可以回到你第一图的显示。同样你也可以在里边发现RGB三原色各自的通道直方图。ps直方图问题:请问直方图中明度直方图和RGB直方图的区别是什么?
RGB直方图是R,G,B三个颜色通道直方图复合以后的色阶图
而明度直方图是指这个彩色图像去色后变为一张灰度图像时的直方图,这个灰度图像是按照“305911”经验公式计算的,即:30%红+59%绿+11%蓝=灰度值。