OpenCV - путаница с использованием calcHist

Я много раз читал документацию для calcHist (), но я думаю, что моя неопытность в OpenCV и навыки ржавого программирования полностью мешают мне понять это.

пытаюсь подсчитать пиксели в одном канале изображения HSV (Hue или channel [0]) для целей сегментации, используя 10 бинов, которые близко приближают цвет в соответствии с чем-то вроде (let 'Если использовать это в качестве примера, я украл диапазоны из Интернета - fwiw, кажется ошибочным пропускать пурпурно-красный):

Красный: 0-19 330-360 Красно-желтый (RY): 20-49 Желтый: 50-69 YG: 70-84 Зеленый: 85-170 ГБ: 171-191 Синий: 192-264 BP: 265-289 Фиолетовый: 290-329

И так далее...

Так как мне сделать это с calcHist?

м, насколько:

#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    Mat scene, sceneHSV, dest, histo;
    int numImages = 1, histChannel[] = {0}, dims = 1, histSize[] = {10};

    float redRange[] = {0, 10};
    float roRange[] = {10, 25};
    float orangeRange[] = {25, 35};
    float oyRange[] = {35, 42};
    float yellowRange[] = {42, 85};
    float ygRange[] = {85, 96};
    float greenRange[] = {96, 132};
    float gbRange[] = {132, 145};
    float blueRange[] = {145, 160};
    float bpRange[] = {160, 165};
    float purpleRange[] = {165, 180};

    const float* ranges[] = {redRange, roRange, orangeRange, oyRange, yellowRange, ygRange, greenRange, gbRange, blueRange, bpRange, purpleRange};

    vector channels;

    scene = imread("Apple.jpg", 1);
    if (scene.data == NULL)
    {
        cout

Ответы на вопрос(1)

Ваш ответ на вопрос