我一直试图打印像素值在屏幕上使用printf在C中的OpenCV,但我只是得到垃圾值。如何将IPL_DEPTH_8U(8位无符号整数)图像打印到屏幕并将IPL_DEPTH_32F(32位浮点)图像打印到屏幕上?贝娄是我使用的代码。这是错的吗?这可能是正确的,但我只是得到的像素值我没有预料到:从opencv图像打印像素值到屏幕
这些都是单通道的图像BTW:
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位有符号浮点数?
谢谢。我刚开始使用这个网站,你们真棒!
试试这个[link](http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html)或这个[link](http:// blog.adnannoon.com/tag/access-pixel-values-of-opencv-image)。 –