我在这里用过:
pictureBox1.Image = My_Image.ToBitmap();
byte Red_val = My_Image.Data[0, 0, 2];
MessageBox.Show(Red_val.ToString());
这是否给出了红色区域的平均强度?如何获得平均强度值?
答案 0 :(得分:1)
有Image.GetAverage()
方法可以完成这项工作。还有一个Image.GetAverage(mask)
的重载,如果你需要一个非矩形区域,它将采用掩码:http://www.emgu.com/wiki/files/1.4.0.0/html/3b71b52b-48a1-a3de-d3f6-75010ef3ff26.htm
答案 1 :(得分:0)
你的第二行:
byte Red_val = My_Image.Data[0, 0, 2];
将在第0行和第0列为您提供像素的红色值。 如果你想要整个图片的平均红色,你应该遍历它的行和列并总结通道数据。
Double Red_avg = 0.0;
for (int j = 0; j < My_Image.Cols; j++)
{
for (int i = 0; i < My_Image.Rows; i++)
{
Red_avg+=My_Image.Data[i, j,2];
}
}
Red_avg=Red_avg/(My_Image.Cols*My_Image.Rows);
答案 2 :(得分:0)
查看EMGU中的Image.AvgSdv方法:
$(":checkbox").change(function(){
$(this).closest('tr').find('input').not(this).prop('checked', false);
});
&#34;计算每个频道&#34; 的数组元素的平均值和标准差。它可能比自己循环图像更快。