Нашёл хайлайтер синтаксиса, который можно использовать даже на дайрях, ибо он просто генерит HTML по шаблону. Хотя он всё равно нафиг здесь не нужен, но пусть висит на всякий случай.
|
Дисклеймер: если смотреть через избранное, т.е. не с моим оформлением, может выглядеть как говно.
|
Ссылка на сабж
|
тест
int ImageHistogramByte(const cv::Mat& image, double**& xData, double**& yData) { if (image.type() % 8 != CV_8U) { fprintf(stderr, "Source image must be of integer type"); return 1; }
int intervals = 256;
// separate source image by channels std::vector<cv::Mat> imgChannels; split(image, imgChannels);
// create and initialize arrays for histograms int chCount = imgChannels.size(); yData = new double*[chCount]; for (int i=0; i < chCount; i++) { yData[i] = new double[intervals]; for (int j=0; j < intervals; j++) yData[i][j] = 0; }
xData = new double*[chCount]; for (int i=0; i < chCount; i++) { xData[i] = new double[intervals]; for (int j=0; j < intervals; j++) xData[i][j] = j; }
// iterate through channels and calculate histogram for each int chIdx = 0; while (chIdx < chCount) { int r = imgChannels[chIdx].rows; int c = imgChannels[chIdx].cols; uchar* p = 0; for (int i=0; i < r; i++) { p = imgChannels[chIdx].ptr<uchar>(i); for (int j=0; j < c; j++) yData[chIdx][p[j]]++; } chIdx++; }
return 0; }
|