孤立點(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) 提供的知識。