matlab颜色直方图代码
时间: 2023-10-16 14:11:56 浏览: 289
这段MATLAB代码用于绘制RGB颜色直方图:
```
clear;close all;clc;
f=imread('llama.jpg');
subplot(211); imshow(f);title('原图');
fcal=double(f);
[m,n,h]=size(f);
Y=zeros(h,256);
for k=1:h
for i=1:m
for j=1:n
Y(k,fcal(i,j,k)+1)=Y(k,fcal(i,j,k)+1)+1;
end
end
end
X=0:1:255;
subplot(212);
histogram=bar(X,Y);
axis([0 255,-inf inf])
xlabel('灰度级');ylabel('像素个数');
if h==3
title('RGB直方图');
set(histogram(1),'FaceColor',[1 0.1882 0.1882]);
set(histogram(2),'FaceColor',[0.5 1 0]);
set(histogram(3),'FaceColor',[0 0.5 1]);
hold on
plot(X,Y(1,:),'Color',[1 0.1882 0.1882]);
plot(X,Y(2,:),'Color',[0.5 1 0]);
plot(X,Y(3,:),'Color',[0 0.5 1]);
hold off
else
title('灰度直方图');
end
```
该代码首先读取图像`llama.jpg`,然后计算图像的RGB直方图。如果输入图像是RGB图像,则绘制RGB直方图,否则绘制灰度直方图。对于RGB直方图,分别为每个基色设置颜色,并添加轮廓。最后,使用`bar`函数和`plot`函数绘制直方图和轮廓。
阅读全文