TWI383336B - 多邊形快速填色方法 - Google Patents
多邊形快速填色方法 Download PDFInfo
- Publication number
- TWI383336B TWI383336B TW97144183A TW97144183A TWI383336B TW I383336 B TWI383336 B TW I383336B TW 97144183 A TW97144183 A TW 97144183A TW 97144183 A TW97144183 A TW 97144183A TW I383336 B TWI383336 B TW I383336B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- polygon
- record
- column
- vertices
- Prior art date
Links
Landscapes
- Image Generation (AREA)
Description
本發明係有關於一種快速填色方法,特別是一種多邊形快速填色方法。
自從邁入數位化的科技時代之後,配合著電腦的進步,影像處理變成非常熱門的話題之一。所謂的影像處理,指的就是將拍攝下來的影像,透過掃描器,或是直接運用數位相機拍攝後,在電腦中以應用軟體進行影像的處理。因為其類似傳統攝影時的暗房,因此影像處理軟體又有數位暗房之稱。不過它免去暗房的不見天日以及與藥水為伍,還有高成本痛苦。僅要幾個動作,效果立即呈現,甚至可以變化無數有趣的影像,並且利用電腦可以大量複製、印出、或是透過網際網路傳送。
填圖計算面積之技術是影像處理技術中非常重要的課題之一,而由於影像資料量一般都非常大,所以需處理之計算量亦非常大,處理時間則相對增加。但在成本有限、硬體的加速運算有限的條件下,要使處理速度加快,則必須從軟體著手。目前常見之填圖計算面積之技術處理時間往往都過長,且處理時所佔用的記憶體空間也過大,不適合在硬體上實現。因此若能發明一種快速方法,快速填滿多邊形之圖形,使計算速度提昇,且有利於在資源有限之硬體(例如人機界面HMI)上實現,不需複雜之硬體架構,實是影像處理者之福。
因此本發明之目的即在改善上述習知技術之運算緩慢,並且可以一般硬體架構即可達成,不需複雜之硬體架構。
為達成上述目的,本發明之多邊形快速填色方法主要步驟包含:將一記憶體空間內所有座標點之記錄值歸零、於該記憶體空間內輸入一多邊形之頂點之座標、依序連接該些頂點以決定兩該頂點之間的連接點、設定每一該些頂點之記錄值為一旗標值或一線段值、設定該些連接點之記錄值為一旗標值或一線段值、依據該些頂點之該些記錄值與該些連接點之該些記錄值處理該記憶體空間內之該些座標點之該些記錄值,以求得該多邊形之面積。本發明之多邊形快速填色方法可以一般硬體架構即可達成,不需複雜之硬體架構。
請先參考第七圖至第十一圖,其係為本發明之多邊形快速填色方法可應用用途之說明。本發明之多邊形快速填色方法之目的即在計算出例如該第七圖至該第十一圖中之多邊形的著色面積,其中該些多邊形面積係以有序的節點(ordered node)定義。以下將就本發明之多邊形快速填色方法之實施方式做詳盡說明。
請參考第一圖,其係為本發明之多邊形快速填色方法之流程圖。首先,步驟S10將一記憶體空間Pattern(大小為R列乘C行)內所有座標點(coordinate point)之記錄值(record value)歸零,以為下一步驟做準備。配合第十二圖,其係為記憶體空間示意圖。該記憶體空間包含記錄多數座標點(每一座標點之一記錄值代表一圖素(pixel))之矩陣記憶單元,且假設該記憶體空間包含C行(X方向)×R(Y方向)列之座標點,因此隨著座標Y的下標變化,則座標點的列也會變化。本發明下列步驟係以逐列處理之方式,但是須知也可用逐行處理方式,皆在本發明範圍之內。再者,在第十二圖所示之記憶體空間中,座標係以由左至右(X方向)、由上至下(Y方向)增加。接著,回到第一圖,步驟S20於該記憶體內輸入一多邊形(N邊形)頂點之座標依序為(X1
,Y1
)…(XN
,YN
)。然後,步驟S30依序連接該些頂點以決定兩該頂點之間的連接點,例如(X1
,Y1
)連到(X2
,Y2
)、(X2
,Y2
)連到(X3
,Y3
)…等等,其中最後一頂點(XN
,YN
)則連接到第一頂點(X1
,Y1
)。繼之,步驟S40設定每一該些頂點之記錄值為一旗標值或一線段值(容後詳述)。步驟S50設定該些連接點之記錄值為一旗標值或一線段值(容後詳述)。步驟S60依據該些頂點之該些記錄值與該些連接點之該些記錄值處理該記憶體空間內之該些座標點之該些記錄值,以求得該多邊形之面積(容後詳述)。
參見第四圖,在陣列狀的記憶體空間中,每一記憶單元概稱為座標點(coordinate point),而多邊形係由多數有序頂點定義,亦即圖中標示為m,m+1之點。再者,為了計算多邊形面積,兩個頂點之連線所界定之座標點稱為連接點(connection point),亦即圖中為陰影凸顯之點。
請參考第二圖,其係為本發明之設定每一該些頂點之記錄值為一旗標值或一線段值之流程圖,用以詳述前述該步驟S40設定每一該些頂點之記錄值為一旗標值或一線段值。假設前述該記憶體內,在N個頂點中,處理第m個頂點,即目前處理的m頂點(current node)的座標稱為(Xm
,Ym
),則前一頂點(previous node)座標則稱為(Xm-1
,Ym-1
),下一頂點(next node)座標則稱為(Xm+1
,Ym+1
),XY即為習知之XY軸座標值,若m為第一點則其前一頂點(Xm-1
,Ym-1
)即為(XN
,YN
)。首先步驟S420判定目前頂點與前一頂點及下一頂點是否有反折(reflection)關係,亦即判斷下列兩種狀況:
(1)(Ym
>=Ym+1
且Ym
<Ym-1
)
(2)(Ym
<Ym+1
且Ym
>=Ym-1
)
是否其中之一成立。若是,表示目前頂點與前一頂點及下一頂點並未反折,則進入步驟S440,設定該目前頂點(Xm
,Ym
)之記錄值為一旗標值(FLAG);若否,表示目前頂點與前一頂點及下一頂點有反折,則進入步驟S460,設定該目前頂點(Xm
,Ym
)之記錄值為一線段值(LINE)。本發明之處理頂點屬性之流程可以軟體程式語言表達如下:
請參考第三圖,其係為本發明之設定兩個頂點間連接點之記錄值為一旗標值或一線段值之流程圖,用以詳述前述該步驟S50設定該些連接點之記錄值為一旗標值或一線段值之部份步驟。在此步驟係處理前述該目前頂點(Xm
,Ym
)連線到該下一頂點(Xm+1
,Ym+1
)之連線上的連接點之記錄值。首先於步驟S510,判斷該目前頂點之列座標Ym
是否不等於該下一頂點之列座標Ym+1
,若否,代表該列座標Ym
等於該列座標Ym+1
,則進入步驟S590結束;若是,代表該目前頂點與下一頂點不在同一列,此時進入步驟S520,判斷該列座標Ym
是否大於該列座標Ym+1
,若是,則進入步驟S530,由該(Ym
)-1列處理至該(Ym+1
)+1列;若否,則進入步驟S540,由該(Ym+1
)-1列處理至該(Ym
)+1列。這樣的流程的目的在僅處理該頂點(Xm
,Ym
)連線到該頂點(Xm+1
,Ym+1
)之連線上的連接點之記錄值,但不包含(Xm
,Ym
)與(Xm+1
,Ym+1
)兩頂點。接著,步驟S550判斷換列的第一個連接點的記錄值是否為一旗標值,即該(Xm
,Ym
)連線到該(Xm+1
,Ym+1
)之連線點在換列時,該換列的第一連接點的記錄值是否為一旗標值,若是,則進入步驟S560,設定該換列的第一連接點的記錄值為一線段值;若否,則進入步驟S570,設定該換列的第一連接點的記錄值為一旗標值。這樣的流程的目的在於設定該換列的第一連接點的記錄值為一旗標值,但若是原本該換列的第一連接點的記錄值已經為一旗標值,則轉為設定該換列的第一連接點的記錄值成為一線段值。接著進入步驟S580,設定該換列的其餘連接點的記錄值為線段值。如對於多邊形所有兩個頂點之間的連接點都使用如第三圖之步驟處理,即可達成第一圖步驟S50之連接點記錄值設定步驟。
為了更明白解釋上述流程,請參考第四圖,其係為本發明之設定該些連接點之記錄值為一旗標值或一線段值之一實施例。圖內每一格即代表該記憶體內之位置,在此將處理該頂點(Xm
,Ym
)連接到該頂點(Xm+1
,Ym+1
)之連線上的連接點之屬性。該第四圖圖中記號m代表該頂點(Xm
,Ym
),記號m+1代表該頂點(Xm+1
,Ym+1
),記號F代表一旗標值,記號L代表一線段值。由此可以看出在該(Xm
,Ym
)連接到該(Xm+1
,Ym+1
)之連線上的連接點,在換列的第一連接點設定其記錄值為一旗標值F,其餘連接點之記錄值設定為線段值L。
並請參考第五圖,其係為本發明之設定該些連接點之記錄值為一旗標值或一線段值之又一實施例,旨在說明該步驟S560設定該換列的第一連接點的記錄值為一線段值。內容請參考上述該第四圖之解釋,但請特別注意該第四圖之第四列原本之第一連接點的記錄值為一旗標值F,在該第五圖因為該步驟S550換列的第一點係為一旗標值F,於是進入該步驟S560設定該換列的第一連接點之記錄值為一線段值L。
經過上述之流程,設定完該些頂點與該些頂點連線上之連接點的記錄值為一旗標值或一線段值後,接著是要計算該些頂點順序連線所形成之面積(即該第七圖至該第十一圖中著色面積)。請參考第六圖,其係為本發明之處理該多邊形內一列數值之流程圖,用以詳述上述該步驟S60依據該些頂點之該些記錄值與該些連接點之該些記錄值處理該記憶體空間內之該些座標點之該些記錄值,以求得該多邊形之面積,例如可以計算該些記錄值為一特定記錄值時(邏輯值1)的總量以求得著色面積。處理方式是由該記憶體之第一列的每一座標點開始,完成後再進行第二列,一直到最後一列,並且在每一列是由左至右對每一座標點進行處理。參見第六圖,對每一列而言,首先步驟S610開始,接著進入步驟S620判斷是否目前處理座標點之記錄值為一旗標值,若是,則進入步驟S630,開始著色(或開始於該座標點的記錄值填入1),若在處理同一列剩餘座標點之記錄值再遇到一旗標值則停止著色(或停止於該座標點的記錄值填入1),接著再回到該步驟S610開始;若否(未遇到一旗標值),則進入步驟S640,判定是否遇到該處理列的終點,若是,則進入步驟S650結束處理該列;若否,則回到該步驟S610開始。如此,逐列處理完該記憶體內所有列的所有座標點後,再加總所有列內被著色(或其記錄值被填入數值為邏輯1)之該座標點數量,即可知道欲求多邊形圖形之面積。本發明之處理多邊形內數值之流程可以軟體程式語言表達如下(NC為該記憶體空間之寬;NR為該記憶體空間之長):
請參考該第七圖至該第十一圖,如前所述,其係為本發明之多邊形快速填色方法之實施例。該些頂點依照號碼依序連接,接著依照本發明之多邊形快速填色方法即可算出著色面積。
綜上所述,當知本發明已具有產業利用性、新穎性與進步性,又本發明之構造亦未曾見於同類產品及公開使用,完全符合發明專利申請要件,爰依專利法提出申請。
S10~60...步驟
S420~S650...步驟
m(Xm
,Ym
)...位置
m+1(Xm+1
,Ym+1
)...位置
F...旗標值
L...線段值
第一圖為本發明之多邊形快速填色方法之流程圖。
第二圖為本發明之設定每一該些頂點之記錄值為一旗標值或一線段值之流程圖。
第三圖為本發明之設定兩頂點間之連接點之記錄值為一旗標值或一線段值之流程圖。
第四圖為本發明之設定該些連接點之記錄值為一旗標值或一線段值之一實施例。
第五圖為本發明之設定該些連接點之記錄值為一旗標值或一線段值之又一實施例。
第六圖為本發明之處理該多邊形內一列數值之流程圖。
第七圖至第十一圖為本發明之多邊形快速填色方法之實施例。
第十二圖為記憶體空間示意圖。
S10~60...步驟
Claims (9)
- 一種多邊形快速填色方法,係應用於一記憶體空間內,以計算該記憶體空間內之一多邊形之面積,其中該記憶體空間包含在一X軸與一Y軸延伸之多數陣列狀座標點,且該多邊形係由多數之有序頂點所界定,該多邊形快速填色方法包含:(A)將該記憶體空間內所有座標點之記錄值歸零;(B)於該記憶體空間內輸入該多邊形之該些頂點之座標;(C)依序連接該些頂點以決定兩該頂點之間的連接點;(D)設定每一該些頂點之記錄值為一旗標值或一線段值;(E)設定該些連接點之記錄值為一旗標值或一線段值;及(F)依據該些頂點之該些記錄值與該些連接點之該些記錄值處理該記憶體空間內之該些座標點之該些記錄值,以求得該多邊形之面積,其中,該步驟(D)更包含:(D1)若目前處理的頂點的Y值不小於下一頂點的Y值,且該目前處理的頂點的Y值小於前一頂點的Y值,則設定該目前處理的頂點的記錄值為一旗標值。
- 如申請專利範圍第1項之多邊形快速填色方法,其中,該步驟(D)更包含: (D2)若該目前處理的頂點的Y值小於該下一頂點的Y值,且該目前處理的頂點的Y值不小於該前一頂點的Y值,則設定該目前處理的頂點的記錄值為一旗標值。
- 如申請專利範圍第2項之多邊形快速填色方法,其中,該步驟(D)更包含:(D3)對於未被設定為一旗標值之該目前處理的頂點,則設定其記錄值為一線段值。
- 如申請專利範圍第3項之多邊形快速填色方法,其中,該步驟(E)更包含:(E1)逐列處理兩頂點之間的連接點;及(E2)若換列的第一連接點之記錄值非為旗標值,則設定該第一連接點之記錄值為旗標值。
- 如申請專利範圍第4項之多邊形快速填色方法,其中,該步驟(E)更包含:(E3)若換列的第一連接點之記錄值為旗標值,則設定該第一連接點之記錄值為線段值。
- 如申請專利範圍第5項之多邊形快速填色方法,其中,該步驟(F)對該記憶體空間之處理順序為由左至右,由上至下,該步驟(F)更包含:(F1)若於一處理列上的一座標點的記錄值為一旗標值,則開始著色,若後續座標點的記錄值也是一旗標值則停止著色。
- 如申請專利範圍第6項之多邊形快速填色方法,其中,該步驟(F)更包含: (F2)若於該處理列上的座標點的記錄值未遇到一旗標值,則判定是否為該處理列之終點;及(F3)若遇到該處理列之終點,則結束處理該處理列。
- 如申請專利範圍第7項之多邊形快速填色方法,其中,該步驟(F)更包含:(F4)加總該記憶體空間內所有座標點之特定記錄值數量,即為該多邊形之面積。
- 如申請專利範圍第8項之多邊形快速填色方法,其中該特定記錄值為對應邏輯1之記錄值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97144183A TWI383336B (zh) | 2008-11-14 | 2008-11-14 | 多邊形快速填色方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97144183A TWI383336B (zh) | 2008-11-14 | 2008-11-14 | 多邊形快速填色方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201019270A TW201019270A (en) | 2010-05-16 |
TWI383336B true TWI383336B (zh) | 2013-01-21 |
Family
ID=44831685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97144183A TWI383336B (zh) | 2008-11-14 | 2008-11-14 | 多邊形快速填色方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI383336B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4899294A (en) * | 1986-11-18 | 1990-02-06 | International Business Machines Corporation | Graphics processing system |
US4914729A (en) * | 1986-02-20 | 1990-04-03 | Nippon Gakki Seizo Kabushiki Kaisha | Method of filling polygonal region in video display system |
US5016001A (en) * | 1988-01-30 | 1991-05-14 | Kabushiki Kaisha Toshiba | Pattern data generating system |
TW200301874A (en) * | 2002-01-14 | 2003-07-16 | Hewlett Packard Co | Systems and methods for processing boundary information of a graphical object |
US6639593B1 (en) * | 1998-07-31 | 2003-10-28 | Adobe Systems, Incorporated | Converting bitmap objects to polygons |
CN101082980A (zh) * | 2006-06-01 | 2007-12-05 | 上海吉量软件科技有限公司 | 一种新型的交点配对填充算法 |
-
2008
- 2008-11-14 TW TW97144183A patent/TWI383336B/zh not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914729A (en) * | 1986-02-20 | 1990-04-03 | Nippon Gakki Seizo Kabushiki Kaisha | Method of filling polygonal region in video display system |
US4899294A (en) * | 1986-11-18 | 1990-02-06 | International Business Machines Corporation | Graphics processing system |
US5016001A (en) * | 1988-01-30 | 1991-05-14 | Kabushiki Kaisha Toshiba | Pattern data generating system |
US6639593B1 (en) * | 1998-07-31 | 2003-10-28 | Adobe Systems, Incorporated | Converting bitmap objects to polygons |
TW200301874A (en) * | 2002-01-14 | 2003-07-16 | Hewlett Packard Co | Systems and methods for processing boundary information of a graphical object |
CN101082980A (zh) * | 2006-06-01 | 2007-12-05 | 上海吉量软件科技有限公司 | 一种新型的交点配对填充算法 |
Also Published As
Publication number | Publication date |
---|---|
TW201019270A (en) | 2010-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163087B (zh) | 一种人脸姿态识别方法及系统 | |
JP2010279038A (ja) | 電子画像のリアルタイムパーソナライゼーション方法及びシステム | |
CN110544214A (zh) | 一种图像修复方法、装置及电子设备 | |
WO2022179362A1 (zh) | 一种图像融合方法以及装置 | |
WO2024045442A1 (zh) | 图像矫正模型的训练方法、图像矫正方法、设备及存储介质 | |
CN114118007A (zh) | 一种版式数据流文件转ofd文件的方法 | |
CN115330986A (zh) | 一种分块渲染模式图形处理方法及系统 | |
JP5927942B2 (ja) | 画面生成装置、画面生成システム及び画面生成プログラム | |
JP5631590B2 (ja) | 画像の複数のかつネイティブな表現方法 | |
TWI383336B (zh) | 多邊形快速填色方法 | |
CN111833413B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN109271607A (zh) | 用户页面布局检测方法和装置、电子设备 | |
US9275487B1 (en) | System and method for performing non-affine deformations | |
JP2001143062A (ja) | ブロック転送を使用したイメージの回転型変換 | |
JP4732183B2 (ja) | 画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラム | |
CN101739704B (zh) | 多边形快速填色方法 | |
JP4775161B2 (ja) | 画像処理装置、画像処理プログラム | |
WO2020192212A1 (zh) | 图片处理方法、图集处理方法、计算机设备和存储介质 | |
JP5208043B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
EP2797072A1 (en) | Image raster rotation | |
JP4504861B2 (ja) | 画像処理方法及び画像処理装置 | |
TWI799050B (zh) | 偵測和辨識文字的電子裝置和方法 | |
JP2020113002A (ja) | 表示比較プログラム、装置、及び方法 | |
JP4873192B2 (ja) | 画像処理装置および画像処理プログラム | |
JP6326914B2 (ja) | 補間装置及び補間方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |