首页 > 解决方案 > C++;如何在函数中写入opencv的Vect3b指针

问题描述

我有一个小问题。我正在使用一个函数,该函数具有给定的 2 个 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')

有人可以帮忙吗?

标签: c++functionopencvpointersvector

解决方案


您正在取消引用整个表达式outImg->at<Vect3b>(x,y)[0],而不仅仅是(*outImg).at<Vect3b>(x,y)[0] = channelvaluepixel;


推荐阅读