4

我是图像处理和 Opencv 的初学者。我正在尝试使用 OPENCV# 找出图像的各个像素强度。这里有帮助:http ://docs.opencv.org/doc/user_guide/ug_mat.html?highlight=pixel%20intensity针对同一问题。但我不确定如何在 OPENCV# 中使用它。我知道这是一个非常基本的查询。请尝试提供帮助。提前致谢。

4

2 回答 2

4

像素强度与该像素的灰度值相同。要获得 BGR 图像的灰度(像素强度)版本,您可以执行以下操作:

cv::cvtColor(bgr_mat,gray_mat,CV_BGR2GRAY);

现在 3 通道 BGR 图像已转换为 1 通道 GRAYSCALE 图像。要查找灰度图像中像素 (x,y) 的强度,您可以执行以下操作:

//NOTE: in OpenCV pixels are accessed in (row,col) format
int intensity = (int)gray_mat.at<uchar>(y,x);

由于每个灰度像素都存储为 uchar,因此值的intensity范围为 (0-255),其中 255 是最大强度(视为完全白色的像素)。

于 2012-11-02T01:22:03.017 回答
1

在 emgu cv 中,您可以这样

//Color
//Red 
byte Red_val = My_Image.Data[y,x,0];
//Green 
byte Green_val = My_Image.Data[y,x,1];
//Blue 
byte Blue_val = My_Image.Data[y,x,2];

//Greyscale
byte Gray_val = My_Image.Data[y,x,0];
于 2012-10-09T13:08:17.067 回答