2016年12月17日 星期六

03360812蔡杰修 HW 02

這次作業是做直方圖均化,但在做之前,要先計算得出所選圖的RGB,並將其做成直方圖(比較容易看出RGB分布),比較重要的是累計直方圖,雖然很簡單,只是將其值累加起來而已,但這計算有錯誤的話,會影響到最後直方圖均化的結果。

上面3個是RGB的直方圖
下面3個是RGB的累計直方圖

寫出程式後,真的覺得比例好難抓,因為現在相片像素都很高,計算下來的數值有些可能過高,也可能過低,所以只能大概抓個幾%比例來顯現出來,所以有些過小的值可能就剩一丁點看太不到,而過大的值突破天際。


原圖1

for(i = 0;i < iHeight;i++)
    {
    PtrImageRow = (Byte *)Image1->Picture->Bitmap->ScanLine[i];
    AF = (Byte *)Image2->Picture->Bitmap->ScanLine[i];
    for(j = 0;j < iWidth;j++)
           for(k=0;k<3;k++)
           {
           AF[3*j] = 255*bl[PtrImageRow[3*j]]/sum[0];         
           /* ->新的色彩值=255* cdf ( f( x , y ) )
           AF[3*j+1] =255*gr[PtrImageRow[3*j+1]]/sum[1];
           AF[3*j+2] = 255*re[PtrImageRow[3*j+2]]/sum[2];
           }
    }


均化過後的圖1
很明顯原來過暗的地方全部都看得到了


原圖2


均化過後的圖2
我覺得拿一張正常的圖片均化後,反而更怪異,顏色整個走樣了。

結論:
直方圖均化我覺得是拿來用在可能有些地方過暗的圖片,想更清楚凸顯過暗的部分,經過均化後可能就跑出來一隻鳥或一座山,拿正常的圖片來均化真的不太適合。

沒有留言:

張貼留言