2015年1月18日 星期日

01361030藍政歆HW5

程式碼:點我

圖引:點我

這次作業做的是YUV色彩模型轉換
上圖為介面,已經將圖給叫進來,右邊分別為BG平面、BR平面、GR平面及UV平面,底下有對應的B/G/R/Y可以輸入,因為會做轉換所以Y可以跟RGB使用同樣的值

 上圖為4個平面在BGRY=0時的狀況
 

 上圖為轉換後的影像狀況,右下角為所點選轉換的色彩

 上圖為BGRY=100時的狀況

 上圖為轉換後的影像狀況

最困難的部分不外乎是YUV的色彩轉換,不過因為老師有給公式所以總體上也不會說難到一個無法的地步
            iC=iY-16;
            iD=iU-128;
            iE=iV-128;
            iR=((298*iC+409*iE+128)>>8);
            iG=((298*iC-100*iD-208*iE+128)>>8);
            iB=((298*iC+516*iD+128)>>8);
此為YUV轉RGB的轉換公式
再來是將圖轉換顏色,這個需要先將RGB轉成YUV再轉成RGB

            iY=((66*iR+129*iG+25*iB+128)>>8)+16;  
            iU =((-38*iR-74*iG+112*iB+128)>>8)+128;   
            iV =((112*iR-94*iG-18*iB+128)>>8)+128;   
 此為RGB轉YUV的轉換公式
途中需要把RGB換成所點選的RGB而非原圖的RGB
 
這次作業是本學期最難的作業,難度至少比之前的作業難上兩倍之多,什麼時候該怎麼轉換的邏輯是必要的,除此之外其實沒什麼

資工三乙 01360565 陳韻竹 hw5

這次作業要做的是
RGB和YUV模型
 
RGB
顯示顏色的地方不需要的顏色設定為0
其他兩種顏色依照不同比例組合
例:RG將B設為0   RG依比例組合
點選要設定的顏色後
讀取作標位置的RGB值
利用RGB轉YUV的公式將Y算出來
之後再把YUV轉成RGB顯示
就會有不同顏色灰階的效果
RG
 GB
RB
 
YUV 
用拉霸調整Y的大小
調整透明度
把選的顏色加上原本圖片的顏色做運算後
再將YUV的色彩轉成RGB顯示
一樣會顯現出灰階的顯示
 
這次作業的YUV是跟RGB很不一樣的顏色模型
利用RGB調顏色會整個顏色改變
YUV會加入透明度所以做出像灰階一樣的色彩
這次作業需注意的地方是選取的顏色要先記錄下來
不然選好的顏色會跑掉
跟畫曲線一樣
如果沒有把XY座標記錄起來的話也會跑掉
而在YUV的透明度如果只有拉霸的大小
透明度會比較小
顏色間的變化比較看不出來
如果另外把Y加大顏色的差別會比較明顯
 
程式碼:https://www.dropbox.com/s/9u962f1gpdbxr5e/hw5.cpp?dl=0

資工三乙 01360930 陳宣宇 HW05

程式碼 : https://www.dropbox.com/s/t8uqy3ywlkud4tz/HW05.cpp?dl=0

這次的作業是要用YUV模型來調整影像色彩,並且學習到YUV是由RGB代入公式轉換而來的,經由不斷的轉換過程中,當然在實做時犯了許多代值代錯的方的錯誤,但在經過改正之後得到的結果是非常棒的。

以下 圖一 圖二 圖三 分別為 RB BG GR 的介面
圖三使用Bar來調整了Y的數值


圖一

圖二

圖三

圖四

HW5 Color Model

這次作業要畫製色彩模型
將其中一個顏色以bar進行控制,其他兩個全部輸出即可。

這次攻能利用TabControl完成,他與PageControl差別在於TabControl較於陽春,但如果是在顯示界面相同,資料不同時非常方便,若在TabControl內新增元件,切換分業實該元件依舊會顯示,但PageControl會完全新增空白頁。TabControl在切換時只要將資料存好,下次切換原畫面時再將資料載入即可。

裡面包含兩張Image,分別顯示Color Model與滑鼠點擊時的顏色。再以TrackBar調整第3個顏色。




最後是YUV Color Model




資工三乙 01360930 陳宣宇 HW04

程式碼 : https://www.dropbox.com/s/x5k2zp8y9y8bk09/HW04.cpp?dl=0

應為這次的作業有很多功能,平滑和銳化濾波器分了弱強兩種,而程式碼方面在卡在了一些小細節,所以也請教了同學,並在同學的幫助下完成了這次的作業。

這次的作業有許多的功能 :
1.平滑濾波器(弱)
2.平滑濾波器(強)
3.銳化濾波器(弱)
4.銳化濾波器(強)
5.中值濾波器
6.胡椒鹽


圖一為平滑濾波器(弱)   
圖二為平滑濾波器(強)
平滑是將影像的像素點的值用周圍的8格+上中間的1格平均後取代
弱和強雖然不明顯,但從領帶處便可看出

圖一

圖二

圖三為銳化濾波器(弱)
圖四為銳化濾波器(弱)
銳化是將圖片中的線條變得更明顯

圖三

圖四

圖五為中值濾波器
中值濾波器能用來清理胡椒鹽,也就是雜訊

圖五

圖六為胡椒鹽
胡椒鹽也就是像片中的雜訊

圖六

HW4 Filter

這次作業大致上有平滑、中值、銳化濾波器

以下是濾波前的原始圖案
原圖


平滑濾波目的是模糊化,實作上簡單來說就是將某一像素點與週圍8個像素點色彩值相加平均,成為該像素點新的色彩值。

平滑濾波

平滑濾波雖然目的是為了模糊化,但還是希望在選取色彩值可以更接近原始值,所以以加權平均的方式計算,離自己越近的像素給予更高的比重

平滑濾波-加權平均

接下來是中值濾波,中值濾波用於去除雜訊,將某一像素與周為8個像素色彩值進行排序,並將中間值取出成為該像素新的色彩值。
在這之前要先將圖片加入雜訊。

5%胡椒鹽雜訊

之後進行中值濾波,可以與上圖比較

中值濾波

最後是銳化濾波,目的是強化細節。在剛剛的平滑濾波是在範圍內所有值相加平均,類似於積分,反向思考,微分就是模糊化的相反,也就可以達到強化細節的作用。下圖是將水平及垂直的像素計算後的結果。

銳化濾波

下圖是再將對角的像素加入計算後的結果。

銳化濾波-加入對角

這次作業已成是的角度來看不難,只要觀念懂就行了。最簡單的地方在於只要寫好一個功能,其他功能只要稍微調整就可以了。






HW04 資工三甲 01361073 游宇程

  1. 平滑濾波器(強)公式:g(x,y)=[f(x-1,y-1)*1+f(x,y-1)*2+f(x+1,y-)*1+f(x-1,y)*2+f(x,y)*4+f(x+1,y)*2+f(x-1,y+1)*1+f(x,y+1)*2+f(x+1,y+1)*1]/16
  2. 平滑濾波器(弱)公式:g(x,y)=[f(x-1,y-1)+f(x,y-1)+f(x+1,y-)+f(x-1,y)+f(x,y)+f(x+1,y)+f(x-1,y+1)+f(x,y+1)+f(x+1,y+1)]/9
  3. 銳化濾波器(強)公式: g(x,y)=f(x,y)*9+f(x-1,y-1)*(-1)+f(x,y-1)*(-1)+f(x+1,y-1)*(-1)+f(x-1,y)*(-1)+f(x+1,y)*(-1)+f(x-1,y+1)*(-1)+f(x,y+1)*(-1)+f(x+1,y+1)*(-1)
  4. 銳化濾波器(強)公式: g(x,y)=f(x,y)*5+f(x,y-1)*(-1)+f(x-1,y)*(-1)+f(x+1,y)*(-1)+f(x,y+1)*(-1)
以上為該作業須用到之公式

原圖為下圖



弱化平滑的功能圖為下圖


強化平滑的功能如下圖




弱化銳化的功能如下圖



強化銳化的功能下圖




中值濾波器功能如下圖




最後的胡椒鹽雜訊



HW05 RGB 色彩模型


先製作3個模型
第一個沒有R
第二個沒有G
第三的沒有B

而下方的TrackBar是用來增加R or G or B
ex. 像第一個沒有紅色的元素在裡頭所以當調整TrackBar 時,他會漸漸參入R
如下圖


以此類推

另外作業需求需要當點到期色彩位置時要顯示出色彩顏色
如下圖


這個功能的程式碼

Image4->Canvas->Brush->Color =(TColor)RGB(TrackBar1->Position,Y,X);
Image4->Canvas->FillRect(Rect(0,0,335,500));
需要這幾行指令


而改變的值是

Color =(TColor)RGB(TrackBar1->Position,Y,X);





01361030藍政歆HW4

程式碼:點我

 (圖引id:47998307)


這次作業做的是濾波器,此作業有中值濾波器、平滑濾波器及銳化濾波器,圖.1是程式介面,已經把圖給叫進來了,此程式有個還原影像,可將影像還原成原本的樣子

然後先灑胡椒鹽(圖.2)之後進行中值濾波器(圖.3)
中值濾波器是找自己跟自己相鄰的8個點中排行第5的點,再讓他的值成為自己點的值,用此方法來去除雜訊。所以要先讓這9個點排序(泡泡排序即可),之後就容易找出大小第5的點,沒辦法完全去除是因為有時候雜訊剛好是排行第5,所以會讓自己的值變成雜訊的值。

之後是弱化平滑濾波器(圖.4)及強化平滑濾波器(圖.5)
平滑濾波器我還不太懂可以用在哪裡,不過做出來有讓圖平滑了一些。
弱化濾波器是將自己跟自己相鄰的8個點相加後除以9,再成為自己的值,大致上長得像下面的樣子
1 + 1 + 1   
(  1 + 1 + 1  )/9
1 + 1 + 1  
所以做出來會比較平滑一些

強化濾波器雖然也是相加在除,不過比重有差,自己的上下左右4個點要乘以2,自己則乘以4,相加後最後再除以16(1+2+1+2+4+2+1+2+1=16),再成為自己的值,大致上長得像下面的樣子
*1 + *2 + *1    
(  *2 + *4 + *2  )/9
*1 + *2 + *1   
  因為自己的比重最大,比較能保留住自己的值,所以感覺上變化沒有弱化來的明顯


最後是弱化銳化濾波器(圖.6)及強化銳化濾波器(圖.7)
 銳化濾波器把自己的特色強化,感覺上適合拿來找特徵點。
弱化濾波器是將自己點的值乘以五減掉上下左右四點的值,所以沒有用到角落的四個點,大致上長得像下面的樣子
+0  -1  +0
-1  +5  -1
+0  -1  +0
讓自己的特徵明顯

強化濾波器就用到了角落的4個點,將自己的值乘以9減掉自己相鄰的8個點,大致上長得像下面的樣子
-1  -1  -1
-1  +9  -1
-1  -1  -1
自己的特色更明顯了

 本次作業也比之前難一些,雖然濾波器的部分知道後就可以寫出來,但
bPtrImageRow=(Byte*)Image1->Picture->Bitmap->ScanLine[i];(這個是Image1)
        bPtrNewImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];
跟
bPtrImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];(這個是Image2)
        bPtrNewImageRow=(Byte*)Image2->Picture->Bitmap->ScanLine[i];
哪個濾波器要用哪個必須清楚,這次卡最久的部分是銳化濾波器用到下面那一個,導致出來的圖非常奇怪,找了好久終於找到原來要用上面那一個,除此之外沒大問題,本次作業可以對濾波器有些認識,是個不錯的練習

資工三甲 01360504 謝樺欣 HW05

該次作業需求:
  1. 以YUV色彩模型來調整影像
  2. Y需用TTrackBar
該次作業相關引用與公式:
  1. YUV轉RGB公式: Y=Y-16 , U=U-128 , V=V-128
     R = clip((298*Y                  +409*V + 128)>>8)

     G = clip((298*Y - 100*U - 208*V + 128)>>8)

     B = clip((298*Y + 516*U                  + 128)>>8)
  2. RGB轉YUV公式:
     Y  =  ( ( 66 * R + 129 * G + 25 * B + 128) >> 8) + 16

     U  =  ( ( -38 * R - 74 * G + 112 * B + 128) >> 8) + 128
     V  =  ( ( 112 * R - 94 * G - 18 * B  + 128) >> 8) + 128
心得感想:
  • 該次作業必須先搞懂什麼是YUV色彩模型,並且知道要以YUV色彩模型調整影像其NewY匯市原始影像的RGB套用公式轉換而成,而NewU和NewV則是以MouseDown的UV來代入,並且在以該NewY,NewU,NewV以公式換算成NewR,NewG,NewB並且調整Img2,我覺得其實程式就是多寫多做就會熟練,因為前幾次功課的經驗,即便難度增加,後面的作業卻比第二次作業用到的時間要短,能在該堂課程中學到如何寫出PS的一些常用功能真的很開心,感覺受益良多,在此感謝老師與助教的辛勞。
實作照片:




我的程式碼: