c++ - 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')
有人可以帮忙吗?
解决方案
您正在取消引用整个表达式outImg->at<Vect3b>(x,y)[0]
,而不仅仅是(*outImg).at<Vect3b>(x,y)[0] = channelvaluepixel;
推荐阅读
- javascript - 找到一个只有不同对象的数组
- c++ - 我们可以将数据附加到 FlatBuffer 中的 Vector 吗?
- angular - 如何在自定义验证器中访问组件变量?
- loops - 带循环的ansible注册
- reactjs - 使用 Material-UI-Picker 在 iOS 设备上错误地显示时间
- arrays - 如何使用firestore根据值检索数组内的数组
- angular - 将材料数据表排序为仅按角度升序排列
- cvxr - 优化变量的最小值小于下限
- apache - 虚拟主机重定向到本地主机
- selenium - 在 TestNG 创建的 JUNIT 报告中禁用堆栈跟踪