摘要:[Visual Basic 6.0] 影像處理 利用灰階公式將影像轉換為灰階化 (或使用特殊法)
[Visual Basic 6.0] 影像處理 利用灰階公式將影像轉換為灰階化 (或使用特殊法)
正常的狀況下,我們通常都會先求出某一點的 RGB 值,並且套用灰階公式:
0.299*R+ 0.587*G + 0.114*B
'# [Visual Basic 6.0] 影像處理 利用灰階公式將影像轉換為灰階化
'# 0xDe
' 灰階公式 0.299*R+ 0.587*G + 0.114*B
Private Sub ChangePicture_Click()
For I = 1 To 5000 Step 15
For J = 1 To 5000 Step 15
T = InputPicture.Point(I, J) ' 取出 I,J 點的 Point 值
R = T Mod 256 ' 第一次 除以 256 得到的餘數為 點的 R 值
T = T / 256
G = T Mod 256 ' 第二次 除以 256 得到的餘數為 點的 G 值
T = T / 256
B = T Mod 256 ' 第三次 除以 256 得到的餘數為 點的 B 值
T = 0.299 * R + 0.587 * G + 0.114 * B ' 套用公式
OutputPicture.PSet (I, J), RGB(T, T, T) ' 繪出灰階化
Next J
Next I
End Sub
其實也可以將公式化為:
(R+G+B) / 3
效果:
'# [Visual Basic 6.0] 影像處理 利用灰階公式將影像轉換為灰階化
'# 0xDe
' 灰階公式 0.299*R+ 0.587*G + 0.114*B
Private Sub ChangePicture_Click()
For I = 1 To 5000 Step 15
For J = 1 To 5000 Step 15
T = InputPicture.Point(I, J) ' 取出 I,J 點的 Point 值
R = T Mod 256 ' 第一次 除以 256 得到的餘數為 點的 R 值
T = T / 256
G = T Mod 256 ' 第二次 除以 256 得到的餘數為 點的 G 值
T = T / 256
B = T Mod 256 ' 第三次 除以 256 得到的餘數為 點的 B 值
T = (R + G + B) / 3 ' 特殊解
OutputPicture.PSet (I, J), RGB(T, T, T) ' 繪出灰階化
Next J
Next I
End Sub
我們來比較一下:
這是使用公式的灰階結果:
這是使用 (R+G+B) / 3 的灰階結果:
個人比較看下,基本上是沒有什麼差距,如果忘了公式,不仿可以使用 (R+G+B) / 3 平均值 ^^
[Visual Basic 6.0] 影像處理 利用灰階公式將影像轉換為灰階化.rar
#0xDe 從分享中學習
#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問