【发布时间】:2012-01-23 22:43:42
【问题描述】:
我一直尝试在 C 中使用 OpenCV 中的 printf 将像素值打印到屏幕上,但我得到的只是垃圾值。如何将 IPL_DEPTH_8U(8 位无符号整数)图像打印到屏幕和 IPL_DEPTH_32F(32 位浮点)图像打印到屏幕?贝娄是我正在使用的代码。这是错的吗?这可能是正确的,但我只是得到了我没有预料到的像素值:
顺便说一句,这些是单通道图像:
for (y = 0; y < img->height; y++){
uchar *ptr = (uchar*)(img->imageData + y * img->widthStep);
for (x = 0; x < img->width; x++){
printf("%u, ", ptr[x]);
}
printf("\n");
}
这适用于 IPL_DEPTH_8U 图像,我怀疑它工作正常。对于 32 个浮动图像,我将指针更改为 float *,并将 printf 中的说明符更改为 '%f',但这似乎不起作用。怎么了?
这些是正确的指针和说明符吗?另外,对于 16 位有符号整数和 32 位有符号浮点数,指针和说明符应该是什么?
谢谢。我刚开始使用这个网站,你们太棒了!
【问题讨论】: