首页 > 代码库 > 提取颜色信息
提取颜色信息
RGB转为灰度图是为了丢掉图片的颜色信息,而保留亮度信息
#include <opencv2/opencv.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace cv; // 显示灰度直方图 Mat getHistImg(const MatND& hist) { double maxVal=0; double minVal=0; //找到直方图中的最大值和最小值 minMaxLoc(hist,&minVal,&maxVal,0,0); int histSize=hist.rows; Mat histImg(histSize,histSize,CV_8U,Scalar(255)); // 设置最大峰值为图像高度的90% int hpt=static_cast<int>(0.9*histSize); for(int h=0;h<histSize;h++) { float binVal=hist.at<float>(h); int intensity=static_cast<int>(binVal*hpt/maxVal); line(histImg,Point(h,histSize),Point(h,histSize-intensity),Scalar::all(0)); } return histImg; } // 主函数 int main() { Mat Image=imread("I:\\work\\挑战杯\\颜色直方图原图.jpg"); imshow("原图", Image); cvtColor(Image,Image,CV_BGR2GRAY); const int channels[1]={0}; const int histSize[1]={256}; float hranges[2]={0,255}; const float* ranges[1]={hranges}; MatND hist; calcHist(&Image,1,channels,Mat(),hist,1,histSize,ranges); hist = getHistImg(hist); imshow("颜色直方图", hist); waitKey(0); return 0; }
提取颜色信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。