我想使用CvSet2D在给定的bmp图像中设置像素值,但我想只访问第一个值。你能解释一下CvSet2D的4个参数是什么吗?
例如:
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <math.h>
int main(int argc, char *argv[])
{
IplImage* img = cvLoadImage("initial.bmp",1);
int f = 123;
cvSet2D(img, 1, 2, f); // here is the error
//cvSet2D(img, 1, 2, cvScalar(f)); // error also this way
return 0;
}
我收到错误消息:
incompatible type for argument 4 of 'cvSet2D'
我只需要设置灰度图像的像素值,我该怎么做?
答案 0 :(得分:1)
您可以参考this问题。
C:void cvSet2D(CvArr * arr,int idx0,int idx1,CvScalar value)
参数是:
要了解cvScalar
是什么,请参阅this和
cvScalar
只是一个方便的容器,适用于1,2,3或4个浮点值。
您应该执行以下操作:
uchar f = 123;
CvScalar scalar = cvGet2D(img, 1, 2);
scalar.val[0] = f;
cvSet2D(img, 1, 2, scalar);