Мы создали структуру hsv, как определено ниже.Обновление структуры в функции
struct hsvoutput {
float hue; // angle in degrees
float saturation;
float value;
};
и
struct hsvoutput hsv[img->x * img->y];
где размер вытягивается от размера изображения.
int RGBtoH(int r, int g, int b, struct hsvoutput hsv, int i)
{
float h;
float s;
float v;
RGBtoHSV(r, g, b, &h, &s, &v);
hsv.hue[i]= h;
hsv.saturation[i] = s;
hsv.value[i]= v;
return h;
}
Мы хотели бы способ получить функцию RGBtoH, чтобы установить значение г-й структуры ВПГ к H, S и V значений. Это значение i является значением итерации из цикла, который вызывает эту функцию RGBtoH.
Однако эта ошибка возникает при попытке, как указано выше.
error: subscripted value is neither array nor pointer nor vector
Функция должна быть int RGBtoH (int r, int g, int b, struct hsvoutput * p_hsv, int i); – venki
и при вызове функции RGBtoH() предоставить структуру addr – venki
'hsv' - это массив, поэтому эта строка: 'int RGBtoH (int r, int g, int b, struct hsvoutput hsv, int i)' должно быть: 'int RGBtoH (int r, int g, int b, struct hsvoutput * hsv, int i) ' – user3629249