#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc,char argv[])
{
Mat srcImage;
srcImage=imread("F:\\论文识别内容\\行人识别.jpg");
if(!srcImage.data)
{
printf("读取srcImage错误!\n");
return false;
}
namedWindow("【原始图】");
imshow("【原始图】",srcImage);
int bins=256;
int hist_size[]={bins};
float range[]={0,256};
const float* ranges[]={range};
MatND redHist,grayHist,blueHist;
int channels_r[]={0};
//进行直方图的计算(红色分量)
calcHist(&srcImage,1,channels_r,Mat(),//不使用掩膜
redHist,1,hist_size,ranges,true,false);
//进行直方图的计算(绿色分量部分)
int channels_g[]={1};
calcHist(&srcImage,1,channels_g,Mat(),//不使用掩膜
grayHist,1,hist_size,ranges,true,false);
//进行直方图的计算//蓝色部分
int channels_b[]={2};
calcHist(&srcImage,1,channels_b,Mat(),//不使用掩膜
blueHist,1,hist_size,ranges,true,false);
//绘制出三色直方图
double maxValue_red,maxValue_green,maxValue_blue;
minMaxLoc(redHist,0,&maxValue_red,0,0);
minMaxLoc(grayHist,0,&maxValue_green,0,0);
minMaxLoc(blueHist,0,&maxValue_blue,0,0);
int scale=1;
int histHeight=256;
Mat histImage=Mat::zeros(histHeight,bins*3,CV_8UC3);
for(int i=0;i<bins;i++)
{
float binValue_red=redHist.at<float>(i);
float binValue_green=grayHist.at<float>(i);
float binValue_blue=blueHist.at<float>(i);
int intensity_red=cvRound(binValue_red*histHeight/maxValue_red);//要绘制的高度
int intensity_green=cvRound(binValue_green*histHeight/maxValue_green);//要绘制的高度
int intensity_blue=cvRound(binValue_blue*histHeight/maxValue_blue);//要绘制的高度
//绘制红色分量的直方图
rectangle(histImage,Point(i*scale,histHeight-1),Point((i+1)*scale-1,histHeight-intensity_red),Scalar(255,0,0));
//绘制绿色分量的直方图
rectangle(histImage,Point((i+bins)*scale,histHeight-1),Point((i+bins+1)*scale-1,histHeight-intensity_green),Scalar(0,255,0));
//绘制蓝色分量的直方图
rectangle(histImage,Point((i+bins*2)*scale,histHeight-1),Point((i+bins*2+1)*scale-1,histHeight-intensity_blue),Scalar(0,0,255));
}
//在窗口中显示绘制好的直方图
imshow("图像的RGB直方图",histImage);
waitKey(0);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
绘制RGB三色直方图
共54个文件
tlog:31个
manifest:3个
pdb:2个
需积分: 28 9 下载量 50 浏览量
2016-11-29
11:32:37
上传
评论
收藏 8.98MB RAR 举报
温馨提示
该程序可以将输入的RGB真彩色图像的直方图绘制出来
资源推荐
资源详情
资源评论
收起资源包目录
绘制RGB三色直方图.rar (54个子文件)
绘制RGB三色直方图
df.sln 873B
df
Debug
link.5740.read.1.tlog 2B
cl.command.1.tlog 4KB
df.exe.embed.manifest 2B
link.2464.read.1.tlog 2B
link.6520.write.1.tlog 2B
link.2464.write.1.tlog 2B
rc.command.1.tlog 386B
CL.read.1.tlog 48KB
vc100.idb 475KB
mt.read.1.tlog 1KB
link.6520.read.1.tlog 2B
link.read.1.tlog 43KB
df.log 3KB
link.7324.write.1.tlog 2B
rc.read.1.tlog 178B
link.3568.write.1.tlog 2B
link.write.1.tlog 3KB
df.vcxprojResolveAssemblyReference.cache 713B
link.4324.read.1.tlog 2B
CL.write.1.tlog 1KB
df.lastbuildstate 68B
link.4324.write.1.tlog 2B
link.5996.read.1.tlog 2B
df.write.1.tlog 0B
vc100.pdb 500KB
df.exe.intermediate.manifest 381B
df_manifest.rc 194B
link.1104.read.1.tlog 2B
sd.obj 123KB
link.5996.write.1.tlog 2B
df.exe.embed.manifest.res 68B
link.command.1.tlog 19KB
link.5740.write.1.tlog 2B
link.3808.read.1.tlog 2B
link.7324.read.1.tlog 2B
mt.write.1.tlog 894B
link.3808.write.1.tlog 2B
mt.command.1.tlog 2KB
rc.write.1.tlog 186B
link.3568.read.1.tlog 2B
link.1104.write.1.tlog 2B
df.vcxproj.user 143B
sd.cpp 2KB
df.vcxproj 4KB
df.vcxproj.filters 1KB
16-12.h 167B
Debug
df.ilk 705KB
df.exe 50KB
df.exe.manifest 406B
df.pdb 1.01MB
df.suo 11KB
ipch
df-47167f88
df-2e8e71d6.ipch 41.38MB
df.sdf 10.96MB
共 54 条
- 1
资源评论
qq_32565181
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功