顯示具有 HW2 標籤的文章。 顯示所有文章
顯示具有 HW2 標籤的文章。 顯示所有文章

2020年1月2日 星期四

06360984 翁明緯 HW2

影像直方圖與直方圖均化

今天要來新增的功能是直方圖與直方圖均化
直方圖是用來進行統計,而且可以非常清楚的看出他的分布狀況。

影像直方圖就是對於影像的色彩值進行統計。
我們進行實作的方式是將影像圖均化
今天要來新增的功能是直方圖與直方圖均化
直方圖是用來進行統計,而且可以非常清楚的看出他的分布狀況。

影像直方圖就是對於影像的色彩值進行統計。
我們進行實作的方式是將影像一行一行掃瞄並統計如下圖
我實作直方圖後的結果是這樣
有了直方圖後可以知道其色彩值的分布情況,例如直方圖均化。
直方圖均化是把集中在某個區的色彩值利用機率密度函數(PDF)將他們平均分配
這是均化的前後對比
這算是第一個實作作業,做完之後讓我很有成就感也非常驚艷!雖然Debug很久,Bug是沒有把陣列宣告為浮點數,但最後能夠把一張黑漆漆看不見的照片變成清楚看見一隻鳥,讓我對這堂課的興趣增添不少。




2020年1月1日 星期三

06360293 楊哲銓 HW2

影像像素概念、直方圖、直方圖均化

全彩影像,紅色、綠色、藍色各有256種,因此總共可以呈現224種。
此作業使用C++ Builder實作對BMP影像中的RGB值做調整修改。


像素

BMP檔案中,每一個像素儲存了R、G、B三原色的值來決定此像素呈現的顏色。
例如:RGB(255, 0, 0) 為純紅色、 RGB(255, 255, 0) 為黃色等。



負片效果

負片效果,顧名思義是將像素中的RGB數值反轉,得到類似底片的圖片。


Byte* bPtrImageRow = (Byte*)Image_Box->Picture->Bitmap->ScanLine[j];
先將BMP中每一行的開頭指標存入bPtrImageRow,再由迴圈處理行中的每個像素。
由於每個像素中存了R、G、B三個數值,因此bPtrImageRow指向的陣列長度會是圖片寬度的3倍。
但這裡仍由「像素」為單位做考慮,並在每個像素中使用for迴圈處理R、G、B三值。
對每個像素中的R、G、B做反轉(255 - 原始值),即所有像素皆會變成原本顏色的補色。



灰階

當R、G、B三值皆相同時,該像素顏色會呈現灰色。
在這邊的做法是將R、G、B三值皆填入平均值,這樣可以保留與其他像素的顏色差異,並將顏色換成灰色。


相同地,先將BMP中每一行的開頭指標存入bPtrImageRow,再由迴圈處理行中的每個像素。
對像素中的R、G、B取平均後,將R、G、B三值皆換成平均值即可得到灰階化的效果。



顏色遮罩

類似使用玻璃紙眼鏡看圖片的效果。
在這邊實作了純紅色、純綠色、純藍色的三原色顏色濾鏡。

概念很簡單,以紅色遮罩為例,將所有像素中只留下R值,G、B皆設為零,即得到紅色遮罩的效果。
※C++ Builder中,並不以RGB的順序來儲存顏色資料,反而是以BGR的反向順序來儲存,因此圖中k!=2代表著當像該位置儲存的不是R值時,設為0。

直方圖

直方圖,將圖片的R、G、B統計後以圖表方式呈現。

開三個大小為256的陣列分別代表R:0~255、G:0~255、B:0~255的個數,並將圖片跑過一次做統計。



這邊將統計資料放入C++ Builder自帶的TChart圖表物件中來顯示。




直方圖均化

對於過暗的圖片來說,R、G、B值皆集中在數值較小的位置,使用直方圖均化將所有顏色平均分布至0~255,使得圖片暗部加亮,可見度增加。
同樣地,對於過亮的圖片來說,R、G、B值皆集中在數值較大的位置,使用直方圖均化將所有顏色平均分布至0~255,使得圖片亮部變暗,可見度亦增加。

06360426 鍾誌杰 HW2

一張圖片是由很多個的像素(Pixel)組成的,而一個像素則是由RGB組成,分別代表紅、綠、藍三色的強度。當像素的大小為24位元時,能夠呈現224種不同的顏色,稱之為全彩影像。
而大小為24位元的像素的RGB分別使用了8個位元,代表每個像素的RGB值界於0-255之間,值越高代表該色強度越大。

反轉色彩值

反轉圖片的色彩值,只要將255分別減去像素中RGB的值即可,呈現出來的色彩即是原本色彩的互補色。

灰階影像

灰階影像是指影像由很多個灰色色階的色彩所組成的,灰色色階中的顏色,其像素中的RGB值皆相同。要將一張圖片簡單的轉成灰階影像,只需要將各個像素中RGB的值相加後除3,做為新的RGB值即可。

影像色彩直方圖

影像色彩直方圖就是統計中的PDF,就是對每個像素點的RGB值的出現次數分別做統計,接著將色彩值出現次數的分布情形用直方圖呈現出來,拿科米蛙舉例:

橫軸為色彩值(0-255) 縱軸為色彩值出現次數

直方圖均化

直方圖均化用來調整影像的對比度,做法是將圖片的色彩值轉換成該色彩值的CDF乘上255,因此我們要利用上面的PDF幫助我們找出CDF啦,知道色彩值的CDF後就可以對圖片做直方圖均化了。

直方圖均化很適合運用在對比度不足的圖片上,處理過後讓圖片更清晰。

在查閱RGB色彩值的相關資料時,得知像素的大小空間決定了每個像素點可以呈現多少種顏色,因此圖片的顏色的豐富程度會隨著像素空間的大小而改變。而RGB色彩值0-255則是代表該色彩的強度,值越低則強度越小,這也解釋了為什麼所有色彩的色彩值為0時,在色階圖上的呈現顏色都是黑色了。

2019年11月28日 星期四

06361155 馬叡竣 HW2

直方圖、直方圖均化
直方圖:將每個像素格中的R(0~255)、G(0~255)、B(0~255)出現的次數分別記錄下來
例如:圖片之中有一個像素格他的RGB分別是(50、70、90)那我們就紀錄下R(50)出現一次
G(70)出現一次 B(90)出現一次   ,當我們將每個像素格都掃描過後,就可以得出直方圖的數值
有了數值之後 我們就可以畫出直方圖了。


直方圖均化:
利用直方圖來對(對比度)進行調整
算法:將原本圖片的的像素色彩值f(x,y)的累積密度函數乘上最大色彩階值255
就可以得出均化後的像素色彩值g(x,y)
經常用於調整 圖片(太暗)或是(太亮)的情況
*是一個可逆的操作
缺點:可能會增加許多不需要的雜訊
公式:
g(x, y) = cdf ( f(x, y) ) * 255



2019年11月14日 星期四

05360135 曾睿芃 HW2

直方圖繪製與直方圖均化處理

直方圖(Histogram)是將影像進行像素數量統計,並將統計結果以直條圖的方式呈現。
下圖為用C++ Builder 將一張影像的直方圖顯示出來,並與Photoshop上影像色彩的直方圖做比較驗證。

下圖為影像在Photoshop上的直方圖


接下來是實作累積直方圖(Cumulative Histogram) 將直方圖中,統計色階為小於或等於該色階的像素總和。


最後做直方圖均化處理,直方圖均化(Histogram Equalization) 是一種自動調整影像對比的演算法。公式為:g(x, y) = cdf ( f(x, y) ) * 255cdf是累積密度函數值,可以運用先前計算的累積直方圖去乘最大色階值255


下圖為均化過後的影像與直方圖,可以看到直方圖上各色成像相當平均,影像更清晰,整個畫面也更美觀。


另外,直方圖均化處理的目的主要是將低對比的影像轉化成高對比的影像,所以將實作下面這個例子,此張照片直方圖顯示的色彩都集中在色階最暗的地方,經過均化後的影像,很明顯看出對比被強化。
均化前:


均化後:


最後在這次的作業花了很多時間在繪製直方圖上,剛開始繪製時會出現畫線超出Image的問題,首先統計色彩最大值並以等比例去縮放畫線的長度去解決。
等比例去縮放畫線長度的部分程式碼:
Image4->Canvas->MoveTo (fWidthOfBoard+(r*3)*fWidthOfPen,fBottomOfChart);
Image4->Canvas->LineTo (fWidthOfBoard(r*3)*fWidthOfPen,fBottomOfChart-fHeightOfChart*iBlue[r]/fMaxBlue);

2017年12月28日 星期四

04360163 林亭均 HW2

直方圖均化

討論:

直方圖均化是點處理類的影像處理。
直方圖均化的精神就是把本來集中在某一區段的色彩分散開來,讓視覺感受上不會集中在一個色調,更能看到圖片的細節。(因為人眼對色彩細微變化感覺不明顯)


公式:g(x, y) = cdf ( f(x, y) ) * 255

要注意這邊的cdf指的是累積機率,分母是總像素個數,分子是累積個數。255指的是均化後的圖的色彩值最大值。















^此圖為原圖的色彩(R)累積直方圖()與色彩統計直方圖()













^在原圖的累積直方圖上坡度較大的區間標示起來(A區間、B區間),表示有較多像素的色彩值是在這個區間,由色彩值統計直方圖可以驗證。













^此圖為 均化後的色彩(R)累積直方圖()與色彩統計直方圖()

我的程式介面介紹:


















^Image頁籤是用來顯示圖檔的




















^Histogram 頁籤是用來顯示統計圖片色彩值RGB的直方圖()以及累積值方圖()。圈選想看的色彩(RGB)後按下Draw畫直方圖,Clear清除畫布,AmplifyShrink分別用來放大縮小直方圖。















^原圖的直方圖

















^均化後的直方圖












^File 選單有開檔、存檔功能

































^Adjustment有負片、直方圖均化效果




















^原圖





















^負片效果






















^均化效果