專利名稱:光學(xué)指示裝置的軌跡平滑方法
光學(xué)指示裝置的軌跡平滑方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種光學(xué)指示裝置的軌跡平滑方法,特別是指應(yīng)用于光電 鼠標(biāo)等指示裝置上的用平滑其輸出軌跡的方法。背景技術(shù):
在各種計(jì)算機(jī)外設(shè)設(shè)備中,鼠標(biāo)是使用者最常使用的計(jì)算機(jī)外設(shè)設(shè)備之 一,主要用來當(dāng)成一種形式的計(jì)算機(jī)輸入裝置,特別適用于視覺圖像上的應(yīng) 用,因此目前鼠標(biāo)已經(jīng)成為不可缺少的輸入工具。目前較常見的鼠標(biāo)分為滾 輪鼠標(biāo)和光學(xué)鼠標(biāo)兩種。滾輪鼠標(biāo)使用滾輪的機(jī)械結(jié)構(gòu)再搭配一個(gè)微控制器
芯片來處理位移信號。光學(xué)鼠標(biāo)利用具有光學(xué)導(dǎo)航功能的CMOS圖像傳感器 來取代滾輪的機(jī)械結(jié)構(gòu),搭配一個(gè)微控制器芯片來處理位移信號。當(dāng)鼠標(biāo)移 動時(shí),其單位時(shí)間的位移量會依序輸出至計(jì)算機(jī),可是由于鼠標(biāo)的位移量是
經(jīng)過滾輪鼠標(biāo)的機(jī)械結(jié)構(gòu)或者是光學(xué)鼠標(biāo)的影像傳感器量化的結(jié)果,而非實(shí) 際的連續(xù)軌跡,因此,即使鼠標(biāo)移動的軌跡都沒有垂直的線段,在經(jīng)過量化 的過程中有可能使得垂直線段出現(xiàn),其原因可能為運(yùn)動角度過小而無法檢測 出,或者因二維坐標(biāo)在兩個(gè)方向上量化時(shí)有誤差等,同時(shí)由于光學(xué)鼠標(biāo)光源 (如發(fā)光二極管)的調(diào)節(jié)不及時(shí)性(通常是根據(jù)上一幀圖像的特征值來調(diào)整 下一幀圖像的曝光量),而令圖像不一定總是處于一個(gè)好的狀況;以及傳感器 在采樣圖片時(shí)因固有噪聲和隨機(jī)噪聲的影響而令圖像也可能出現(xiàn)退化,因此 會導(dǎo)致軌跡出現(xiàn)局部異常。
圖1為鼠標(biāo)運(yùn)動時(shí)的軌跡圖。鼠標(biāo)將感測到的位移量輸入值,直接作為 輸出值,依序輸出至計(jì)算機(jī)。如圖l所示,P。為起始點(diǎn),且每一個(gè)位移量輸 入值為相對于前一位置的位移量,依序?yàn)檩斎胫礟1(1^)、輸入值P"G,1)、輸入 值P川川、輸入值P^,輸入值P力,1、輸入值P^'1、輸入值P^G,1)、輸入 值P^'W、輸入值P9"^及輸入值P'"G力。當(dāng)這些輸入值被直接作為輸出值, 并依序輸出至計(jì)算機(jī)時(shí),相應(yīng)的計(jì)算機(jī)屏幕上顯示的軌跡便呈鋸齒狀且具有 多處直角線條,此非為令人滿意的輸出結(jié)果。
現(xiàn)有的軌跡平滑方法中,因沒有保持或延后輸出,每個(gè)運(yùn)動向量都作處 理,或只定義了一個(gè)保持區(qū)間,在這個(gè)區(qū)間里的所有向量都被保持住,此種 方法不足之處在于延遲嚴(yán)重,DPI (Dot Per Inch,即每英寸像素,它表示在 物理表面上每移動1英寸(約2.54厘米)其光學(xué)傳感器所能接收到的坐標(biāo)數(shù) 量。比如常見的分辨率為800 DPI的鼠標(biāo),意思就是說將鼠標(biāo)移動1英寸, 其光學(xué)傳感器可以接收到800個(gè)不同的坐標(biāo)點(diǎn),也就意味著鼠標(biāo)指針能在屏幕上移動800個(gè)像素點(diǎn))有損失。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種光學(xué)指示裝置的軌跡平滑方法,利用此方法令
輸出軌跡更加平滑,并且不會損失DPI。
為實(shí)現(xiàn)上述目的,本發(fā)明光學(xué)指示裝置的軌跡平滑方法包括如下步驟
取得產(chǎn)生新的運(yùn)動矢量;
判斷鼠標(biāo)是否有運(yùn)動;
如果沒有,則輸出位移量為零并結(jié)束;
如有,則判斷是否是第一個(gè)運(yùn)動矢量;
若是第一個(gè)運(yùn)動矢量,再判斷是否是沿單軸的運(yùn)動;
如是沿單軸的運(yùn)動,則保留預(yù)定的運(yùn)動矢量輸出并結(jié)束;
若是兩個(gè)軸方向都有運(yùn)動,則輸出運(yùn)動矢量,且保留量為零并結(jié)束;
如果不是第一個(gè)運(yùn)動矢量,則判斷該運(yùn)動矢量是否是單軸方向運(yùn)動;
如果是兩個(gè)軸方向都有運(yùn)動,則將當(dāng)前運(yùn)動矢量加上保留的運(yùn)動矢量輸
出,且保留量為零并結(jié)束;
如果是沿單軸方向的運(yùn)動,則判斷是否保持上次運(yùn)動矢量方向,即判斷
是否與上次運(yùn)動矢量方向相同;
若與上次運(yùn)動矢量方向相同,則輸出運(yùn)動矢量,且保留量不變并結(jié)束; 若與上次運(yùn)動矢量方向不相同,則判斷是否與上次運(yùn)動矢量垂直; 如與上次運(yùn)動矢量垂直,則將當(dāng)前運(yùn)動矢量加上保留運(yùn)動矢量輸出,且
保留量清零并結(jié)束;
如不與上次運(yùn)動矢量垂直,保留預(yù)定的運(yùn)動矢量并輸出。
依據(jù)上述主要特征,所述的保留預(yù)定的運(yùn)動矢量為保留一個(gè)單位的運(yùn)動矢量。
依據(jù)上述主要特征,該光學(xué)指示裝置為鼠標(biāo)。
依據(jù)上述主要特征,該光學(xué)指示裝置手指導(dǎo)航裝置。
與現(xiàn)有技術(shù)相比較,本發(fā)明提供的光學(xué)指示裝置的軌跡平滑方法通過對 鼠標(biāo)獲取的運(yùn)動矢量預(yù)先處理,如此可避免運(yùn)動軌跡中出現(xiàn)較大的彎折,從 而令輸出的軌跡更加平滑。
圖1為鼠標(biāo)運(yùn)動時(shí)的軌跡圖。 圖2為本發(fā)明軌跡平滑方法的流程圖。 圖3為實(shí)施本發(fā)明的鼠標(biāo)根據(jù)圖2的流程所產(chǎn)生的數(shù)值。 圖4為實(shí)施本發(fā)明的鼠標(biāo)移動時(shí)的軌跡圖。實(shí)施方式
請參閱圖2所示,為本發(fā)明軌跡平滑方法的流程圖,該方法包括如下步驟
取得產(chǎn)生新的運(yùn)動矢量,步驟S100;
首先判斷鼠標(biāo)是否有運(yùn)動,步驟S101;
如果沒有,則輸出位移量為零并結(jié)束,步驟S102;
如有,則判斷此運(yùn)動矢量是否是第一個(gè)運(yùn)動矢量,步驟S103;
若是第一個(gè)運(yùn)動矢量,再判斷是否是沿單軸的運(yùn)動,步驟S104;
如是沿單軸的運(yùn)動,則保留預(yù)定的運(yùn)動矢量,在本實(shí)施例中為一個(gè)單位 的運(yùn)動矢量,即輸出運(yùn)動矢量的絕對值減1并結(jié)束,步驟S105;
若是兩個(gè)軸方向都有運(yùn)動,則輸出運(yùn)動矢量,且保留量為零并結(jié)束,步 驟S106;
如果不是第一個(gè)運(yùn)動矢量,則判斷該運(yùn)動矢量是否是單軸運(yùn)動,步驟 S107;
如果是兩個(gè)軸方向都有運(yùn)動,則將當(dāng)前運(yùn)動矢量加上保留的運(yùn)動矢量輸 出,且保留量為零并結(jié)束,步驟S108;
如果是沿單軸方向的運(yùn)動,則判斷此運(yùn)動矢量是否保持上次運(yùn)動矢量方 向,即判斷是否與上次運(yùn)動矢量方向相同,步驟S109;
若與上次運(yùn)動矢量方向相同,則輸出運(yùn)動矢量,且保留量不變并結(jié)束, 步驟S110;
若與上次運(yùn)動矢量方向不相同,則判斷此運(yùn)動矢量是否與上次運(yùn)動矢量 垂直,步驟S111;
如與上次運(yùn)動矢量垂直,則將當(dāng)前運(yùn)動矢量加上保留運(yùn)動矢量輸出,且 保留量清零并結(jié)東,步驟S112;
如不與上次運(yùn)動矢量垂直,保留預(yù)定的運(yùn)動矢量,在本實(shí)施例中為一個(gè) 單位的運(yùn)動矢量,即輸出運(yùn)動矢量的絕對值減1,步驟S113。
請結(jié)合圖1、圖2、圖3及圖4所示,其中圖3表示實(shí)施本發(fā)明的鼠標(biāo)根 據(jù)圖2的流程所產(chǎn)生的數(shù)值。其中每一行表示一個(gè)運(yùn)算過程,若以圖l的輸 入值為本實(shí)施例的輸入值,亦即,如圖l所示,P。為起始點(diǎn),且每一個(gè)位移 量輸入值為相對于前一位置的位移量,依序?yàn)檩斎胫礟'(1^)、輸入值P2(9,1)、 輸入值P川'G)、輸入值P巾'0)、輸入值Ps(1,1)、輸入值P6 0,人輸入值P7^,1)、 輸入值P川,G)、輸入值P^'G)及輸入值P'。(G'0。上述輸入值按照圖2所示的流
程處理后輸出的相對位移量為(1,1)、 (1,0)、 (2,1、 (1,1)、 (U、及"^時(shí),輸 出位移量為(1,1)、 (2,1)、 (4'2)、 (5,3)、 (6,4)、 (7,5),而最后由鼠標(biāo)依序輸出至 計(jì)算機(jī)的位移量為輸出值P'1(1,1)、輸出值P'2(2,1)、輸出值P'3(4,2)、輸出值 P"(5,3)、輸出值P's(《"及輸出值P16(7,5),因此屏幕上所得軌跡為由P。點(diǎn)依序
連接Pu、P,2、P。、P,4、P'5及P'0所形成的線條(圖上的實(shí)線),與未經(jīng)過處理
的線條(圖上的虛線)相比,拐角較少而顯得更加平滑。
5在上述的實(shí)施例中是以鼠標(biāo)進(jìn)行說明,本領(lǐng)域的技術(shù)人員完全可知本發(fā) 明也可應(yīng)用于手指導(dǎo)航裝置(即通過采集手指的圖像實(shí)現(xiàn)導(dǎo)航)或其他利用 光學(xué)導(dǎo)航技術(shù)的指示裝置。
權(quán)利要求
1. 一種光學(xué)指示裝置的軌跡平滑方法,其特征在于該方法包括如下步驟取得產(chǎn)生新的運(yùn)動矢量;判斷鼠標(biāo)是否有運(yùn)動;如果沒有運(yùn)動,則輸出位移量為零并結(jié)束;如有,則判斷此運(yùn)動矢量是否是第一個(gè)運(yùn)動矢量;若是第一個(gè)運(yùn)動矢量,再判斷是否是沿單軸的運(yùn)動;如是沿單軸的運(yùn)動,則保留預(yù)定的運(yùn)動矢量后輸出并結(jié)束;若是兩個(gè)軸方向都有運(yùn)動,則輸出運(yùn)動矢量,且保留量為零并結(jié)束;如果不是第一個(gè)運(yùn)動矢量,則判斷該運(yùn)動矢量是否是單軸方向運(yùn)動;如果是兩個(gè)軸方向都有運(yùn)動,則將當(dāng)前運(yùn)動矢量加上保留的運(yùn)動矢量輸出,且保留量為零并結(jié)束;如果是沿單軸方向的運(yùn)動,則判斷是否保持上次運(yùn)動矢量方向,即判斷是否與上次運(yùn)動矢量方向相同;若與上次運(yùn)動矢量方向相同,則輸出運(yùn)動矢量,且保留量不變并結(jié)束;若與上次運(yùn)動矢量方向不相同,則判斷是否與上次運(yùn)動矢量垂直;如與上次運(yùn)動矢量垂直,則將當(dāng)前運(yùn)動矢量加上保留運(yùn)動矢量輸出,且保留量清零并結(jié)束;如不與上次運(yùn)動矢量垂直,保留預(yù)定的運(yùn)動矢量后輸出。
2. 如權(quán)利要求1所述的光學(xué)指示裝置的軌跡平滑方法,其特征在于所 述的保留預(yù)定的運(yùn)動矢量為保留一個(gè)單位的運(yùn)動矢量。
3. 如權(quán)利要求1所述的光學(xué)指示裝置的軌跡平滑方法,其特征在于該 光學(xué)指示裝置為鼠標(biāo)。
4. 如權(quán)利要求1所述的光學(xué)指示裝置的軌跡平滑方法,其特征在于該 光學(xué)指示裝置手指導(dǎo)航裝置。
全文摘要
一種光學(xué)指示裝置的軌跡平滑方法包括如下步驟取得產(chǎn)生新的運(yùn)動矢量;判斷此運(yùn)動矢量是否是第一個(gè)運(yùn)動矢量;若是,再判斷是否是沿單軸的運(yùn)動;如是,則保留預(yù)定的運(yùn)動矢量后輸出并結(jié)束;若是兩個(gè)軸方向都有運(yùn)動,則輸出運(yùn)動矢量,且保留量為零并結(jié)束;如果不是第一個(gè)運(yùn)動矢量,則判斷是否是單軸方向運(yùn)動;如不是,則將當(dāng)前運(yùn)動矢量加上保留的運(yùn)動矢量輸出,且保留量為零并結(jié)束;如是,則判斷是否與上次運(yùn)動矢量方向相同;若相同,則輸出運(yùn)動矢量,且保留量不變并結(jié)束;若不相同,則判斷是否與上次運(yùn)動矢量垂直;如垂直,則將當(dāng)前運(yùn)動矢量加上保留運(yùn)動矢量輸出,且保留量清零并結(jié)束;如不垂直,保留預(yù)定的運(yùn)動矢量后輸出。
文檔編號G06F3/033GK101520697SQ200910048269
公開日2009年9月2日 申請日期2009年3月26日 優(yōu)先權(quán)日2009年3月26日
發(fā)明者李學(xué)東, 勇 肖, 謝承華, 邵菊花 申請人:埃派克森微電子(上海)有限公司;埃派克森微電子有限公司