计算另一个图像像素满足条件的像素值的平均值
Compute mean of pixel values where another image pixels meet condition
分割后,我有 labels
和 gray
图像。我想计算每个标签的平均强度,即标签像素具有特定值的强度值的平均值。像这样:
// both are 1-channel
cv::Mat gray, labels
// ...
float avg=cv::mean(gray(labels==1));
cv::MatExpr 不会(至少不会自动)转换为 cv::Range,后者可用作灰度图像的 ROI,因此此示例无法编译。
除了显式编写循环之外,有没有简单的方法?
使用口罩:
float avg=cv::mean(gray, (labels==1));
"labels" 必须与 "gray"
具有相同的维度
分割后,我有 labels
和 gray
图像。我想计算每个标签的平均强度,即标签像素具有特定值的强度值的平均值。像这样:
// both are 1-channel
cv::Mat gray, labels
// ...
float avg=cv::mean(gray(labels==1));
cv::MatExpr 不会(至少不会自动)转换为 cv::Range,后者可用作灰度图像的 ROI,因此此示例无法编译。
除了显式编写循环之外,有没有简单的方法?
使用口罩:
float avg=cv::mean(gray, (labels==1));
"labels" 必须与 "gray"
具有相同的维度