计算另一个图像像素满足条件的像素值的平均值
Posted
技术标签:
【中文标题】计算另一个图像像素满足条件的像素值的平均值【英文标题】:Compute mean of pixel values where another image pixels meet condition 【发布时间】:2018-09-02 10:01:30 【问题描述】:分割后,我有labels
和gray
图像。我想计算每个标签的平均强度,即标签像素具有特定值的强度值的平均值。像这样的:
// both are 1-channel
cv::Mat gray, labels
// ...
float avg=cv::mean(gray(labels==1));
cv::MatExpr 不会(至少不会自动)转换为可用作灰度图像 ROI 的 cv::Range,因此此示例无法编译。
除了显式编写循环之外,有没有简单的方法?
【问题讨论】:
由于 cv::mean 允许使用掩码,您可以只使用该可选参数:C++: Scalar mean(InputArray src, InputArray mask=noArray()) 【参考方案1】:使用面具:
float avg=cv::mean(gray, (labels==1));
“标签”必须与“灰色”具有相同的尺寸
【讨论】:
啊,太好了!谢谢。以上是关于计算另一个图像像素满足条件的像素值的平均值的主要内容,如果未能解决你的问题,请参考以下文章