C ++; Как написать в указатель Vect3b opencv в функции - PullRequest
0 голосов
/ 14 января 2020

У меня небольшая проблема. У меня есть функция, использующая функцию с двумя указанными объектами указателя Mat, но у меня возникают проблемы с записью в каналы outImg для обновления img.

void convolve5(Mat *inputImg, Mat *outImg, int *kernel5) {
     int channelvaluepixel = inputImg->at<Vect3b>(x,y)[channel];
     // loads of changes happening here
     outImg->at<Vect3b>(x,y)[0] = channelvaluepixel;
}

Поскольку outImg является указателем, я не могу указать на его адрес для изменения это, поэтому я попытался это изменить значение в указателе:

*outImg->at<Vect3b>(x,y)[0] = channelvaluepixel;

Но это не будет работать, так как компилятор дает мне:

Error: invalid type argument of unary '*' (have 'unsigned char')

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 14 января 2020

Вы разыменовываете целое выражение outImg->at<Vect3b>(x,y)[0] вместо просто (*outImg).at<Vect3b>(x,y)[0] = channelvaluepixel;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...