專(zhuān)利名稱:一種圖像數(shù)據(jù)的處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種圖像數(shù)據(jù)的處理方 法及裝置。
背景技術(shù):
計(jì)算機(jī)圖像處理技術(shù)在生物信息、遙感航空、工業(yè)應(yīng)用、軍事公安及其 他領(lǐng)域有著廣泛應(yīng)用。特別是在醫(yī)學(xué)、氣候、生物等科學(xué)研究應(yīng)用中,科研 人員面對(duì)的圖像處理與分析的復(fù)雜性和圖像數(shù)據(jù)量不斷增大,因此,工作流 技術(shù)在研究應(yīng)用中的優(yōu)勢(shì)逐漸顯現(xiàn)出來(lái)。
計(jì)算機(jī)圖像理解領(lǐng)域綜合了計(jì)算機(jī)視覺(jué)、數(shù)學(xué)、信號(hào)分析、人工智能等 學(xué)科的方法。為實(shí)現(xiàn)圖像理解目的,科研人員需要掌握大量基礎(chǔ)技術(shù)知識(shí),
這就需要有強(qiáng)大的圖像處理與分析工具提供支持; 一個(gè)健壯、精確性高的圖 像處理軟件的開(kāi)發(fā)在很大程度上依賴于計(jì)算機(jī)視覺(jué)技術(shù)和圖像處理的結(jié)合, 因此,應(yīng)用開(kāi)發(fā)者也需要豐富的專(zhuān)業(yè)、高質(zhì)量、易用的支持圖像處理與分析 的開(kāi)發(fā)工具。
醫(yī)學(xué)領(lǐng)域的圖像存在多模態(tài)、分辨率高的特點(diǎn),并且隨著醫(yī)療設(shè)備的不 斷發(fā)展,醫(yī)學(xué)圖像數(shù)據(jù)量也越來(lái)越大,嚴(yán)重影響醫(yī)學(xué)圖像應(yīng)用軟件的計(jì)算效 率和診斷準(zhǔn)確性。計(jì)算機(jī)輔助診斷軟件通常需要經(jīng)過(guò)圖像增強(qiáng)、分割、檢測(cè)、 分類(lèi)和可視化等多種技術(shù)相互融合才能共同完成對(duì)圖像中病灶的識(shí)別,因此, 在軟件開(kāi)發(fā)和應(yīng)用方面,科研人員和醫(yī)生需要一個(gè)功能靈活和支持復(fù)用的醫(yī) 學(xué)圖像理解環(huán)境。本發(fā)明的面向醫(yī)學(xué)圖像理解的工作流模型為解決上述問(wèn)題 提供了有效的解決方法,提出了一種工作流模型的定義、創(chuàng)建和調(diào)度方法與 技術(shù),提高了應(yīng)用軟件的開(kāi)發(fā)效率。
工作流模型在設(shè)計(jì)上根據(jù)工作流模式(或執(zhí)行任務(wù)的時(shí)間順序關(guān)系)可 以分為有向無(wú)環(huán)圖和非有向無(wú)環(huán)圖兩類(lèi)。有向無(wú)環(huán)圖工作流模式包括序列、 并發(fā)和選擇模式;非有向無(wú)環(huán)圖工作流模式在前者的基礎(chǔ)上增加了迭代模式 即循環(huán)模式,這種模式在科學(xué)應(yīng)用是比較常見(jiàn)的。通過(guò)上述幾種簡(jiǎn)單的工作
流才莫式可以組合完成一個(gè)復(fù)雜的工作流,以及子流程的應(yīng)用可以形成大規(guī)片莫 的工作流流程。根據(jù)模型組合方式,工作流模型可分為基于語(yǔ)言的建模和基
于圖的建模。基于語(yǔ)言的建模方法有標(biāo)記語(yǔ)言等;基于圖的建模有Petri網(wǎng)等。
工作流引擎是一個(gè)工作流系統(tǒng)運(yùn)行的核心部分,是工作流流程的執(zhí)行單 元,對(duì)應(yīng)WFMC參考標(biāo)準(zhǔn)的流程引擎。工作流調(diào)度根據(jù)架構(gòu)方式可以分為集中 結(jié)構(gòu)、層次結(jié)構(gòu)和分布結(jié)構(gòu)。集中結(jié)構(gòu)易于實(shí)現(xiàn),流程中的所有控制信息和 數(shù)據(jù)信息都用統(tǒng)一的結(jié)構(gòu)處理,每一個(gè)任務(wù)具有相同的目標(biāo);層次結(jié)構(gòu)有一 個(gè)主執(zhí)行單元,下屬若干個(gè)子執(zhí)行單元,主執(zhí)行單元控制流程的運(yùn)行,并分 配任務(wù)給子執(zhí)行單元;分布結(jié)構(gòu)在實(shí)現(xiàn)上比較困難,每一個(gè)執(zhí)行單元相互獨(dú) 立,沒(méi)有主控制管理者,執(zhí)行單元之間通信協(xié)商完成流程執(zhí)行。工作流調(diào)度 運(yùn)行中節(jié)點(diǎn)會(huì)產(chǎn)生結(jié)果數(shù)據(jù),根據(jù)數(shù)據(jù)的傳遞方式可以將調(diào)度分為三類(lèi)集 中型、中繼型和端到端型。集中型管理方式中間數(shù)據(jù)傳遞有一個(gè)集中位置, 節(jié)點(diǎn)執(zhí)行完畢通過(guò)該位置將結(jié)果傳遞給下一個(gè)節(jié)點(diǎn);中繼型管理方式根據(jù)實(shí) 際的需要會(huì)將每一個(gè)中間結(jié)果數(shù)據(jù)都保留下來(lái),比如中間結(jié)果后來(lái)需要使用; 端對(duì)端型管理方式直接將數(shù)據(jù)從源位置傳遞到目標(biāo)位置,沒(méi)有任何第三方服 務(wù),比較適合大規(guī)模數(shù)據(jù)量。
以醫(yī)學(xué)圖像為例,現(xiàn)有的對(duì)圖像的處理方法通常是提取某圖像的圖像 數(shù)據(jù),根據(jù)實(shí)際業(yè)務(wù)需求對(duì)圖像數(shù)據(jù)進(jìn)行算法處理后給出圖像處理結(jié)果。當(dāng) 需要對(duì)該圖像數(shù)據(jù)進(jìn)行多方向的分析時(shí),需要依次順序重復(fù)前述提取及算法 處理的步驟,并依次給出圖像處理結(jié)果,直到完成對(duì)所有需求的處理。多個(gè) 處理結(jié)果不能同時(shí)顯示,每次只能顯示一個(gè)結(jié)果。如果對(duì)某些圖像有特殊的 處理需求,則要根據(jù)需求重新開(kāi)發(fā)軟件模塊。
可見(jiàn),現(xiàn)有的對(duì)圖像處理過(guò)程中,當(dāng)有多方向的分析需求時(shí),只能依次 處理,處理效率很低。而且,多個(gè)處理結(jié)果不能同時(shí)顯示,每次只能顯示一 個(gè)結(jié)果,不能滿足用戶需要同時(shí)顯示多結(jié)果的需求。需要經(jīng)常性的重新開(kāi)發(fā) 軟件模塊,以應(yīng)對(duì)不斷發(fā)展的新需求,應(yīng)用很不方便,軟件開(kāi)發(fā)效率低、復(fù) 用性差。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種圖像數(shù)據(jù)的處理方法及裝置,以解 決有多方向的分析需求時(shí)圖像處理效率低的問(wèn)題。
本發(fā)明實(shí)施例提供了一種圖像數(shù)據(jù)的處理方法,包括設(shè)置組件庫(kù),由所
述組件庫(kù)中的組件構(gòu)建流程模板,每個(gè)流程模板對(duì)應(yīng)一組節(jié)點(diǎn);所述方法還 包括
流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例,獲取所述 流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件;
基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述當(dāng)前節(jié) 點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
其中,所述流程引擎獲得當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果后,進(jìn)一步包括 遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口 ,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān) 聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
其中,所述遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端 口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的結(jié)果圖像數(shù)據(jù)的步驟具體包括
i) 確定當(dāng)前節(jié)點(diǎn)有輸出端口后,將所述當(dāng)前節(jié)點(diǎn)壓入流程執(zhí)行棧;
ii) 判斷所述流程執(zhí)行棧是否為非空,若是,則執(zhí)行步驟iii),否則結(jié)束;
iii) 獲取所述流程執(zhí)行棧中的棧頂節(jié)點(diǎn);
iv) 判斷所述棧頂節(jié)點(diǎn)的輸出端口是否存在沒(méi)有處理的關(guān)聯(lián),若是,則 將所述存在關(guān)聯(lián)的輸出端口的數(shù)據(jù)傳遞給與該端口關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),然后執(zhí) 行步驟v);否則,檢查當(dāng)前節(jié)點(diǎn)是否存在下一個(gè)輸出端口,若存在,執(zhí)行步 驟vii),若不存在執(zhí)行步驟ii);
v) 流程? 1擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例,獲取所 述流程實(shí)例中與所述關(guān)聯(lián)節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行 所述流程實(shí)例,利用前述組件生成所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果;
vi) 在對(duì)關(guān)聯(lián)節(jié)點(diǎn)的數(shù)據(jù)處理正確,且所述關(guān)聯(lián)節(jié)點(diǎn)存在輸出端口時(shí), 將所述關(guān)聯(lián)節(jié)點(diǎn)壓入流程執(zhí)行棧,然后返回步驟ii);
vii) 當(dāng)前節(jié)點(diǎn)出棧。
其中,所述基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,生成節(jié)點(diǎn)的圖像數(shù)
據(jù)處理結(jié)果的步驟具體包括
獲取內(nèi)存中的數(shù)據(jù)管理器,根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中 的影像數(shù)據(jù);所述影像數(shù)據(jù)包括用于描述影像屬性的頭部數(shù)據(jù)和用于表示影 像本身的像素?cái)?shù)據(jù);
根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取的影像數(shù)據(jù)創(chuàng)建影像信息對(duì)象,并 初始化所述影像信息對(duì)象;
從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng)前節(jié)點(diǎn)匹配的組件對(duì) 所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù);
將所述結(jié)果像素?cái)?shù)據(jù)和該影傳W言息對(duì)象中的頭部數(shù)據(jù)合成為新的影像數(shù) 據(jù);將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該新的影像數(shù)據(jù)與當(dāng)前 處理節(jié)點(diǎn)的一個(gè)輸出端口對(duì)應(yīng);所述與新的影像凄史據(jù)對(duì)應(yīng)的當(dāng)前處理節(jié)點(diǎn)的 一個(gè)輸出端口是在根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù)時(shí) 確定的。
其中,所述節(jié)點(diǎn)包括任務(wù)型、可視化型、邏輯型和子流程型四種類(lèi)型。 其中,所述流程才莫板創(chuàng)建完畢后,進(jìn)一步包括對(duì)所述流程才莫^1進(jìn)行才交驗(yàn)。
其中,所述校驗(yàn)包括靜態(tài)校驗(yàn)和動(dòng)態(tài)校驗(yàn)。
本發(fā)明實(shí)施例還提供了一種圖像數(shù)據(jù)的處理裝置,包括
構(gòu)建單元,用于設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程才莫板,每
個(gè)流程纟莫^1對(duì)應(yīng) 一組節(jié)點(diǎn);
流程實(shí)例生成單元,用于根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程
實(shí)例;
組件獲取單元,用于取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件;
圖像數(shù)據(jù)處理單元,用于基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用 前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖傳_數(shù)據(jù)處理結(jié)果。
其中,還包括遍歷單元,用于遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與 所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù) 處理結(jié)果。
其中,所述圖像數(shù)據(jù)處理單元包括
影像數(shù)據(jù)獲取單元,用于獲取內(nèi)存中的數(shù)據(jù)管理器,根據(jù)流程實(shí)例的標(biāo)
識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù);所述影像數(shù)據(jù)包括用于描述影像屬性 的頭部數(shù)據(jù)和用于表示影像本身的像素?cái)?shù)據(jù);
影像信息對(duì)象處理單元,用于根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取的影 #>數(shù)據(jù)創(chuàng)建影〗象信息對(duì)象,并初始化所述影像信息對(duì)象;
計(jì)算單元,用于從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng)前節(jié) 點(diǎn)匹配的組件對(duì)所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù);
影像數(shù)據(jù)存入單元,將所述結(jié)果像素?cái)?shù)據(jù)和該影像信息對(duì)象中的頭部數(shù) 據(jù)合成為新的影像數(shù)據(jù);將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該 新的影像數(shù)據(jù)與當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口對(duì)應(yīng);所述與新的影像數(shù)據(jù)對(duì) 應(yīng)的當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口是在根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管 理器中的影像數(shù)據(jù)時(shí)確定的。
應(yīng)用本發(fā)明,流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí) 例,獲取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技 術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
本發(fā)明解決了有多方向的分析需求時(shí)圖像處理過(guò)程快速構(gòu)建的問(wèn)題,提 高了軟件開(kāi)發(fā)效率;由于利用已有的組件,軟件復(fù)用性好。
采用本發(fā)明的軟件框架,由于利用內(nèi)存數(shù)據(jù)庫(kù)技術(shù)管理大規(guī)模圖像數(shù)據(jù), 因而具備大規(guī)模圖像的I/O特性,加之軟件框架自身具備的流程并發(fā)機(jī)制, 從而在運(yùn)行性能上本軟件框架比傳統(tǒng)的圖像處理與分析軟件有很大的提升。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面 描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講, 在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。 圖1是根據(jù)本發(fā)明實(shí)施例的流程模型的形成示意圖; 圖2是根據(jù)本發(fā)明實(shí)施例的對(duì)流程模型進(jìn)行靜態(tài)校驗(yàn)的流程圖; 圖3是根據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理過(guò)程示意圖4是根據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理方法流程圖; 圖5是圖4中步驟403的具體實(shí)現(xiàn)流程圖6基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,生成節(jié)點(diǎn)的圖像數(shù)據(jù)處理
結(jié)果的具體實(shí)現(xiàn)流程圖7是才艮據(jù)本發(fā)明實(shí)施例的一個(gè)具體應(yīng)用實(shí)例;
圖8是根據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)的處理裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(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í)施例,都屬于本發(fā)明保護(hù)的范圍。 本發(fā)明采用的是基于標(biāo)記語(yǔ)言和圖形相結(jié)合的建模方法。 依據(jù)圖像理解的實(shí)際需求和領(lǐng)域知識(shí),本發(fā)明實(shí)施例提供了一種工作流 模型,具體如下
本發(fā)明實(shí)施例的工作流模型采用了it據(jù)流才莫型,并在實(shí)現(xiàn)上采用了有向 無(wú)環(huán)圖方式。該模型可以劃分為三+層次概念層、邏輯層和物理層。概念 層表達(dá)了圖像理解需要的圖像數(shù)據(jù)來(lái)源、處理和分析過(guò)程和結(jié)果的可視化, 以及執(zhí)行的時(shí)間順序關(guān)系;邏輯層表達(dá)了任務(wù)執(zhí)行的軟件實(shí)體,比如數(shù)據(jù)連 接、程序調(diào)用接口、組件位置等;物理層表達(dá)了組件運(yùn)行的物理空間與實(shí)體。 本發(fā)明實(shí)施例的工作流模型用形式化方式表述如下
流牙呈可以表達(dá)為P = <N, L>, P表示流禾呈(Process) , N二(n],n2,…,nJ 為流程中節(jié)點(diǎn)的集合,LHl2,…,lJ為流程中連接弧的集合,其中l(wèi)i=(nj,nk)為 從nj指向nk的連接弧,nj,nk ∈N。對(duì)于ni,nj∈N,若有l(wèi)=(ni,nj) ∈L,則ni為nj的 一個(gè)前驅(qū)節(jié)點(diǎn),nj為ni的一個(gè)后繼節(jié)點(diǎn),l稱為nj的一條輸入連"t妄弧或ni的一條 輸出連接弧。若 N'∈N,N'={n'(n,n'))∈L},則N,為節(jié)點(diǎn)n的前驅(qū)節(jié)點(diǎn)集, 記為Pre(n);若N'∈N, 且N'={n'(n,n'))∈L},則N,為節(jié)點(diǎn)n的后繼節(jié)點(diǎn)集, 記為Post(n)。流程中的節(jié)點(diǎn)代表活動(dòng),連接弧代表活動(dòng)間的順序關(guān)系,同時(shí) 代表了節(jié)點(diǎn)間的參數(shù)傳遞。 流程節(jié)點(diǎn)類(lèi)型分為任務(wù)節(jié)點(diǎn)、可視化節(jié)點(diǎn)、邏輯節(jié)點(diǎn)和子流程節(jié)點(diǎn),分 別描述如下。
1 ) 任務(wù)節(jié)點(diǎn)完成具體的計(jì)算過(guò)程,是原子級(jí)的節(jié)點(diǎn),如執(zhí)行數(shù)據(jù)加載、 圖像處理算法等。任務(wù)節(jié)點(diǎn)根據(jù)是否有用戶參與分為自動(dòng)和手動(dòng)兩類(lèi)。自動(dòng) 型活動(dòng)節(jié)點(diǎn),不需要用戶的參與,直接由系統(tǒng)激活來(lái)完成工作任務(wù)。手動(dòng)節(jié)
點(diǎn)需要用戶的參與,用戶輸入相應(yīng)的指令和參數(shù)后流程會(huì)繼續(xù)運(yùn)行;
2) 可視化節(jié)點(diǎn)完成圖像的顯示,根據(jù)不同數(shù)據(jù)結(jié)構(gòu)類(lèi)型顯示相應(yīng)的結(jié) 果,并根據(jù)預(yù)期的方式展示結(jié)果;
3 ) 邏輯節(jié)點(diǎn)控制流程中數(shù)據(jù)流的流向。邏輯節(jié)點(diǎn)對(duì)應(yīng)流程的工作流模 型中的基本路由包括或連接(XOR_JOIN)、或分支(XOR_SPLIT)、與連 接(ANDjOIN)和與分支(AND_SPLIT)四種;
4) 子流程節(jié)點(diǎn)是一個(gè)完整流程的封裝。它是非原子級(jí)的節(jié)點(diǎn),代表一 個(gè)實(shí)際的執(zhí)行流程, 一般是一個(gè)比較復(fù)雜的流程或是一個(gè)循環(huán)結(jié)構(gòu),該節(jié)點(diǎn) 實(shí)體是一個(gè)流程的封裝體。子流程節(jié)點(diǎn)既可以是自動(dòng)型的活動(dòng)節(jié)點(diǎn),也可以 是手動(dòng)型的活動(dòng)節(jié)點(diǎn),這依賴于節(jié)點(diǎn)的組件實(shí)體。
流程中連接模型定義為序偶對(duì)(Ni, Nj),表示從Ni指向Nj的有向弧, Ni為Nj的前驅(qū)節(jié)點(diǎn),Nj為Nj的后繼節(jié)點(diǎn)。連接弧用來(lái)表示流程的流向,是模 型中的重要組成元素。本模型不區(qū)分控制連接弧和數(shù)據(jù)連接弧,每個(gè)連接弧 都體現(xiàn)了流程的控制邏輯,節(jié)點(diǎn)間的時(shí)序關(guān)系,只有當(dāng)前驅(qū)節(jié)點(diǎn)執(zhí)行完畢, 經(jīng)過(guò)連接弧的轉(zhuǎn)移,后繼節(jié)點(diǎn)才允許被執(zhí)行,同時(shí)連接弧還在兩個(gè)節(jié)點(diǎn)之間 建立了 一種數(shù)據(jù)輸入一輸出關(guān)系,即前驅(qū)節(jié)點(diǎn)的輸出數(shù)據(jù)作為后繼節(jié)點(diǎn)的輸 入數(shù)據(jù)。
工作流模型包含了流程模型和被流程模型應(yīng)用的組件,組件由基本模塊 構(gòu)成,所述基本模塊可以是自主開(kāi)發(fā)的,也可以是第三方提供的;所述基本 模塊被封裝為組件,而流程模型是由組件構(gòu)成的。由于每個(gè)組件對(duì)應(yīng)一種類(lèi) 型的節(jié)點(diǎn),因而每個(gè)流程模型也對(duì)應(yīng)一種類(lèi)型的節(jié)點(diǎn)。參見(jiàn)圖1,其是根據(jù) 本發(fā)明實(shí)施例的流程模型的形成示意圖。其中,圖中的第三方模塊表示第三 方提供的,圖中的自有模塊表示自主開(kāi)發(fā)的,可見(jiàn),由基本模塊可以構(gòu)成多 個(gè)組件,而組件又構(gòu)成了流程才莫^1。
本發(fā)明實(shí)施例根據(jù)流程模型設(shè)計(jì)了自動(dòng)驅(qū)動(dòng)型流程運(yùn)行腳本定義語(yǔ)言
(Image Process Definition Language, IPDL ), IPDL是基于XML標(biāo)記語(yǔ)言。 IPDL功能就是將基本模塊組織起來(lái)并形成可以協(xié)作的數(shù)據(jù)流網(wǎng)絡(luò)。 流程模型在IPDL語(yǔ)言中定義為
〈process id="001" name="LungSeg" author="Liw,, date="2007-5-15"/> <node id="001 ",subnode="Task,V>
</proc6ss>
〈process〉標(biāo)簽是流程才莫板的才艮標(biāo)記,id用來(lái)標(biāo)識(shí)流程,name代表了流 程的名稱,author代表流程創(chuàng)建者,date代表流程創(chuàng)建時(shí)間。〈node〉節(jié)點(diǎn)中 id代表節(jié)點(diǎn)的標(biāo)識(shí),subnode代表該節(jié)點(diǎn)是否是子流程節(jié)點(diǎn),因?yàn)樽恿鞒坦?jié) 點(diǎn)不是一個(gè)非原子節(jié)點(diǎn),工作流調(diào)度的過(guò)程不一致?!磏ode〉節(jié)點(diǎn)結(jié)構(gòu)由 <component> 、 <display> 、 <parameters> 、 <position> 、 <prenodelist>和 〈postnodelist〉構(gòu)成。〈parameters〉定義該節(jié)點(diǎn)的參數(shù),節(jié)點(diǎn)運(yùn)行的默認(rèn)配置參 數(shù),包括參數(shù)的名稱和參數(shù)值?!磒renodelist〉和〈postnodelist〉兩個(gè)結(jié)構(gòu)定義 了該節(jié)點(diǎn)的前置節(jié)點(diǎn)集合和后置節(jié)點(diǎn)集合,表達(dá)了流程中的鏈接信息,該鏈 接信息包含了節(jié)點(diǎn)的標(biāo)識(shí)、輸入端口和輸出端口 。 〈componen1^表示一個(gè)組 件,〈display〉表示節(jié)點(diǎn)名稱,用戶可以更改流程模板中這個(gè)顯示名稱, 〈position〉表示節(jié)點(diǎn)在顯示時(shí)的坐標(biāo)位置。
IPDL語(yǔ)言中一個(gè)可以被工作流調(diào)度的組件定義為
〈component id=,,SegThred,, name="Segmentation based threshold" type= "task" />
Id是組件的標(biāo)識(shí),name為組件的名稱,type表示了組件的類(lèi)型。 一個(gè)組 件由〈instance〉、 <mapfile>、 <interface>和〈fields〉組成。其中〈instance〉表示 了組件實(shí)例(程序體),<11^ £^〉表示了如果該組件是非原子組件(子流程 組件),那么該標(biāo)記定位了組件映射位置。映射結(jié)構(gòu)分別描述了組件的域映射、 端口映射和節(jié)點(diǎn)參數(shù)映射?!碔nterface〉表示組件的輸入或者輸出接口 ; 〈fields〉表示組件的參數(shù)域。
通過(guò)上述的定義模型和語(yǔ)言,可以定義任何圖像處理、分析的過(guò)程,流 程用IPDL語(yǔ)言描述表示之后即可被調(diào)度并執(zhí)行。
流程模型定義完畢后需經(jīng)過(guò)流程模型校驗(yàn)以檢查其正確性。流程模型校 驗(yàn)是指流程建模工具定義流程過(guò)程中節(jié)點(diǎn)之間建立連接弧正確性驗(yàn)證,分為 靜態(tài)驗(yàn)證和動(dòng)態(tài)驗(yàn)證,靜態(tài)的校驗(yàn)指流程中節(jié)點(diǎn)連接的合法性校驗(yàn),動(dòng)態(tài)校
驗(yàn)指在流程引擎中運(yùn)行正確性的合法性校驗(yàn)。參見(jiàn)圖2,流程模型的靜態(tài)校驗(yàn) 主要包括如下幾個(gè)步驟
步驟201,判斷端口的連接弧個(gè)數(shù)。輸入端口只能有一條連接弧,輸出端 口可以有任意數(shù)目的連接。在這一步中,可以根據(jù)端口的方向和已經(jīng)存在的 連接弧個(gè)數(shù),判斷連接的合法性;
步驟202,判斷連接的端口類(lèi)型。只有類(lèi)型相同且方向相反的端口可以互 相連接。所以,在建立連接之前,要判斷兩個(gè)端口的類(lèi)型,如果滿足條件, 則允許建立連接,否則,連接失敗;
步驟203,判斷端口的數(shù)據(jù)類(lèi)型。在算法組件庫(kù)中,根據(jù)端口實(shí)際的數(shù)據(jù) 類(lèi)型,又對(duì)每種類(lèi)型的端口進(jìn)行了細(xì)分,如控制端口分成了整型、浮點(diǎn)型、 整型數(shù)組等,只有數(shù)據(jù)類(lèi)型相同的節(jié)點(diǎn)才能互相連接;
步驟204,判斷連接是否構(gòu)成回路。流程中不應(yīng)該存在環(huán)路(子流程除外), 所有的環(huán)路(循環(huán)結(jié)構(gòu))都封裝在子流程節(jié)點(diǎn)中。所以在添加連接弧時(shí),如果 發(fā)現(xiàn)構(gòu)成了環(huán)路,則判斷環(huán)路流程中是否包含循環(huán)結(jié)構(gòu),如果包含,則詢問(wèn) 用戶是否封裝為子流程節(jié)點(diǎn),如果不是則認(rèn)為連接非法。
通過(guò)以上的四個(gè)步驟可以完成模型的靜態(tài)校驗(yàn)。
圖3是根據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理過(guò)程示意圖。圖中上半部分是系 統(tǒng)的操作,下半部分是用戶的操作。
步驟1~2,對(duì)于系統(tǒng)態(tài),設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程 模板;對(duì)于用戶態(tài),用戶可以從組件庫(kù)中取出組件放入定義工具視圖中,將 組件連接起來(lái),形成IPDL語(yǔ)言定義的流程模板。
步驟3~4,對(duì)于系統(tǒng)態(tài),流程引擎根據(jù)流程模板,生成流程實(shí)例;對(duì)于 用戶態(tài),用戶將流程4莫;f反部署到流程引擎中,以用于生成流程實(shí)例,此時(shí), 用戶還可以對(duì)組件所對(duì)應(yīng)的參數(shù)進(jìn)行設(shè)置,如輸入數(shù)據(jù)的來(lái)源等。
步驟5,對(duì)于系統(tǒng)態(tài),流程引擎執(zhí)行流程;對(duì)于用戶態(tài),用戶可以查看流 程引擎運(yùn)行中產(chǎn)生的信息。
步驟6,對(duì)于系統(tǒng)態(tài),流程引擎處理完畢生成圖像數(shù)據(jù)處理結(jié)果;對(duì)于用 戶態(tài),用戶可以查看流程運(yùn)行結(jié)果,該結(jié)果可以是可視化的界面的圖像數(shù)據(jù), 也可以是存儲(chǔ)到文件中的結(jié)果數(shù)據(jù)。
圖4所示為根據(jù)本發(fā)明實(shí)施例的圖像數(shù)據(jù)處理方法流程圖。在本流程執(zhí)行 之前,已設(shè)置了組件庫(kù),且由所述組件庫(kù)中的組件構(gòu)建了流程模板,由于每 個(gè)組件對(duì)應(yīng)一組節(jié)點(diǎn),因而每個(gè)流程模板對(duì)應(yīng)一組節(jié)點(diǎn)。該流程包括如下步 驟
步驟401,流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例, 獲取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件。
上述當(dāng)前節(jié)點(diǎn)可以認(rèn)為是一個(gè)流程實(shí)例的起始節(jié)點(diǎn)。 一個(gè)應(yīng)用要求所對(duì) 應(yīng)的整體流程中可以有多個(gè)起始節(jié)點(diǎn)即沒(méi)有輸入的節(jié)點(diǎn);多個(gè)流程實(shí)例可以 在一個(gè)視圖上定義并執(zhí)行; 一個(gè)節(jié)點(diǎn)的輸入端口的關(guān)聯(lián)數(shù)為0或1,但是輸 出端口的關(guān)聯(lián)數(shù)可以是O或N (N為自然數(shù))。
流程引擎需要遍歷節(jié)點(diǎn)列表以尋找起始節(jié)點(diǎn),每找到一個(gè),引擎便會(huì)從 該節(jié)點(diǎn)開(kāi)始執(zhí)行流程,執(zhí)行結(jié)束后流程引擎會(huì)繼續(xù)尋找下一個(gè)起始節(jié)點(diǎn),依 此類(lèi)推。
步驟402,基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成 所述當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
至此,實(shí)現(xiàn)了對(duì)當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)的處理。為了進(jìn)一步對(duì)與當(dāng)前節(jié)點(diǎn) 相關(guān)聯(lián)的節(jié)點(diǎn)進(jìn)行處理,需要遍歷該當(dāng)前的關(guān)聯(lián)節(jié)點(diǎn)。因此,還包括
步驟403,遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口 存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。本步驟的具 體處理流程如圖5所示。
參見(jiàn)圖5,其是圖4中步驟403的具體實(shí)現(xiàn)流程圖,即根據(jù)本發(fā)明實(shí)施例的 遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口 ,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān) 聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果的流程圖。本流程是在前述
步驟402中對(duì)當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行了正確處理的前提下執(zhí)行的,如果前述步驟 402中對(duì)當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)處理不正確如出現(xiàn)異常情況等,則不存在本流程。
步驟501~502,確定當(dāng)前節(jié)點(diǎn)(CurNode)有輸出端口后,將所述當(dāng)前節(jié) 點(diǎn)壓入流程執(zhí)行棧(RunStack)。如果當(dāng)前節(jié)點(diǎn)不存在輸出端口則直接結(jié)束。
步驟503,判斷所述流程執(zhí)行棧是否為非空,若是,則執(zhí)行步驟504,否 則結(jié)束。
步驟504,獲取所述流程執(zhí)行棧中的棧頂節(jié)點(diǎn)(TopNode)。
步驟505,判斷所述棧頂節(jié)點(diǎn)的輸出端口是否存在沒(méi)有處理的關(guān)聯(lián),若 是,則執(zhí)行步驟506,否則,執(zhí)行步驟509。
步驟506,將與所述棧頂節(jié)點(diǎn)存在關(guān)聯(lián)的輸出端口的數(shù)據(jù)傳遞給與該端 口關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn)(RelNode),然后執(zhí)行步驟507。
步驟507,流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例, 獲取所述流程實(shí)例中與所述關(guān)聯(lián)節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技 術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
步驟508,判斷在對(duì)關(guān)聯(lián)節(jié)點(diǎn)的數(shù)據(jù)處理是否正確,且所述關(guān)聯(lián)節(jié)點(diǎn)是 否存在輸出端口,若均為是,則執(zhí)行步驟509,否則返回步驟503。
步驟509,將所述關(guān)聯(lián)節(jié)點(diǎn)壓入流程執(zhí)行棧,然后返回步驟503。
步驟510,檢查當(dāng)前節(jié)點(diǎn)是否存在下一個(gè)輸出端口,若存在,執(zhí)行步驟 511,若不存在執(zhí)行步驟503。
步驟511,當(dāng)前節(jié)點(diǎn)出棧,然后返回步驟503。
通過(guò)執(zhí)行上述流程即可遍歷單棵樹(shù)上的所有關(guān)聯(lián)節(jié)點(diǎn)。本發(fā)明實(shí)施例對(duì) 單棵多叉樹(shù)的執(zhí)行采用的是樹(shù)的深度優(yōu)先搜索算法,其中的剪枝條件是,當(dāng) 某個(gè)節(jié)點(diǎn)沒(méi)有對(duì)數(shù)據(jù)進(jìn)行正確處理時(shí),引擎便不會(huì)繼續(xù)執(zhí)行該節(jié)點(diǎn)的后繼節(jié) 點(diǎn)。
圖像數(shù)據(jù)尤其是醫(yī)學(xué)圖像數(shù)據(jù)(如CT/MR等)通常由大量的切片數(shù)據(jù) 組成,在系統(tǒng)中占據(jù)大量的內(nèi)存空間,會(huì)影響系統(tǒng)的運(yùn)行效率;再者,流程 引擎對(duì)同一組數(shù)據(jù)流程執(zhí)行中在每一個(gè)節(jié)點(diǎn)上都有一份處理后的數(shù)據(jù)(流程 運(yùn)行的必要),況且流程會(huì)并發(fā)執(zhí)行,因此占用的空間更大。因此,對(duì)內(nèi)存中 的大量圖像數(shù)據(jù)的有效數(shù)據(jù)管理是流程執(zhí)行引擎的重要方面。因而本發(fā)明實(shí)
施例還提供了 一種高效、大規(guī)模內(nèi)存數(shù)據(jù)的處理機(jī)制一基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù) 的運(yùn)行流程實(shí)例,生成節(jié)點(diǎn)的圖 <象數(shù)據(jù)處理結(jié)果的方法。
參見(jiàn)圖6,其是圖4的步驟402以及圖5的步驟507中基于內(nèi)存數(shù)據(jù)庫(kù) 技術(shù)運(yùn)行所述流程實(shí)例,生成節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果的具體實(shí)現(xiàn)流程圖。 包括如下步驟
步驟601,獲取內(nèi)存中的數(shù)據(jù)管理器,該數(shù)據(jù)管理器中包括流程實(shí)例的 標(biāo)識(shí)(ID)和與該標(biāo)識(shí)對(duì)應(yīng)的影像凄t據(jù);
步驟602,根據(jù)流程實(shí)例的標(biāo)識(shí)(ID)加載數(shù)據(jù)管理器中的影像數(shù)據(jù); 所述影像數(shù)據(jù)包括用于描述影像屬性的頭部數(shù)據(jù)和用于表示影像本身的像素 數(shù)據(jù);所述頭部數(shù)據(jù)包括如影像的高、寬等屬性信息。
步驟603,根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取的影像數(shù)據(jù)創(chuàng)建影像信 息對(duì)象,并初始化所述影〗象信息對(duì)象。
步驟604,從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng)前節(jié)點(diǎn)匹 配的組件對(duì)所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù)。本步驟中的計(jì)算可 以是根據(jù)應(yīng)用的需要所進(jìn)行的任何計(jì)算,如Sobel算子處理結(jié)果,或經(jīng)小波 分解后再進(jìn)行直方圖均衡計(jì)算等等。
步驟605,將所述結(jié)果像素?cái)?shù)據(jù)和該影像信息對(duì)象中的頭部數(shù)據(jù)合成為 新的影像數(shù)據(jù)。
步驟606,將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該新的影像 數(shù)據(jù)與當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口對(duì)應(yīng);所述與新的影像數(shù)據(jù)對(duì)應(yīng)的當(dāng)前 處理節(jié)點(diǎn)的一個(gè)輸出端口是在根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的 影像數(shù)據(jù)時(shí)確定的。
上述基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)的運(yùn)行流程實(shí)例,生成節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié) 果的方法既適用于并發(fā)運(yùn)行中的數(shù)據(jù)管理,也適用于針對(duì)單個(gè)流程內(nèi)部的數(shù) 據(jù)管理。它最高可以支持256TB數(shù)據(jù)的管理。
參見(jiàn)圖7,其是根據(jù)本發(fā)明實(shí)施例的一個(gè)具體應(yīng)用實(shí)例。從該圖中可以 看到有三個(gè)流程(A、 B和C),三個(gè)流程的輸入數(shù)據(jù)都是標(biāo)號(hào)1的原始CT 圖像
A流程完成了圖像邊緣;險(xiǎn)測(cè),結(jié)果圖標(biāo)號(hào)2為Sobel算子處理結(jié)果,3
為Roberts算子處理結(jié)果;
B流程完成圖像的增強(qiáng)處理和特征提取,4為經(jīng)過(guò)小波分解后的高頻圖 像經(jīng)過(guò)直方圖均衡增強(qiáng)結(jié)果,5為圖像的紋理共生矩陣特征;
C流程完成了 CT圖像疑似結(jié)節(jié)的檢測(cè),6為標(biāo)定出的疑似結(jié)節(jié)區(qū)域(圖 中白色圓圈)。
在圖7所示實(shí)例中是以三個(gè)流程并行運(yùn)行為例,在實(shí)際應(yīng)用中,可以只 是其中一個(gè)流程或有更多的流程并行運(yùn)行。
本發(fā)明實(shí)施例還提供了一種圖像數(shù)據(jù)的處理裝置,參見(jiàn)圖8,包括
構(gòu)建單元801,用于設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程模板, 每個(gè)流程模板對(duì)應(yīng) 一組節(jié)點(diǎn);
流程實(shí)例生成單元802,用于根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的 流程實(shí)例;
組件獲取單元803,用于取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組
件;
圖像數(shù)據(jù)處理單元804,用于基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例, 利用前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
所述裝置還包括遍歷單元805,用于遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口, 獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖 像數(shù)據(jù)處理結(jié)果。
上述圖像數(shù)據(jù)處理單元804還可以包括
影像數(shù)據(jù)獲取單元8041,用于獲取內(nèi)存中的數(shù)據(jù)管理器,根據(jù)流程實(shí)例 的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù);所述影像數(shù)據(jù)包括用于描述影像 屬性的頭部數(shù)據(jù)和用于表示影像本身的像素?cái)?shù)據(jù);
影像信息對(duì)象處理單元8042,用于根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取 的影像數(shù)據(jù)創(chuàng)建影像信息對(duì)象,并初始化所述影像信息對(duì)象;
計(jì)算單元8043,用于從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng) 前節(jié)點(diǎn)匹配的組件對(duì)所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù);
影像數(shù)據(jù)存入單元8044,將所述結(jié)果像素?cái)?shù)據(jù)和該影像信息對(duì)象中的頭 部數(shù)據(jù)合成為新的影像數(shù)據(jù);將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該新的影像數(shù)據(jù)與當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口對(duì)應(yīng);所述與新的影像數(shù) 據(jù)對(duì)應(yīng)的當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口是在根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù) 據(jù)管理器中的影像數(shù)據(jù)時(shí)確定的。
本發(fā)明實(shí)施例中提出的工作流模型和調(diào)度方法很好地滿足了圖像理解的 基本要求,具有很強(qiáng)的實(shí)用性和適用性。該模型可以將任何一個(gè)圖像理解的 需求過(guò)程表達(dá)出來(lái)。本發(fā)明提出的基于組件的圖像理解框架為圖像處理與分 析軟件的開(kāi)發(fā)和快速原型提供了有力的開(kāi)發(fā)支撐工具,節(jié)省了開(kāi)發(fā)的成本, 提高了開(kāi)發(fā)效率,支持良好的軟件復(fù)用機(jī)制。同時(shí),具備大規(guī)模數(shù)據(jù)i/o機(jī) 制和流程并發(fā)機(jī)制的軟件框架比傳統(tǒng)的圖像處理與分析軟件在運(yùn)行性能上有 很大的提升。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范 圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均 包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1、一種圖像數(shù)據(jù)的處理方法,其特征在于,設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程模板,每個(gè)流程模板對(duì)應(yīng)一組節(jié)點(diǎn);所述方法還包括流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例,獲取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述流程引擎獲得當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果后,進(jìn)一步包括遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與所述當(dāng)前節(jié)點(diǎn)輸出端口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的結(jié)果圖像數(shù)據(jù)的步驟具體包括i) 確定當(dāng)前節(jié)點(diǎn)有輸出端口后,將所述當(dāng)前節(jié)點(diǎn)壓入流程執(zhí)行棧;ii) 判斷所述流程執(zhí)行棧是否為非空,若是,則執(zhí)行步驟iii),否則結(jié)束;iii) 獲取所述流程執(zhí)行棧中的棧頂節(jié)點(diǎn);iv) 判斷所述棧頂節(jié)點(diǎn)的輸出端口是否存在沒(méi)有處理的關(guān)聯(lián),若是,則將所述存在關(guān)聯(lián)的輸出端口的數(shù)據(jù)傳遞給與該端口關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),然后執(zhí)行步驟v);否則,檢查當(dāng)前節(jié)點(diǎn)是否存在下一個(gè)輸出端口,若存在,執(zhí)行步 驟vii),若不存在執(zhí)行步驟ii);v) 流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例,獲取所述流程實(shí)例中與所述關(guān)聯(lián)節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果;vi) 在對(duì)關(guān)聯(lián)節(jié)點(diǎn)的數(shù)據(jù)處理正確,且所述關(guān)聯(lián)節(jié)點(diǎn)存在輸出端口時(shí), 將所述關(guān)聯(lián)節(jié)點(diǎn)壓入流程執(zhí)行棧,然后返回步驟ii);vii) 當(dāng)前節(jié)點(diǎn)出棧。
4、 根據(jù)權(quán)利要求1或3所述的方法,其特征在于,所述基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,生成節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果的步驟具體包括獲取內(nèi)存中的數(shù)據(jù)管理器,根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù);所述影像數(shù)據(jù)包括用于描述影像屬性的頭部數(shù)據(jù)和用于表示影像本身的像素?cái)?shù)據(jù);根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取的影像數(shù)據(jù)創(chuàng)建影像信息對(duì)象,并初始化所述影像信息對(duì)象;從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng)前節(jié)點(diǎn)匹配的組件對(duì)所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù);將所述結(jié)果像素?cái)?shù)據(jù)和該影像信息對(duì)象中的頭部數(shù)據(jù)合成為新的影像數(shù) 據(jù);將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該新的影像數(shù)據(jù)與當(dāng)前 處理節(jié)點(diǎn)的 一個(gè)輸出端口對(duì)應(yīng);所述與新的影像數(shù)據(jù)對(duì)應(yīng)的當(dāng)前處理節(jié)點(diǎn)的 一個(gè)輸出端口是在根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù)時(shí) 確定的。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點(diǎn)包括任務(wù)型、可 視化型、邏輯型和子流程型四種類(lèi)型。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述流程模板創(chuàng)建完畢后, 進(jìn)一步包括對(duì)所述流程模板進(jìn)行校驗(yàn)。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述校驗(yàn)包括靜態(tài)校驗(yàn)和 動(dòng)態(tài)校驗(yàn)。
8、 一種圖像數(shù)據(jù)的處理裝置,其特征在于,包括構(gòu)建單元,用于設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程才莫板,每 個(gè)流程才莫纟反對(duì)應(yīng) 一組節(jié)點(diǎn);流程實(shí)例生成單元,用于根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程 實(shí)例;組件獲取單元,用于取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件; 圖像數(shù)據(jù)處理單元,用于基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用 前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖像凄t據(jù)處理結(jié)果。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括遍歷單元,用于遍歷當(dāng)前節(jié)點(diǎn)的所有輸出端口,獲取與所述當(dāng)前節(jié)點(diǎn)輸 出端口存在關(guān)聯(lián)的關(guān)聯(lián)節(jié)點(diǎn),以及所述關(guān)聯(lián)節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。
10、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述圖像數(shù)據(jù)處理單元包括影像數(shù)據(jù)獲取單元,用于獲取內(nèi)存中的數(shù)據(jù)管理器,根據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管理器中的影像數(shù)據(jù);所述影像數(shù)據(jù)包括用于描述影像屬性 的頭部數(shù)據(jù)和用于表示影像本身的像素?cái)?shù)據(jù);影像信息對(duì)象處理單元,用于根據(jù)當(dāng)前處理節(jié)點(diǎn)的標(biāo)識(shí)以及所獲取的影 像數(shù)據(jù)創(chuàng)建影像信息對(duì)象,并初始化所述影像信息對(duì)象;計(jì)算單元,用于從所述影像信息對(duì)象中獲取像素?cái)?shù)據(jù),根據(jù)所述當(dāng)前節(jié) 點(diǎn)匹配的組件對(duì)所述像素?cái)?shù)據(jù)進(jìn)行計(jì)算,獲取結(jié)果像素?cái)?shù)據(jù);影像數(shù)據(jù)存入單元,將所述結(jié)果像素?cái)?shù)據(jù)和該影像信息對(duì)象中的頭部數(shù) 據(jù)合成為新的影像數(shù)據(jù);將所述新的影像數(shù)據(jù)存入所述數(shù)據(jù)管理器中,且該 新的影像數(shù)據(jù)與當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口對(duì)應(yīng);所述與新的影像數(shù)據(jù)對(duì) 應(yīng)的當(dāng)前處理節(jié)點(diǎn)的一個(gè)輸出端口是在才艮據(jù)流程實(shí)例的標(biāo)識(shí)ID加載數(shù)據(jù)管 理器中的影像數(shù)據(jù)時(shí)確定的。
全文摘要
本發(fā)明公開(kāi)了一種圖像數(shù)據(jù)的處理方法,設(shè)置組件庫(kù),由所述組件庫(kù)中的組件構(gòu)建流程模板,每個(gè)流程模板對(duì)應(yīng)一組節(jié)點(diǎn);所述方法還包括流程引擎根據(jù)滿足應(yīng)用要求的流程模板生成對(duì)應(yīng)的流程實(shí)例,獲取所述流程實(shí)例中與當(dāng)前節(jié)點(diǎn)類(lèi)型相匹配的組件;基于內(nèi)存數(shù)據(jù)庫(kù)技術(shù)運(yùn)行所述流程實(shí)例,利用前述組件生成所述當(dāng)前節(jié)點(diǎn)的圖像數(shù)據(jù)處理結(jié)果。解決了有多方向的分析需求時(shí)圖像處理效率低的問(wèn)題,提高了處理效率。具備大規(guī)模數(shù)據(jù)I/O機(jī)制和流程并發(fā)機(jī)制的軟件框架比傳統(tǒng)的圖像處理與分析軟件在運(yùn)行性能上有很大的提升。本發(fā)明還公開(kāi)了一種圖像數(shù)據(jù)處理裝置。
文檔編號(hào)G06F9/44GK101387958SQ200810170298
公開(kāi)日2009年3月18日 申請(qǐng)日期2008年10月20日 優(yōu)先權(quán)日2008年10月20日
發(fā)明者楊金柱, 偉 栗, 歡 耿, 趙大哲 申請(qǐng)人:東軟集團(tuán)股份有限公司