孤立點(Isolated Point)(VB 6.0)
孤立點(Isolated Point)(VB 6.0)¶
介紹¶
孤立點去除有助於消除雜點,所謂孤立點就是出現的單點,而其周圍並無相鄰的點。因此稱為孤立點,這些點有的時候會造成辨識上困難,或者是選取範圍的錯誤,所以我們透過以下的計算方式,來去除孤立點。
用法¶
程式碼¶
‘設定所有變數必須宣告才能使用
Option Explicit
‘表單起始載入事件
Private Sub Form_Load()
‘picture1載入影像
Picture1.Picture = LoadPicture(App.Path & "\Lai, Tai-Yu.bmp")
‘宣告巡覽X軸變數
Dim lngX As Long
‘宣告巡覽Y軸變數
Dim lngY As Long
‘宣告結果像素變數
Dim intS
‘宣告矩陣第一列變數
Dim intA, intB, intC
‘宣告矩陣第二列變數
Dim intD, intE, intF
‘宣告矩陣第三列變數
Dim intG, intH, intI
‘設定picture1控制項採用像素為單位
Picture1.ScaleMode = 3
‘使picture1控制項的自動重繪有效
Picture1.AutoRedraw = True
‘設定picture2控制項採用像素為單位
Picture2.ScaleMode = 3
‘使picture2控制項的自動重繪有效
Picture2.AutoRedraw = True
‘巡覽picture1的Y軸
For lngY = 0 To Picture1.ScaleHeight
‘巡覽picture1的X軸
For lngX = 0 To Picture1.ScaleWidth
‘讓電腦有多餘時間處理其他事件
DoEvents
‘像素值減去255,是代表當遇到白色的時候,回傳值為零
‘反之若遇到黑色則為-255
intA = (Picture1.Point(lngX - 1, lngY - 1) And &HFF) - 255
intB = (Picture1.Point(lngX, lngY - 1) And &HFF) - 255
intC = (Picture1.Point(lngX + 1, lngY - 1) And &HFF) - 255
intD = (Picture1.Point(lngX - 1, lngY) And &HFF) - 255
intE = (Picture1.Point(lngX, lngY) And &HFF) - 255
intF = (Picture1.Point(lngX + 1, lngY) And &HFF) - 255
intG = (Picture1.Point(lngX - 1, lngY + 1) And &HFF) - 255
intH = (Picture1.Point(lngX, lngY + 1) And &HFF) - 255
intI = (Picture1.Point(lngX + 1, lngY + 1) And &HFF) – 255
'當結果像素等於零時,則設定為白色;反之則設定為黑色
intS = intE And (intA Or intB Or intC Or intD Or intF Or intG Or intH Or intI)
If intS = 0 Then
intS = 255
Else
intS = 0
End If
‘依據結果像素變數,設定picture2的顏色
Picture2.PSet (lngX, lngY), RGB(intS, intS, intS)
‘跳回X軸迴圈下一次
Next lngX
‘跳回Y軸迴圈下一次
Next lngY
‘結束事件副程式
End Sub
例外¶
如果執行檔不能執行,請先安裝vbrun60sp6.exe。
參考¶
[1] https://www.wikipedia.org/
[2] Kuo-Jen, Lien, Digital Image Processing, ISBN: 9789574998333, Scholars Books Co., Ltd.
致謝¶
感謝 (維基自由百科, Kuo-Jen, Lien) 提供的知識。