我正在接受以下内容:
char* imgData;
Scalar scal = cvGet2D(imgData, x, y);
标量定义如下:
typedef struct Scalar
{
double val[3];
}
Scalar;
我想要一个标量作为结果,但不使用cvGet2D。
我该如何实现?
答案 0 :(得分:0)
cvGet2D()
必须考虑所有可能的图像深度,频道数等
如果您在编译时知道图像格式,则可以通过指针算法直接访问像素。
答案 1 :(得分:0)
也许这篇文章会有所帮助:
How do I access a pixel in OpenCV?
在你的情况下img-> imageData只是imgData。要访问x和y中的所有像素,您仍需要知道图像的widthstep(行步)。 我会说你有类似的东西:
int x=44;
int y=21;
int widthstep=480;
Scalar pixel = ((Scalar*)imgData)[y*widthstep+x];