opencv學習使用直方圖統計畫素
阿新 • • 發佈:2018-10-31
1.影象由畫素組成,在一個單通道的灰度影象中,每個畫素的值介於0(黑色)~255(白色)之間。
2.在opencv中計算直方圖可以通過使用calcHist函式。
3.class:類
4.MatND指多維陣列
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; //定義專門的類來處理單通道的灰度影象: class Histogram1D { private: int histSize[1]; float hranges[2]; const float*ranges[1]; int channels[1]; public: Histogram1D() { histSize[0] = 256; hranges[0] = 0.0; hranges[1] = 255.0; ranges[0] = hranges; channels[0] = 0; } //計算一個灰度直方圖 MatND getHistogram(const Mat&image) { MatND hist; calcHist(&image, 1, channels, Mat(), hist, 1, histSize, ranges ); return hist; } }; int main() { Mat image = imread("3.jpg", 0); Histogram1D h; MatND histo = h.getHistogram(image); for (int i = 0; i < 256; i++) cout << "value" << i << "=" <<histo.at<float>(i) << endl; waitKey(0); }