OpenCV 默认的颜色空间是 BGR,类似于RGB,但不是RGB。
即某个像素的第一个值是Blue的值, 第二个是Green的值,第三个是R的值。
程序的核心是 用 cvGet2D(图片, y坐标, x坐标) 获取 CvScalar 对象。
注意y,x顺序,不是 x, y。
CvScalar s = cvGet2D(img, y, x);
printf(" RGB : B=%d, G=%d, R=%d \n" , (int)s.val[0], (int)s.val[1], (int)s.val[2]);
完整程序如下。
#include <ctype.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
int main(int argc, char** argv)
{
IplImage *img = 0;
IplImage *hsv = 0;
int x = 0;
int y = 0;

该博客介绍了如何使用OpenCV库来提取图像中特定位置的像素值。通过调用`cvGet2D`函数,可以获取BGR颜色空间下像素的蓝、绿、红分量。示例代码展示了读取命令行参数,确定坐标并打印像素值的过程。同时,还展示了将图像转换为HSV颜色空间并获取相应像素值的方法。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



