如何求取一个的图像的归一化直方图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何求取一个的图像的归一化直方图?相关的知识,希望对你有一定的参考价值。

是用matlab处理

参考技术A I=imread('66.jpg');
ima=rgb2hsv(I);
H=ima(:,:,1);
H=H*360;
[m1,n1]=size(H);
H1=reshape(H,m1*n1,1);
[N1,X1]=hist(H1,[0:1:360]); %色度直方图
figure,bar(X1,N1);
S=ima(:,:,2);
S=S*255;
[m2,n2]=size(S);
P2=m2*n2;
S1=reshape(S,P2,1);
[N2,X2]=hist(S1, [0:1:99]); %饱和度直方图
figure,bar(X2,N2);
V=ima(:,:,3);
V=V*255;
[m3,n3]=size(V);
P3=m3*n3;
V1=reshape(V,P3,1);
[N3,X3]=hist(V1, [0:1:255]); %亮度直方图
figure,bar(X3,N3);

你如果说是在归一化后的也就是(0-1)范围的直方图,则不需要转换空间,在RGB空间也不需要量化参数直接把1分为了100份
ima=imread('66.jpg');
R=ima(:,:,1);
[m1,n1]=size(R);
R1=reshape(R,m1*n1,1);
[N1,X1]=hist(R1,[0:0.01:1]);
figure,bar(X1,N1);
G=ima(:,:,2);
[m2,n2]=size(G);
P2=m2*n2;
G1=reshape(G,P2,1);
[N2,X2]=hist(G1, [0:0.01:1]);
figure,bar(X2,N2);
B=ima(:,:,3);
[m3,n3]=size(B);
P3=m3*n3;
B1=reshape(B,P3,1);
[N3,X3]=hist(B1, [0:0.01:100]);
figure,bar(X3,N3);
如果你是想要对灰度图进行直方图归一,那我只能说你是个菜鸟了

ima=imread('66.jpg');
ima_gray=rgb2gray(ima);
[m,n]=size(ima_gray);
P=m*n;
a=reshape(ima_gray,P,1);
[N,X]=hist(a, [0:0.01:100]);
figure,bar(X,N);

如果,还是没有如果把本回答被提问者采纳

以上是关于如何求取一个的图像的归一化直方图?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV进行图像相似度对比的几种办法

图像灰度直方图归一化 matlab实现

使用 matlab 数字图像处理—— 归一化直方图

颜色直方图归一化

图片直方图均衡化

图片直方图均衡化