OpenCV中直方图的计算和绘制
生活随笔
收集整理的這篇文章主要介紹了
OpenCV中直方图的计算和绘制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
OpenCV中直方圖的計(jì)算和繪制
主要記錄一下幾個(gè)關(guān)鍵的API:
cvRound(輸入一個(gè)浮點(diǎn)數(shù) );//返回一個(gè)整型數(shù),取整的方法為四舍五入 split(輸入多通道圖像,數(shù)組或者vector變量。 );計(jì)算直方圖
calcHist(&分割后的單通道圖像,輸入數(shù)組的個(gè)數(shù),需要統(tǒng)計(jì)的通道索引,Mat()掩碼儲(chǔ)存直方圖的矩陣,直方圖的維數(shù),&每個(gè)維度的bin數(shù),&每個(gè)維度的取值范圍,true,false );歸一化,將直方圖bin中的值縮放到指定的范圍:
normalize(輸入數(shù)組,歸一化后的輸出數(shù)組,歸一化范圍的小值,歸一化范圍的大值,NORM_MINMAX歸一化方法,-1,指示歸一化后的輸出數(shù)組與輸入數(shù)組同類型,Mat()掩碼 );下面你是一個(gè)手敲的demo:
#include "opencv2/opencv.hpp" #include <vector>using namespace std; using namespace cv;int main(){Mat src = imread("/home/dynamicw/Project/C++_Project/opencvtest/src/lesson01/source/grass.jpg");imshow("src",src);vector<Mat> planes;split(src,planes);imshow("b",planes.at(0));imshow("g",planes.at(1));imshow("r",planes.at(2));int histSize = 255;float range[] = {0,255};const float* histRange = {range};Mat r_hist,g_hist,b_hist;calcHist(&planes[0],1,0,Mat(),r_hist,1,&histSize,&histRange,true,false);calcHist(&planes[1],1,0,Mat(),g_hist,1,&histSize,&histRange,true,false);calcHist(&planes[2],1,0,Mat(),b_hist,1,&histSize,&histRange,true,false);Mat histImage(400,400,CV_8UC3,Scalar(0,0,0));normalize(r_hist,r_hist,0,400,NORM_MINMAX,-1,Mat());normalize(g_hist,g_hist,0,400,NORM_MINMAX,-1,Mat());normalize(b_hist,b_hist,0,400,NORM_MINMAX,-1,Mat());int bin_w = cvRound((double)400/histSize);for(int i = 1;i < histSize;i++){line(histImage,Point(bin_w*(i-1),400-cvRound(r_hist.at<float>(i-1))),Point(bin_w*(i),cvRound(400-r_hist.at<float>(i))),Scalar(0,0,255),2,8);line(histImage,Point(bin_w*(i-1),400-cvRound(g_hist.at<float>(i-1))),Point(bin_w*(i),cvRound(400-g_hist.at<float>(i))),Scalar(0,255,0),2,8);line(histImage,Point(bin_w*(i-1),400-cvRound(b_hist.at<float>(i-1))),Point(bin_w*(i),cvRound(400-b_hist.at<float>(i))),Scalar(255,0,0),2,8);}imshow("hist",histImage);waitKey(0);return 0; }總結(jié)
以上是生活随笔為你收集整理的OpenCV中直方图的计算和绘制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二期临床基因组家系数据分析实战,快速发
- 下一篇: latex大写运算符号