【发布时间】:2019-08-19 10:25:40
【问题描述】:
我是图像处理和 Opencv 的初学者。我正在尝试使用 OPENCV# 找出图像的各个像素强度。这里有帮助:http://docs.opencv.org/doc/user_guide/ug_mat.html?highlight=pixel%20intensity 针对同一问题。但我不确定如何在 OPENCV# 中使用它。 我知道这是一个非常基本的查询。请尝试帮忙。提前致谢。
【问题讨论】:
标签: opencv
我是图像处理和 Opencv 的初学者。我正在尝试使用 OPENCV# 找出图像的各个像素强度。这里有帮助:http://docs.opencv.org/doc/user_guide/ug_mat.html?highlight=pixel%20intensity 针对同一问题。但我不确定如何在 OPENCV# 中使用它。 我知道这是一个非常基本的查询。请尝试帮忙。提前致谢。
【问题讨论】:
标签: opencv
像素强度与该像素的灰度值相同。要获得 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 是最大强度(视为完全白色的像素)。
【讨论】:
在 emgu cv 中,你可以像 this 那样做。
//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];
【讨论】: