C# 使用Emgu.CV添加和平均Tiff图像以创建平均Tiff图像

C# 使用Emgu.CV添加和平均Tiff图像以创建平均Tiff图像,c#,image-processing,tiff,emgucv,C#,Image Processing,Tiff,Emgucv,我正在拍摄三张图像,并将其保存为Tiff图像,以便保存图像数据进行分析。在我的程序中,我将这三幅图像加载为Emgu.CV.Image。我需要将这三个图像相加,并返回最终的tiff图像,这是三个单独图像的平均值。进行此操作的最佳方法是什么?使用基本方法,您可以访问emgucv中图像的各个像素值,然后找到平均值 对于彩色图像,EmguCV将红色、绿色和蓝色数据分别存储在图像的0、1、2层 for (int i = 0; i < img1.Width; i++) { f

我正在拍摄三张图像,并将其保存为Tiff图像,以便保存图像数据进行分析。在我的程序中,我将这三幅图像加载为
Emgu.CV.Image
。我需要将这三个图像相加,并返回最终的tiff图像,这是三个单独图像的平均值。进行此操作的最佳方法是什么?

使用基本方法,您可以访问emgucv中图像的各个像素值,然后找到平均值

对于彩色图像,EmguCV将红色、绿色和蓝色数据分别存储在图像的0、1、2层

 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;
        }
    }
for(int i=0;i
注意:上面的代码假设所有图像的大小(高度和宽度)相同,如果不是这样,您应该迭代最大大小的图像,并在添加之前将不可用图像(或较小图像)的对应像素设置为零

您还应该使用诸如
Math.Floor
或类似的工具来规范化每个像素值,因为像素值不能是小数