2014-03-13 199 views
0

我拍摄三张图像并将它们保存为Tiff图像以保留用于分析的图像数据。在我的程序中,我将这三个图像加载为Emgu.CV.Image<Rgb,ushort>。我需要将这三个图像添加到一起,并返回最终的tiff图像,这是三个单独图像的平均值。这样做最好的方法是什么?使用Emgu.CV添加并平均Tiff图像以创建平均Tiff图像

回答

0

使用底层方法,您可以访问emgucv中图像的单个像素值,然后查找平均值。

对于彩色图像EmguCV存储红,绿和蓝数据在图像分别

for (int i = 0; i < img1.Width; i++) 
    { 
     for (int j = 0; j < img1.Height; j++) 
     { 
      img4.Data[i,j,0] = (img1.Data[i,j,0] + img2.Data[i,j,0] +img3.Data[i,j,0])/3; 
      img4.Data[i,j,1] = (img1.Data[i,j,1] + img2.Data[i,j,1]+ img3.Data[i,j,1])/3; 
      img4.Data[i,j,2] = (img1.Data[i,j,2] + img2.Data[i,j,2]+ img3.Data[i,j,2])/3; 
     } 
    } 

注意的层0,1,2:上述代码假定所有图像是相等的大小(高度和宽度),如果不是这种情况,您应该为最大尺寸的图像进行迭代,并在添加之前将不可用图像(或较小图像)的相应像素设置为零。

您还应该使用Math.Floor或类似的东西来规范每个像素值,因为像素值不能以小数为单位。