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



我选取了三张图像并将它们保存为Tiff图像,以便保存图像的数据以供分析。在我的程序中,我将这三个图像加载为Emgu.CV.Image<Rgb,ushort>。我需要将这三张图像加在一起,并返回最后的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;
        }
    }

注意:上面的代码假设所有的图像都是相等的大小(高度和宽度),如果不是这种情况,你应该迭代最大的图像,并将不可用的图像(或较小的图像)对应的像素设置为零,然后再添加。

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

最新更新