国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

在VB6.0中完成大面積不規(guī)則區(qū)域的填充

在VB6.0中完成大面積不規(guī)則區(qū)域的填充

更新時間:2021-11-16 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

一、引言
區(qū)域填充是指先將區(qū)域內(nèi)的一個像素 ,一般稱為種子點賦予給定的顏色和輝亮,然后將該顏色擴展到整個區(qū)域內(nèi)的過程。
二、已有的填充算法及缺點
1.掃描線法
掃描線法可以實現(xiàn)已知多邊形域邊界的填充,多邊形域可以是凹的、凸的、還可以是帶孔的。該填充方法是按掃描線的順序,計算掃描線與待填充區(qū)域的相交區(qū)間,再用要求的顏色顯示這些區(qū)間的像素,即完成填充工作。這里區(qū)間的端點通過計算掃描線與多邊形邊界線的交點獲得。所以待填充區(qū)域的邊界線必須事先知道,因此它的缺點是無法實現(xiàn)對未知邊界的區(qū)域填充。
2.邊填充算法
邊填充的基本思想是:對于每一條掃描線和每條多邊形邊的交點,將該掃描線上交點右方的所有像素取補。對多邊形的每條邊作些處理,多邊形的順序隨意。該算法適用于具有幀緩沖器的圖形系統(tǒng),按任意順序處理多邊形的邊。處理每條邊時,僅訪問與該邊有交的掃描線上交點右方的像素。所有的邊都被處理之后,按掃描線順序讀出幀緩沖器的內(nèi)容,送入顯示設(shè)備。該算法的優(yōu)點是簡單,缺點是對于復(fù)雜圖形,每一像素可能被訪問多次,重要的是必須事先知道待填充多邊形的邊界,所以在填充未知邊界的區(qū)域時不適用。
3.遞歸算法
遞歸算法的優(yōu)點是編程實現(xiàn)時,語言簡潔。但在VB6.0實際編程實現(xiàn)時,這種遞歸算法填充稍稍大一些的圖形就會出現(xiàn)堆棧溢出現(xiàn)象,據(jù)我們的實踐證明,遞歸算法只能連續(xù)遞歸深度在2090次左右,也就是說,如果待填充的圖形大于二千多個像素那么堆棧溢出。下面給出八連通填充方法的VB程序?qū)崿F(xiàn)(四連通算法同理)。
Public Sub area(p, q As Integer)
If ((imagepixels(0, p, q) = red1) And (imagepixels(1, p, q) = green1) And (imagepixels(2, p, q) = blue1)) Then
imagepixels(0, p, q) = 0: imagepixels(2, p, q) = 0: imagepixels(1, p, q) = 0
Picture1.PSet (p, q), RGB(0, 0, 0)
Call area(p + 1, q): Call area(p, q + 1)
Call area(p - 1, q): Call area(p, q - 1)
Call area(p + 1, q + 1): Call area(p + 1, q - 1)
Call area(p - 1, q + 1): Call area(p - 1, q - 1)
Else: Exit Sub
End If
End Sub
三、 算法的基本思想
本算法采用兩個隊列(FIFO)filled和unfilled來實現(xiàn)區(qū)域填充。設(shè)計步驟如下:
1. 找出該區(qū)域內(nèi)部任意一點,作為填充種子。
2. 填充該點,并把該點存入隊列filled。
3. 按逆時針,判斷該點的上、右、下、左鄰像素是否在filled隊列內(nèi)。如果在filled,說明該相鄰點已填充,若不在filled隊列內(nèi),則判斷該相鄰點在未填充隊列unfilled,如果不在則將該相鄰點存入unfilled。
4. 判斷未填充隊列是否為空,若不空,則從隊列unfilled中取出頭元素,轉(zhuǎn)向第三步。若為空則表示已完成所有像素填充,結(jié)束程序。
四、 程序?qū)崿F(xiàn)及說明
本算法定義的隊列突破了遞歸算法中受堆棧空間大小的限制的束縛,因為它直接占用內(nèi)存空間,與堆棧大小無關(guān)。以下源程序在Window 2000環(huán)境下用VB6.0編程實現(xiàn)。
建立如圖所示標準窗體并畫上控件-2個CommandButton控件和一個PictureBox控件,調(diào)整大小,并設(shè)置控件的屬性。
4.1 通用聲明
Dim Xx As Integer, Yy As Integer
Dim Array1(9000, 2), Array2(9000, 2) As Integer
4.2 采集
Private Sub Command1_Click()
Picture1.MousePointer = 2
End Sub
4.3 選取種子
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Xx = X '選擇并記錄種子點的位置
Yy = Y
End Sub
4.4 區(qū)域填充
Private Sub Command2_Click()
Dim i, j, k As Integer, BoundPoint1, BoundPoint2 As Integer
Dim Flag As Boolean, Pixel As Long
Dim Red, Green, Blue As Integer, Bound As Boolean
Flag = True '初始化
i = Xx: j = Yy: BoundPoint1 = 1
Array1(1, 1) = i
Array1(1, 2) = j
'搜索邊界點
Do While BoundPoint1 > 0
BoundPoint2 = 0
For k = 1 To BoundPoint1
i = Array1(k, 1)
j = Array1(k, 2)
'搜索右點
Pixel& = Picture1.Point(i, j + 1)
Call IsBound(Pixel&, Bound)
If Not Bound Then
BoundPoint2 = BoundPoint2 + 1
Array2(BoundPoint2, 1) = i
Array2(BoundPoint2, 2) = j + 1
Picture1.PSet (i, j + 1), RGB(255, 255, 255)
End If
'搜索左鄰點
Pixel& = Picture1.Point(i, j - 1)
Call IsBound(Pixel&, Bound)
If Not Bound Then
BoundPoint2 = BoundPoint2 + 1
Array2(BoundPoint2, 1) = i
Array2(BoundPoint2, 2) = j - 1
Picture1.PSet (i, j - 1), RGB(255, 255, 255)
End If
'搜索上鄰點
Pixel& = Picture1.Point(i - 1, j)
Call IsBound(Pixel&, Bound)
If Not Bound Then
BoundPoint2 = BoundPoint2 + 1
Array2(BoundPoint2, 1) = i - 1
Array2(BoundPoint2, 2) = j
Picture1.PSet (i - 1, j), RGB(255, 255, 255)
End If
'搜索下鄰點
Pixel& = Picture1.Point(i + 1, j)
Call IsBound(Pixel&, Bound)
If Not Bound Then
BoundPoint2 = BoundPoint2 + 1
Array2(BoundPoint2, 1) = i + 1
Array2(BoundPoint2, 2) = j
Picture1.PSet (i + 1, j), RGB(255, 255, 255)
End If
Next k
'數(shù)組array2 中的數(shù)據(jù)傳給array1
BoundPoint1 = BoundPoint2
For k = 1 To BoundPoint1
Array1(k, 1) = Array2(k, 1)
Array1(k, 2) = Array2(k, 2)
Next k
Picture1.Refresh
Loop
End Sub
Public Sub IsBound(P As Long, Bound As Boolean) '判斷P是否為邊界點
Red = P& Mod 256
Bound = False
Green = ((P& And &HFF00) / 256&) Mod 256&
Blue = (P& And &HFF0000) / 65536
If Red = 255 And Green = 255 And Blue = 255 Then
Bound = True
End If
End Sub
五、 結(jié)束語
本算法實現(xiàn)了在對填充區(qū)域的形狀、大小均未知的情況下,以種子點開始向四周對該區(qū)域進行“擴散式”的填充。本算法解決了傳統(tǒng)的遞歸算法在填充較大區(qū)域時(本例中填充區(qū)約9800Pixels)堆棧溢出的缺點。我們的實驗結(jié)果顯示,本算法就填充區(qū)域大小和運算速度而言,都遠遠超過了傳統(tǒng)的遞歸算法。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        激情五月婷婷综合网| 一区二区高清在线| 亚洲少妇中出一区| 成人动漫视频在线| 亚洲图片激情小说| 欧美性xxxxxx少妇| 日本午夜精品一区二区三区电影| 在线播放中文字幕一区| 免费xxxx性欧美18vr| 欧美成人性战久久| 成人免费福利片| 亚洲一二三区在线观看| 日韩欧美成人一区二区| 成人精品免费网站| 午夜在线电影亚洲一区| 精品国产91九色蝌蚪| 色悠悠亚洲一区二区| 日韩av电影一区| 国产精品麻豆一区二区| 欧美人牲a欧美精品| 国产精品1区2区3区在线观看| 中文字幕一区二区三区av| 91精品国产综合久久久久久漫画| 国产精品12区| 午夜国产精品影院在线观看| 国产精品婷婷午夜在线观看| 91 com成人网| 色综合夜色一区| 国产一区二区不卡| 蜜臀av国产精品久久久久 | 精品少妇一区二区三区视频免付费 | 国产精品初高中害羞小美女文| 欧美区一区二区三区| 国产91丝袜在线观看| 日本不卡视频在线| 亚洲午夜精品在线| 中文字幕在线播放不卡一区| 精品国产人成亚洲区| 精品视频在线免费看| 不卡大黄网站免费看| 国产在线视频精品一区| 婷婷综合久久一区二区三区| 亚洲猫色日本管| 国产精品久久久99| 国产日韩欧美一区二区三区乱码 | 欧美一区二区日韩| 色婷婷亚洲综合| 成人福利在线看| 国产成人精品三级麻豆| 久久成人综合网| 蜜臀av国产精品久久久久| 青青草国产成人av片免费| 亚洲成精国产精品女| 亚洲欧美日韩综合aⅴ视频| 国产视频一区二区三区在线观看| 日韩一区二区精品葵司在线| 91麻豆精品国产91久久久资源速度 | 亚洲一区国产视频| 亚洲天堂福利av| 伊人性伊人情综合网| 一区二区三区日韩精品视频| 亚洲综合小说图片| 午夜激情综合网| 奇米亚洲午夜久久精品| 久久99精品一区二区三区三区| 麻豆91小视频| 国产成人无遮挡在线视频| 国产suv精品一区二区883| 成人精品gif动图一区| 成人avav影音| 日本乱人伦aⅴ精品| 欧美日韩一区二区在线观看| 91精品国产综合久久精品麻豆| 日韩女优av电影| 国产精品免费观看视频| 一区二区成人在线| 美女脱光内衣内裤视频久久网站| 久久99国产精品久久99果冻传媒| 激情丁香综合五月| 99久久精品免费精品国产| 欧美亚洲免费在线一区| 欧美一区二区三区视频免费| 久久久精品天堂| 亚洲自拍都市欧美小说| 久久精工是国产品牌吗| 成人99免费视频| 97国产一区二区| 欧美va亚洲va在线观看蝴蝶网| 26uuu国产一区二区三区| 国产精品无人区| 丝袜亚洲另类欧美| 成人精品小蝌蚪| 欧美日本在线一区| 久久精品一区二区三区av| 1区2区3区欧美| 精品一区二区在线视频| 色综合天天综合在线视频| 欧美日韩久久一区| 久久综合久久综合九色| 欧美国产日本韩| 日韩影院精彩在线| 本田岬高潮一区二区三区| 欧美一区二区三区四区五区| 久久久久99精品一区| 一区二区三区精品视频| 国产不卡视频一区二区三区| 欧美亚洲尤物久久| 中文字幕一区二区三区不卡| 狠狠色丁香九九婷婷综合五月| 91丨九色丨国产丨porny| 欧美成人vr18sexvr| 一区二区三区中文字幕在线观看| 国产一区二区精品久久| 91精品麻豆日日躁夜夜躁| 亚洲男人的天堂一区二区| 久久精品二区亚洲w码| 欧美性色黄大片手机版| 国产精品国产自产拍高清av王其| 蜜臀av一区二区在线免费观看| 欧美日韩免费一区二区三区视频| 中文字幕欧美一| 国产传媒日韩欧美成人| 日韩一区二区在线观看| 亚洲福利一二三区| 在线视频综合导航| 亚洲视频在线一区观看| 成人激情校园春色| 欧美mv日韩mv| 国产一区二区三区久久久| 欧美伦理影视网| 亚洲高清久久久| 欧美日韩久久久久久| 自拍偷拍国产精品| 在线中文字幕一区二区| 亚洲欧洲国产专区| av亚洲产国偷v产偷v自拍| 国产性色一区二区| 精品一区二区在线播放| 欧美成人一级视频| 性久久久久久久| 欧美精品视频www在线观看| 五月天一区二区三区| 91精品国产入口| 国产精品一区久久久久| 18涩涩午夜精品.www| 欧美影视一区二区三区| 日本不卡一区二区三区| 日韩欧美国产电影| 成人一区在线观看| 国产精品素人一区二区| 91麻豆国产在线观看| 香蕉影视欧美成人| 26uuu国产电影一区二区| 丰满放荡岳乱妇91ww| 亚洲精品乱码久久久久久日本蜜臀| 欧美综合视频在线观看| 亚洲国产精品综合小说图片区| 欧美情侣在线播放| 国产在线精品一区二区夜色 | 日本不卡的三区四区五区| 精品国产伦理网| 99久久精品99国产精品 | 欧美一区二区三区视频免费播放 | 色吊一区二区三区| 亚洲午夜影视影院在线观看| 欧美一区二区三区男人的天堂| 另类调教123区| 亚洲欧洲日韩在线| 欧美亚洲一区二区在线| 精品一区二区三区在线观看| 国产精品免费av| 7777精品久久久大香线蕉| 国产suv精品一区二区883| 亚洲精品乱码久久久久久日本蜜臀| 欧美精品v日韩精品v韩国精品v| 国产精品88av| 一区二区三区蜜桃| 国产喂奶挤奶一区二区三区| 欧美日韩一区 二区 三区 久久精品| 成人免费观看av| 麻豆视频观看网址久久| 亚洲卡通欧美制服中文| 精品久久一区二区三区| 色综合久久久久网| 久久99国内精品| 亚洲va韩国va欧美va精品| 最新欧美精品一区二区三区| 日韩精品自拍偷拍| 欧美日本高清视频在线观看| 国产精品羞羞答答xxdd| 亚洲国产成人91porn| 亚洲视频资源在线| 久久精品视频一区二区三区| 在线不卡免费欧美| 欧美日韩视频一区二区| 91丨porny丨国产| 成人性生交大片| 国产精品18久久久久久vr| 视频一区视频二区中文| 亚洲午夜久久久久久久久久久|