2014-03-13 197 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或類似的東西來規範每個像素值,因爲像素值不能以小數爲單位。