Skip to main content

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
    巡览picture1Y
    For lngY = 0 To Picture1.ScaleHeight
        巡览picture1X
        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

下载原始档及执行档:

例外

1. 如果执行档不能执行,请先安装vbrun60sp6.exe


参考

[2] Kuo-Jen, Lien, Digital Image Processing, ISBN: 9789574998333, Scholars Books Co., Ltd.

致谢

感谢 (维基自由百科, Kuo-Jen, Lien) 提供的知识。


Popular posts from this blog

數位影像處理:最佳化處理策略之快速消除扭曲演算法

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Python 日期與時間的處理

數位影像處理:最佳化處理策略之快速消除扭曲演算法

Image

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Image

Python 日期與時間的處理

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (06. 題庫測驗系統)

Image

修復損毀的 SQLite DB 資料庫

Image

用10種程式語言做影像二值化(Image binarization)

解決 ValueError: If using all scalar values, you must pass an index

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (04. 人事考勤管理系統)

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (07. 收據列印程式)

Image