本發(fā)明涉及圖像繪制領(lǐng)域,具體而言,涉及一種曲線繪制方法及裝置。
背景技術(shù):
傳統(tǒng)的定量提取算法中,道格拉斯-普克算法及其改進(jìn)算法是將曲線近似表示為一系列點(diǎn),并減少點(diǎn)的數(shù)量的方式,在效果上可以呈現(xiàn)數(shù)據(jù)的整體趨勢(shì),但道格拉斯-普克算法的復(fù)雜度過(guò)高,一般計(jì)算機(jī)難以實(shí)現(xiàn)該算法。而簡(jiǎn)單的間隔提取算法在性能上最優(yōu),但提取的特征點(diǎn)往往與數(shù)據(jù)本身的真實(shí)趨勢(shì)相差很大,很容易導(dǎo)致最終的特征點(diǎn)顯示的整體趨勢(shì)與原有趨勢(shì)相差很大,準(zhǔn)確率低。
針對(duì)上述提取算法提取特征點(diǎn)的準(zhǔn)確率的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種曲線繪制方法及裝置,以至少解決提取算法提取特征點(diǎn)的準(zhǔn)確率低的技術(shù)問(wèn)題。
根據(jù)本發(fā)明實(shí)施例提供了一種曲線繪制方法,包括:獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn);將數(shù)據(jù)點(diǎn)分為多個(gè)段;依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),其中,特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征;使用每個(gè)段中提取出的特征點(diǎn)繪制曲線。
進(jìn)一步地,從多個(gè)段中的每個(gè)段提取特征點(diǎn)包括:從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值;將最大值和最小值作為該段的特征點(diǎn)。
進(jìn)一步地,從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值的包括:獲取該段數(shù)據(jù)點(diǎn)中的起始的至少兩個(gè)數(shù)據(jù)點(diǎn);將至少兩個(gè)數(shù)據(jù)點(diǎn)中數(shù)值最大的數(shù)據(jù)點(diǎn)的值賦值給最大值,數(shù)值最小的數(shù)據(jù)點(diǎn)的值賦值給最小值;依次將至少兩個(gè)數(shù)據(jù)點(diǎn)之后的數(shù)據(jù)點(diǎn)與賦值之后的最大值或最小值進(jìn)行比較,并且在大于最大值或者小于最小值的情況下,對(duì)最大值和最小值進(jìn)行重新賦值,直到遍歷完該段中的所有數(shù)據(jù)點(diǎn),以得到該段數(shù)據(jù)點(diǎn)的最大值和最小值。
進(jìn)一步地,還包括:判斷正在提取特征點(diǎn)的當(dāng)前段中提取的特征點(diǎn)的數(shù)量是否小于閾值;在提取的特征點(diǎn)的數(shù)量小于閾值的情況下,獲取最近提取到的一個(gè)特征點(diǎn);對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段之后再進(jìn)行特征點(diǎn)的提取。
進(jìn)一步地,從每個(gè)段中提取最大值和最小值兩個(gè)數(shù)據(jù)點(diǎn)作為特征點(diǎn),在從當(dāng)前段中僅提取到一個(gè)特征點(diǎn)或者沒(méi)有提取到特征點(diǎn)的情況下,對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段。
進(jìn)一步地,重新進(jìn)行分段包括:根據(jù)剩余的需要提取的特征點(diǎn)的數(shù)量對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段,其中,剩余的需要提取的特征點(diǎn)的數(shù)量是根據(jù)特征點(diǎn)的總量以及已經(jīng)提取出的特征點(diǎn)的數(shù)量得到的。
進(jìn)一步地,特征點(diǎn)的總量為預(yù)先配置的,和/或,根據(jù)繪制曲線的設(shè)備的能力計(jì)算得到的。
根據(jù)本發(fā)明還提供了另一種實(shí)施例,提供了一種曲線繪制裝置,該裝置包括:第一獲取模塊,用于獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn);切分模塊,用于將數(shù)據(jù)點(diǎn)分為多個(gè)段;第一提取模塊,用于依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),其中,特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征;繪制模塊,用于對(duì)每個(gè)段中提取出的特征點(diǎn)繪制曲線。
進(jìn)一步地,第一提取模塊包括:第二提取模塊,用于從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值;配置模塊,用于將最大值和最小值作為該段的特征點(diǎn)。
進(jìn)一步地,第二提取模塊包括:第二獲取模塊,用于獲取該段數(shù)據(jù)點(diǎn)中的起始的至少兩個(gè)數(shù)據(jù)點(diǎn);賦值模塊,用于將至少兩個(gè)數(shù)據(jù)點(diǎn)中數(shù)值最大的數(shù)據(jù)點(diǎn)的值賦值給最大值,數(shù)值最小的數(shù)據(jù)點(diǎn)的值賦值給最小值;比較模塊,用于依次將至少兩個(gè)數(shù)據(jù)點(diǎn)之后的數(shù)據(jù)點(diǎn)與賦值之后的最大值或最小值進(jìn)行比較,并且在大于最大值或者小于最小值的情況下,對(duì)最大值和最小值進(jìn)行重新賦值,直到遍歷完該段中的所有數(shù)據(jù)點(diǎn),以得到該段數(shù)據(jù)點(diǎn)的最大值和最小值。
進(jìn)一步地,還包括:判斷模塊,用于判斷正在提取特征點(diǎn)的當(dāng)前段中提取的特征點(diǎn)的數(shù)量是否小于閾值;第三獲取模塊,用于在提取的特征點(diǎn)的數(shù)量小于閾值的情況下,獲取最近提取到的一個(gè)特征點(diǎn);第三提取模塊,用于對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段之后再進(jìn)行特征點(diǎn)的提取。
進(jìn)一步地,還包括:第一重新分段模塊,用于在從每個(gè)段中提取最大值和最小值兩個(gè)數(shù)據(jù)點(diǎn)作為特征點(diǎn),在從當(dāng)前段中僅提取到一個(gè)特征點(diǎn)或者沒(méi)有提取到特征點(diǎn)的情況下,對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段。
進(jìn)一步地,還包括:第二重新分段模塊,用于根據(jù)剩余的需要提取的特征點(diǎn)的數(shù)量對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段,其中,剩余的需要提取的特征點(diǎn)的數(shù)量是根據(jù)特征點(diǎn)的總量以及已經(jīng)提取出的特征點(diǎn)的數(shù)量得到的。
進(jìn)一步地,特征點(diǎn)的總量為預(yù)先配置的,和/或,根據(jù)繪制曲線的設(shè)備的能力計(jì)算得到的。
在本發(fā)明實(shí)施例中,采用了先獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn),之后將數(shù)據(jù)點(diǎn)分為多個(gè)段,然后依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),最后使用每個(gè)段中提取出的特征點(diǎn)繪制曲線的方式,通過(guò)相應(yīng)的軟件,達(dá)到了繪制曲線的目的,從而實(shí)現(xiàn)了反映曲線數(shù)據(jù)的整體趨勢(shì)的技術(shù)效果,進(jìn)而解決了提取算法提取特征點(diǎn)的準(zhǔn)確率低的技術(shù)問(wèn)題。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的曲線繪制方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的曲線繪制方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的曲線繪制裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本發(fā)明實(shí)施例,提供了一種曲線繪制方法的實(shí)施例,需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實(shí)施例的曲線繪制方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟S102,獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn);
步驟S104,將數(shù)據(jù)點(diǎn)分為多個(gè)段;
步驟S106,依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),其中,特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征;
步驟S108,使用每個(gè)段中提取出的特征點(diǎn)繪制曲線。
采用上述實(shí)施例,在獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn)之后,將數(shù)據(jù)點(diǎn)分為多個(gè)段(對(duì)數(shù)據(jù)曲線進(jìn)行分段時(shí),分段的數(shù)量取決于提取特征點(diǎn)的量),然后依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),使用每個(gè)段中提取出的特征點(diǎn)繪制曲線。在該實(shí)施例中,在繪制曲線之前,對(duì)獲取到的數(shù)據(jù)點(diǎn)進(jìn)行分段,并從每個(gè)段中提取特征點(diǎn),這樣,提取每段對(duì)應(yīng)曲線的特征點(diǎn),通過(guò)動(dòng)態(tài)分段提取特征點(diǎn),能在定量的情況下保證最關(guān)鍵的特征點(diǎn)被提取出來(lái),同時(shí)在點(diǎn)稀疏的情況下,能盡可能的利用定量的點(diǎn)配額,盡可能的反映曲線數(shù)據(jù)的整體趨勢(shì),通過(guò)該實(shí)施例,達(dá)到了準(zhǔn)確繪制曲線的目的,并可以真實(shí)反映曲線數(shù)據(jù)的整體趨勢(shì),解決了提取算法提取特征點(diǎn)的準(zhǔn)確率低的技術(shù)問(wèn)題。
上述實(shí)施例中,從每段中提取出的特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征,可選地,每段中可以包括或不包括數(shù)據(jù)點(diǎn),在段中包括數(shù)據(jù)點(diǎn)的情況下,該段中可以包括一個(gè)或多個(gè)數(shù)據(jù)點(diǎn)。
在上述實(shí)施例中,步驟S102,獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn),從數(shù)據(jù)庫(kù)中讀取構(gòu)成該曲線的數(shù)據(jù)點(diǎn),例如,可以預(yù)先采集數(shù)據(jù)點(diǎn),將數(shù)據(jù)點(diǎn)保存入數(shù)據(jù)庫(kù)中,在需要構(gòu)建曲線時(shí),從數(shù)據(jù)庫(kù)中讀取用于構(gòu)成該曲線的數(shù)據(jù)點(diǎn)。
根據(jù)上述實(shí)施例,步驟S104,將數(shù)據(jù)點(diǎn)分為多個(gè)段,具體地,可以根據(jù)需要提取的特征點(diǎn)的數(shù)量和在每個(gè)段中提取特征點(diǎn)的數(shù)量確定分段的數(shù)量,這里的需要提取的特征點(diǎn)的數(shù)量可以為需要提取的特征點(diǎn)的數(shù)量的最小值,例如,需要提取的特征點(diǎn)的數(shù)量為20,如果在每個(gè)段中提取兩個(gè)特征點(diǎn),則需要將獲取到的數(shù)據(jù)點(diǎn)分為10段。
需要說(shuō)明的是,這里對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分段時(shí),每個(gè)段的范圍可以基于曲線的橫軸范圍來(lái)確定。這里對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分段時(shí),每個(gè)段的范圍也可以基于曲線的豎軸范圍來(lái)確定。
在該實(shí)施例中,從段中提取特征點(diǎn)的過(guò)程中,依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),從而可以在提取特征點(diǎn)的過(guò)程中,動(dòng)態(tài)分段,而不是在一開始就固定好全部數(shù)據(jù)點(diǎn)的范圍,從而可以使得提取的特征點(diǎn)更能表示該點(diǎn)所在段對(duì)應(yīng)曲線的數(shù)據(jù)趨勢(shì)(如,特征)。
在一個(gè)可選的實(shí)施例中,可以基于當(dāng)前段中數(shù)據(jù)點(diǎn)的值確定的下述至少之一,作為該段的特征點(diǎn):中值、極值和平均值。
可選地,從多個(gè)段中的每個(gè)段提取特征點(diǎn)可以包括:從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值,以及將最大值和最小值作為該段的特征點(diǎn)。在該實(shí)施例中,將該段中數(shù)值最大和最小的值作為該段的特征點(diǎn),可以將該段的特征準(zhǔn)確地表示出來(lái),從而在繪制曲線時(shí)可以使得曲線的數(shù)據(jù)趨勢(shì)更加準(zhǔn)確。
具體地,從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值的包括:獲取該段數(shù)據(jù)點(diǎn)中的起始的至少兩個(gè)數(shù)據(jù)點(diǎn);將至少兩個(gè)數(shù)據(jù)點(diǎn)中數(shù)值最大的數(shù)據(jù)點(diǎn)的值賦值給最大值,數(shù)值最小的數(shù)據(jù)點(diǎn)的值賦值給最小值;依次將至少兩個(gè)數(shù)據(jù)點(diǎn)之后的數(shù)據(jù)點(diǎn)與賦值之后的最大值或最小值進(jìn)行比較,并且在大于最大值或者小于最小值的情況,對(duì)最大值和最小值進(jìn)行重新賦值,直到遍歷完該段中的所有數(shù)據(jù)點(diǎn),以得到該段數(shù)據(jù)點(diǎn)的最大值和最小值。
本發(fā)明實(shí)施例根據(jù)提取特征點(diǎn)的數(shù)量設(shè)置分段,當(dāng)首次處理分段后的數(shù)據(jù)點(diǎn)時(shí),把當(dāng)前數(shù)據(jù)點(diǎn)分別賦給該分段(即上述實(shí)施例的段)的最大值和最小值,而后續(xù)數(shù)據(jù)點(diǎn)與該分段的最大值、最小值比較,當(dāng)當(dāng)前數(shù)據(jù)點(diǎn)大于最大值時(shí),用當(dāng)前數(shù)據(jù)點(diǎn)更新最大值,當(dāng)當(dāng)前數(shù)據(jù)點(diǎn)小于最小值時(shí),用當(dāng)前數(shù)據(jù)點(diǎn)更新最小值,保證了最關(guān)鍵的特征點(diǎn)被提??;進(jìn)一步地,對(duì)于每個(gè)段的數(shù)據(jù)點(diǎn)中的最大值和最小值分開賦值,當(dāng)出現(xiàn)需要更新的數(shù)值時(shí),依據(jù)上述方式更新數(shù)據(jù)點(diǎn)的最大值或最小值,這樣,數(shù)據(jù)點(diǎn)的最大值和最小值不斷變化,提取出的特征點(diǎn)所表示的整體趨勢(shì)會(huì)更接近實(shí)際曲線趨勢(shì)。
本發(fā)明實(shí)施例的方法還可以包括:判斷正在提取特征點(diǎn)的當(dāng)前段中提取的特征點(diǎn)的數(shù)量是否小于閾值;在小于閾值的情況下,獲取最近提取到的一個(gè)特征點(diǎn);對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段之后再進(jìn)行特征點(diǎn)的提取。本發(fā)明實(shí)施例對(duì)于特征點(diǎn)的確定做一個(gè)準(zhǔn)確判斷,根據(jù)設(shè)定的閾值與從分段(即上述的當(dāng)前段)中提取出的特征點(diǎn)的數(shù)量作比較,以判斷是否需要重新分段,從而實(shí)現(xiàn)動(dòng)態(tài)分段,以準(zhǔn)確確定曲線整體趨勢(shì)。
具體地,可以預(yù)先設(shè)置閾值,例如,閾值設(shè)置為2,在從當(dāng)前段中提取出的特征點(diǎn)的數(shù)量小于2的情況下,確定需要重新分段。
可選地,在確定需要重新分段的情況下,獲取最近提取到的一個(gè)特征點(diǎn),對(duì)該最近提取到的一個(gè)特征點(diǎn)所屬的段之后的曲線的數(shù)據(jù)點(diǎn)進(jìn)行重新分段,并在重新分段之后再提取特征點(diǎn)。
另一種可選地,在確定需要重新分段的情況下,對(duì)該最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)進(jìn)行重新分段,并在重新分段之后再提取特征點(diǎn)。
在一個(gè)可選的實(shí)施例中,在本發(fā)明實(shí)施例中需要從每個(gè)段中提取最大值和最小值兩個(gè)數(shù)據(jù)點(diǎn)作為特征點(diǎn),在從當(dāng)前段中僅提取到一個(gè)特征點(diǎn)或者沒(méi)有提取到特征點(diǎn)的情況下,對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段,這樣本發(fā)明實(shí)施例在特征點(diǎn)沒(méi)有或僅有一個(gè)特征點(diǎn)的情況下,可以對(duì)數(shù)據(jù)點(diǎn)重新進(jìn)行分段。
在獲取到的數(shù)據(jù)點(diǎn)稀疏(如,獲取到的數(shù)據(jù)點(diǎn)的數(shù)量小于預(yù)定閾值,該閾值可以為100)的情況下,在處理完當(dāng)前段時(shí)(如,從當(dāng)前段中提取出特征點(diǎn)),如果發(fā)現(xiàn)當(dāng)前段中只能提取出一個(gè)特征點(diǎn)(此時(shí),表示當(dāng)前段的范圍內(nèi)只有一個(gè)數(shù)據(jù)點(diǎn))或者沒(méi)有提取到特征點(diǎn)(此時(shí),該段內(nèi)沒(méi)有數(shù)據(jù)點(diǎn)),那就根據(jù)剩余的點(diǎn)配額,重新設(shè)置分段(即重新進(jìn)行分段),此時(shí),分段范圍只會(huì)更小,把前面分段沒(méi)有用到的點(diǎn)配額動(dòng)態(tài)分配給了后續(xù)的分段,得到的特征點(diǎn)更加準(zhǔn)確,也更能反應(yīng)曲線的趨勢(shì)。
具體地,重新進(jìn)行分段包括:根據(jù)剩余的需要提取的特征點(diǎn)的數(shù)量對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段,其中,剩余的需要提取的特征點(diǎn)的數(shù)量是根據(jù)特征點(diǎn)的總量以及已經(jīng)提取出的特征點(diǎn)的數(shù)量得到的。當(dāng)重新設(shè)置分段時(shí),重新分段的數(shù)量取決于剩余特征點(diǎn)配額的量,剩余特征點(diǎn)配額(即剩余的需要提取的特征點(diǎn)的數(shù)量)是預(yù)計(jì)要提取的特征點(diǎn)數(shù)量(即特征點(diǎn)的總量)減去已經(jīng)提取出的特征點(diǎn)數(shù)量,可以達(dá)到將特征點(diǎn)進(jìn)行更合理的分配。
其中,剩余的需要提取的特征點(diǎn)的數(shù)量是基于需要提取的特征點(diǎn)的總的數(shù)量和已經(jīng)提取的特征點(diǎn)的數(shù)量確定的,如,將需要提取的特征點(diǎn)的總的數(shù)量(即預(yù)計(jì)要提取的特征點(diǎn)數(shù)量)與已經(jīng)提取的特征點(diǎn)數(shù)量的差值作為剩余的需要提取的特征點(diǎn)的數(shù)量。
重新分段的數(shù)量可以基于剩余特征點(diǎn)配額與每段預(yù)計(jì)提取出的特征點(diǎn)的數(shù)量而確定,如,將剩余特征點(diǎn)配額與每段預(yù)計(jì)提取出的特征點(diǎn)的數(shù)量的比值作為重新分段的數(shù)量。
通過(guò)上述實(shí)施例,根據(jù)剩余的點(diǎn)配額動(dòng)態(tài)重置分段,在保證特征點(diǎn)不會(huì)超過(guò)定量的情況下,利用點(diǎn)配額提取盡可能多的特征點(diǎn),從而盡可能的反映曲線數(shù)據(jù)的整體趨勢(shì),提高提取效果。
可選地,特征點(diǎn)的總量為預(yù)先配置的,和/或,根據(jù)繪制曲線的設(shè)備的能力計(jì)算得到的。
軟件繪制數(shù)據(jù)曲線時(shí),為了更詳細(xì)的看到數(shù)據(jù)的趨勢(shì),往往要求計(jì)算機(jī)提取盡可能多的點(diǎn)來(lái)進(jìn)行呈現(xiàn),這無(wú)疑會(huì)增加計(jì)算機(jī)處理數(shù)據(jù)時(shí)的負(fù)擔(dān),且在呈現(xiàn)數(shù)據(jù)曲線的顯示設(shè)備分辨率有限的情況下,提取過(guò)多的點(diǎn)并不能增強(qiáng)呈現(xiàn)數(shù)據(jù)整體趨勢(shì)時(shí)的效果(如,顯示分辨率在橫向?yàn)?024,那提取過(guò)多的點(diǎn)也呈現(xiàn)不出效果,反而會(huì)增加計(jì)算機(jī)程序處理數(shù)據(jù)時(shí)的負(fù)載),因此在軟件繪制數(shù)據(jù)曲線時(shí),定量提取曲線數(shù)據(jù)的特征點(diǎn)具有很好的意義。
下面以一個(gè)具體地實(shí)施例為例對(duì)本發(fā)明進(jìn)行說(shuō)明,具體實(shí)施方式如下:
圖2是根據(jù)本發(fā)明的一個(gè)曲線繪制方法的流程圖,如圖2所示,該方法包括如下步驟:
步驟S202,根據(jù)提取特征點(diǎn)的數(shù)量對(duì)曲線數(shù)據(jù)進(jìn)行分段,并把第一個(gè)分段作為當(dāng)前分段。
本發(fā)明實(shí)施例中對(duì)數(shù)據(jù)曲線進(jìn)行分段時(shí),分段的數(shù)量取決于提取特征點(diǎn)的量。如曲線數(shù)據(jù)點(diǎn)的橫軸范圍為Ts到Te,需要提取不多于N個(gè)特征點(diǎn),由于每個(gè)分段只提取該分段內(nèi)的最大值和最小值,那么每個(gè)分段最多兩個(gè)特征,因此分段的數(shù)量為[N/2],就是N/2取整,每個(gè)分段的范圍就是(Te-Ts)/[N/2]。
步驟S204,執(zhí)行讀取曲線數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)點(diǎn)的操作。
步驟S206:判斷是否讀取到數(shù)據(jù)點(diǎn)。
如果讀取成功(即讀取到數(shù)據(jù)點(diǎn)),則執(zhí)行步驟S208;否則(即沒(méi)有讀取到數(shù)據(jù)點(diǎn)),表示曲線數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)點(diǎn)已經(jīng)處理完畢,結(jié)束流程。
步驟S208:用當(dāng)前分段處理當(dāng)前讀取到的數(shù)據(jù)點(diǎn)。
步驟S210:判斷當(dāng)前讀取到的數(shù)據(jù)點(diǎn)是否在當(dāng)前分段范圍內(nèi)。
如果在當(dāng)前分段范圍內(nèi),則執(zhí)行步驟S210,用此數(shù)據(jù)點(diǎn)維護(hù)當(dāng)前分段的最大值和最小值,并轉(zhuǎn)到步驟S204繼續(xù)讀取新的數(shù)據(jù)點(diǎn);否則,也即如果該數(shù)據(jù)點(diǎn)不在當(dāng)前分段范圍內(nèi),則保存當(dāng)前分段的特征點(diǎn)(當(dāng)最大或最小值為空時(shí),表示該分段內(nèi)沒(méi)有數(shù)據(jù)點(diǎn),當(dāng)最大、最小值相等時(shí),表示該分段內(nèi)就一個(gè)數(shù)據(jù)點(diǎn),也就是從該分段中只提取一個(gè)特征點(diǎn)),并執(zhí)行步驟S212。
步驟S212:如果當(dāng)前分段中有最大和最小值,判斷兩者是否不為同一點(diǎn)。
如果兩者不是同一點(diǎn),則執(zhí)行步驟S214;如果兩者是同一點(diǎn),則執(zhí)行步驟S216。
步驟S214:將當(dāng)前分段的下一分段設(shè)置為當(dāng)前分段,并執(zhí)行步驟S20。
步驟S216:以當(dāng)前數(shù)據(jù)點(diǎn)為始重新設(shè)置分段,分段數(shù)剩余點(diǎn)配合確定。
步驟S218:重新分段后的第一個(gè)分段作為當(dāng)前分段,并執(zhí)行步驟S204。
在上述實(shí)施例中,如果當(dāng)前分段中有最大、最小值,且二者不為同一點(diǎn)(此時(shí)表示提取到兩個(gè)特征點(diǎn),此時(shí)不用后續(xù)特征點(diǎn)配額不會(huì)改變,因此不需要重置分段),就把當(dāng)前分段的下一個(gè)分段作為當(dāng)前分段,并處理當(dāng)前數(shù)據(jù)點(diǎn),然后繼續(xù)讀取新數(shù)據(jù)點(diǎn)進(jìn)行處理。
進(jìn)一步地,如果當(dāng)前分段中沒(méi)有最大、最小值,且兩者是同一點(diǎn),就計(jì)算剩余特征點(diǎn)配額(剩余特征點(diǎn)配額是預(yù)計(jì)要提取的特征點(diǎn)數(shù)量減去已經(jīng)提取的特征點(diǎn)數(shù)量),并根據(jù)剩余特征點(diǎn)配額對(duì)從當(dāng)前數(shù)據(jù)點(diǎn)開始的曲線數(shù)據(jù)進(jìn)行重新分段,并把重新分段后的第一個(gè)分段作為當(dāng)前分段,然后處理當(dāng)前數(shù)據(jù)點(diǎn),處理完成后繼續(xù)讀取新數(shù)據(jù)點(diǎn)進(jìn)行處理。
本發(fā)明實(shí)施例根據(jù)預(yù)置的定量對(duì)整個(gè)曲線數(shù)據(jù)進(jìn)行分段,且每段內(nèi)只需找到最大、最小值,這樣能保證最關(guān)鍵的特征點(diǎn)被提取,從根本上保證了提卻的效果。本發(fā)明實(shí)施例在提取特征點(diǎn)時(shí),只遍歷數(shù)據(jù)一次,相對(duì)于道格拉斯算法,大大降低了算法的復(fù)雜度,提高了提取的效率和性能,同時(shí)通過(guò)動(dòng)態(tài)分段提取特征點(diǎn),能在定量的情況下保證最關(guān)鍵的特征點(diǎn)被提取出來(lái),在點(diǎn)稀疏的情況下,能盡可能的利用定量的點(diǎn)配額,盡可能的反映曲線數(shù)據(jù)的整體趨勢(shì),通過(guò)該實(shí)施例,達(dá)到了準(zhǔn)確繪制曲線的目的,并可以真實(shí)反映曲線數(shù)據(jù)的整體趨勢(shì),解決了提取算法提取特征點(diǎn)的準(zhǔn)確率低的技術(shù)問(wèn)題。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種曲線繪制裝置,如圖3所示,該裝置包括:第一獲取模塊11,用于獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn);切分模塊12,用于將數(shù)據(jù)點(diǎn)分為多個(gè)段;第一提取模塊13,用于依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),其中,特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征;繪制模塊14,用于對(duì)每個(gè)段中提取出的特征點(diǎn)繪制曲線。
采用上述實(shí)施例,在獲取模塊獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn)之后,通過(guò)切分模塊將數(shù)據(jù)點(diǎn)分為多個(gè)段(對(duì)數(shù)據(jù)曲線進(jìn)行分段時(shí),分段的數(shù)量取決于提取特征點(diǎn)的量),然后利用第一提取模塊依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),使用繪制模塊對(duì)每個(gè)段中提取出的特征點(diǎn)繪制曲線。在該實(shí)施例中,在繪制曲線之前,對(duì)獲取到的數(shù)據(jù)點(diǎn)進(jìn)行分段,并從每個(gè)段中提取特征點(diǎn),這樣,提取每段對(duì)應(yīng)曲線的特征點(diǎn),通過(guò)動(dòng)態(tài)分段提取特征點(diǎn),能在定量的情況下保證最關(guān)鍵的特征點(diǎn)被提取出來(lái),同時(shí)在點(diǎn)稀疏的情況下,能盡可能的利用定量的點(diǎn)配額,盡可能的反映曲線數(shù)據(jù)的整體趨勢(shì),通過(guò)該實(shí)施例,達(dá)到了準(zhǔn)確繪制曲線的目的,并可以真實(shí)反映曲線數(shù)據(jù)的整體趨勢(shì),解決了提取算法提取特征點(diǎn)的準(zhǔn)確率低的技術(shù)問(wèn)題。
上述實(shí)施例中,從每段中提取出的特征點(diǎn)用于表征該段對(duì)應(yīng)曲線的特征,可選地,每段中可以包括或不包括數(shù)據(jù)點(diǎn),在段中包括數(shù)據(jù)點(diǎn)的情況下,該段中可以包括一個(gè)或多個(gè)數(shù)據(jù)點(diǎn)。
在上述實(shí)施例中,獲取構(gòu)成曲線的數(shù)據(jù)點(diǎn),從數(shù)據(jù)庫(kù)中讀取構(gòu)成該曲線的數(shù)據(jù)點(diǎn),例如,可以預(yù)先采集數(shù)據(jù)點(diǎn),將數(shù)據(jù)點(diǎn)保存入數(shù)據(jù)庫(kù)中,在需要構(gòu)建曲線時(shí),從數(shù)據(jù)庫(kù)中讀取用于構(gòu)成該曲線的數(shù)據(jù)點(diǎn)。
根據(jù)上述實(shí)施例,將數(shù)據(jù)點(diǎn)分為多個(gè)段,具體地,可以根據(jù)需要提取的特征點(diǎn)的數(shù)量和在每個(gè)段中提取特征點(diǎn)的數(shù)量確定分段的數(shù)量,這里的需要提取的特征點(diǎn)的數(shù)量可以為需要提取的特征點(diǎn)的數(shù)量的最小值,例如,需要提取的特征點(diǎn)的數(shù)量為20,如果在每個(gè)段中提取兩個(gè)特征點(diǎn),則需要將獲取到的數(shù)據(jù)點(diǎn)分為10段。
需要說(shuō)明的是,這里對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分段時(shí),每個(gè)段的范圍可以基于曲線的橫軸范圍來(lái)確定。這里對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分段時(shí),每個(gè)段的范圍也可以基于曲線的豎軸范圍來(lái)確定。
在該實(shí)施例中,從段中提取特征點(diǎn)的過(guò)程中,依次從多個(gè)段中的每個(gè)段提取特征點(diǎn),從而可以在提取特征點(diǎn)的過(guò)程中,動(dòng)態(tài)分段,而不是在一開始就固定好全部數(shù)據(jù)點(diǎn)的范圍,從而可以使得提取的特征點(diǎn)更能表示該點(diǎn)所在段對(duì)應(yīng)曲線的數(shù)據(jù)趨勢(shì)(如,特征)。
本發(fā)明實(shí)施例中對(duì)曲線繪制裝置做出了描述,其中第一獲取模塊根據(jù)預(yù)先設(shè)置的特征點(diǎn)的總量獲取曲線的數(shù)據(jù)點(diǎn),之后切分模塊對(duì)于獲取的數(shù)據(jù)點(diǎn)分段,然后第一提取模塊設(shè)置數(shù)據(jù)點(diǎn)分段提取最大值、最小值,并找出特征點(diǎn),最后繪制模塊根據(jù)第一提取模塊提取出的特征點(diǎn)在軟件上繪制出曲線整體趨勢(shì)。對(duì)于本發(fā)明實(shí)施例通過(guò)動(dòng)態(tài)分段,最大限度利用點(diǎn)配額,盡可能地反映曲線數(shù)據(jù)的整體趨勢(shì),提高了提取效果。
進(jìn)一步地,所述第一提取模塊包括:第二提取模塊,用于從每個(gè)段中提取該段數(shù)據(jù)點(diǎn)中的最大值和最小值;配置模塊,用于將最大值和最小值作為該段的特征點(diǎn)。在該實(shí)施例中,將該段中數(shù)值最大和最小的值作為該段的特征點(diǎn),可以將該段的特征準(zhǔn)確地表示出來(lái),從而在繪制曲線時(shí)可以使得曲線的數(shù)據(jù)趨勢(shì)更加準(zhǔn)確。
進(jìn)一步地,所述第二提取模塊包括:第二獲取模塊,用于獲取該段數(shù)據(jù)點(diǎn)中的起始的至少兩個(gè)數(shù)據(jù)點(diǎn);賦值模塊,用于將至少兩個(gè)數(shù)據(jù)點(diǎn)中數(shù)值最大的數(shù)據(jù)點(diǎn)的值賦值給最大值,數(shù)值最小的數(shù)據(jù)點(diǎn)的值賦值給最小值;比較模塊,用于依次將至少兩個(gè)數(shù)據(jù)點(diǎn)之后的數(shù)據(jù)點(diǎn)與賦值之后的最大值或最小值進(jìn)行比較,并且在大于最大值或者小于最小值的情況,對(duì)最大值和最小值進(jìn)行重新賦值,直到遍歷完該段中的所有數(shù)據(jù)點(diǎn),以得到該段數(shù)據(jù)點(diǎn)的最大值和最小值。
本發(fā)明實(shí)施例根據(jù)提取特征點(diǎn)的數(shù)量設(shè)置分段,當(dāng)首次處理分段后的數(shù)據(jù)點(diǎn)時(shí),把當(dāng)前數(shù)據(jù)點(diǎn)分別賦給該分段(即上述實(shí)施例的段)的最大值和最小值,而后續(xù)數(shù)據(jù)點(diǎn)與該分段的最大值、最小值比較,當(dāng)當(dāng)前數(shù)據(jù)點(diǎn)大于最大值時(shí),用當(dāng)前數(shù)據(jù)點(diǎn)更新最大值,當(dāng)當(dāng)前數(shù)據(jù)點(diǎn)小于最小值時(shí),用當(dāng)前數(shù)據(jù)點(diǎn)更新最小值,保證了最關(guān)鍵的特征點(diǎn)被提??;進(jìn)一步地,對(duì)于每個(gè)段的數(shù)據(jù)點(diǎn)中的最大值和最小值分開賦值,當(dāng)出現(xiàn)需要更新的數(shù)值時(shí),依據(jù)上述方式更新數(shù)據(jù)點(diǎn)的最大值或最小值,這樣,數(shù)據(jù)點(diǎn)的最大值和最小值不斷變化,提取出的特征點(diǎn)所表示的整體趨勢(shì)會(huì)更接近實(shí)際曲線趨勢(shì)。
進(jìn)一步地,還包括:判斷模塊,用于判斷正在提取特征點(diǎn)的當(dāng)前段中提取的特征點(diǎn)的數(shù)量是否小于閾值;第三獲取模塊,用于在小于閾值的情況下,獲取最近提取到的一個(gè)特征點(diǎn);第三提取模塊,用于對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段之后再進(jìn)行特征點(diǎn)的提取。
進(jìn)一步地,還包括:第一重新分段裝置,用于在從每個(gè)段中提取最大值和最小值兩個(gè)數(shù)據(jù)點(diǎn)作為特征點(diǎn),在從當(dāng)前段中僅提取到一個(gè)特征點(diǎn)或者沒(méi)有提取到特征的情況下,對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段。
進(jìn)一步地,還包括:第二重新分段裝置,用于根據(jù)剩余的需要提取的特征點(diǎn)的數(shù)量對(duì)最近提取到的一個(gè)特征點(diǎn)之后的曲線的數(shù)據(jù)點(diǎn)重新進(jìn)行分段,其中,剩余的需要提取的特征點(diǎn)的數(shù)量是根據(jù)特征點(diǎn)的總量以及已經(jīng)提取出的特征點(diǎn)的數(shù)量得到的。
通過(guò)上述實(shí)施例,根據(jù)剩余的點(diǎn)配額動(dòng)態(tài)重置分段,在保證特征點(diǎn)不會(huì)超過(guò)定量的情況下,利用點(diǎn)配額提取盡可能多的特征點(diǎn),從而盡可能的反映曲線數(shù)據(jù)的整體趨勢(shì),提高提取效果。
進(jìn)一步地,特征點(diǎn)的總量為預(yù)先配置的,和/或,根據(jù)繪制曲線的設(shè)備的能力計(jì)算得到的。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。