tom演算法
演算法介紹:
現有矩陣M,N和P,P=M*N。如果M(或N)的行列式為零,則由P和M(或P和N)計算N(或M)是一個多值問題,特別是M(或N)的秩越小,N(或M)的解越多。
由以上問題,假設Tom和Bob相互通信,現做如下約定:
1. 在正式通信之前,二人約定一個隨機奇異矩陣M。
2. Tom和Bob各自選取一個n*n的隨機矩陣作為他們的私有密鑰,設Tom的為A,Bob的為B。
3. 然後Tom計算矩陣Pa=A*M作為他的公鑰,Bob計算矩陣Pb=M*B作為他的公鑰。
4. 當Tom向Bob發送消息時,計算加密矩陣K=A*Pb,用K對消息加密後發送到Bob端,Bob收到消息後,計算解密矩陣K』= Pa*B,由以上代數關系可以看出,K= K』,也既加密和解密是逆過程,可以參照對稱加密標准AES。
5. Bob向Tom發送消息時,計算解密矩陣K= Pa*B,加密。Tom收到消息後計算解密矩陣K=A*Pb,原理同上。
演算法分析:
由以上介紹可容易看出,此演算法比RSA和ECC的加密效率要高4-6個數量級,且加密強度在增大n的基礎上,可獲得與以上兩演算法相當的加密強度。
該演算法仍在論證階段,歡迎此方面高手攜手參與或提出缺點.
email:[email protected]
B. Fast演算法原理:fastica演算法步驟詳解
1. Fast演算法原理
我們前面已經介紹過幾個特徵檢測器,它們的效果都很好,特別是SIFT和SURF演算法,但是從實時處理的角度來看,效率還是太低了。為了解決這個問題,Edward Rosten和Tom Drummond在2006年提出了FAST演算法,並在2010年對其進行了修正。
FAST (全稱Features from accelerated segment test)是一種用於角點檢測的演算法,該演算法的原理是取圖像中檢測點,以該點為圓心的周圍鄰域內像素點判斷檢測點是否為角點,通俗的講就是若一個像素周圍有一定數量的像素與該點像素值不同,則認為其為角點。
1. 1 FAST演算法的基本流程
在圖像中選取一個像素點 p,來判斷它是不是關鍵點。$$I_p$$等於像素點 p的灰度值。
以r為半徑畫圓,覆蓋p點周圍的M個像素,通常情狂下,設置 r=3,則 M=16,如下圖所示:
設置一個閾值t,如果在這 16 個像素點中存在 n 個連續像素點的灰度值都高於$$I_p + t$$,或者低於$$I_p - t$$,那麼像素點 p 就被認為是一個角點。如上圖中的虛線所示,n 一般取值為 12。
由於在檢測特徵點時是需要對圖像中所有的像素點進行檢測,然而圖像中的絕大多數點都不是特徵點,如果對每個像素點都進行上述的檢測過程,那顯然會浪費許多時間,因此採用一種進行非特徵點判別的方法:首先對候選點的周圍每個 90 度的點:1,9,5,13 進行測試(先測試 1 和 19, 如果它們符合閾值要求再測試 5 和 13)。如果 p 是角點,那麼這四個點中至少有 3 個要符合閾值要求,否則直接剔除。對保留下來的點再繼續進行測試(是否有 12 的點符合閾值要求)。
雖然這個檢測器的效率很高,但它有以下幾條缺點:
·獲得的候選點比較多
·特徵點的選取不是最優的,因為它的效果取決與要解決的問題和角點的分布情況。
·進行非特徵點判別時大量的點被丟棄
·檢測到的很多特徵點都是相鄰的
前 3 個問題可以通過機器學習的方法解決,最後一個問題可以使用非最大值抑制的方法解決。
1. 2 機器學習的角點檢測器
選擇一組訓練圖片(最好是跟最後應用相關的圖片)
使用 FAST 演算法找出每幅圖像的特徵點,對圖像中的每一個特徵點,將其周圍的 16 個像素存儲構成一個向量P。
每一個特徵點的 16 像素點都屬於下列三類中的一種
根據這些像素點的分類,特徵向量 P 也被分為 3 個子集:Pd ,Ps ,Pb,
定義一個新的布爾變數$$K_p$$,如果 p 是角點就設置為 Ture,如果不是就設置為 False。
利用特徵值向量p,目標值是$K_p$,訓練ID3 樹(決策樹分類器)。
將構建好的決策樹運用於其他圖像的快速的檢測。
1. 3 非極大值抑制
在篩選出來的候選角點中有很多是緊挨在一起的,需要通過非極大值抑制來消除這種影響。
為所有的候選角點都確定一個打分函數$$V $$ , $$V $$的值可這樣計算:先分別計算$$I_p$$與圓上16個點的像素值差值,取絕對值,再將這16個絕對值相加,就得到了$$V $$的值
最後比較毗鄰候選角點的 V 值,把V值較小的候選角點pass掉。
FAST演算法的思想與我們對角點的直觀認識非常接近,化繁為簡。FAST演算法比其它角點的檢測演算法快,但是在雜訊較高時不夠穩定,這需要設置合適的閾值。
2.Fast實現
OpenCV中的FAST檢測演算法是用傳統方法實現的,
1.實例化fast
參數:
·threshold:閾值t,有默認值10
·nonmaxSuppression:是否進行非極大值抑制,默認值True
返回:
Fast:創建的FastFeatureDetector對象
2.利用fast.detect檢測關鍵點,沒有對應的關鍵點描述
參數:
gray: 進行關鍵點檢測的圖像,注意是灰度圖像
返回:
kp: 關鍵點信息,包括位置,尺度,方向信息
3.將關鍵點檢測結果繪制在圖像上,與在sift中是一樣的
示例:
結果:
C. c語言演算法求解,已知一個字元串tom is cat ,編寫演算法輸出cat is tom
如果你只要演算法的話,我來陳述一下我的想法,你可以用二維數組:
就本例而言
s[3][10]; s[1]="tom"; s[2]="is";s[3]="cat"
然後反轉輸出就可以了。
希望回答能夠幫到你,不過題目好像有點簡單,不知道是否因為理解錯誤。
D. 根據文字描述的點與點之間連接關系,能產生圖形顯示的演算法是什麼
計算機圖形學的發展
1963年,伊凡•蘇澤蘭(Ivan Sutherland)在麻省理工學院發表了名為《畫板》的博士論文, 它標志著計算機圖形學的正式誕生。至今已有三十多年的歷史。此前的計算機主要是符號處理系統,自從有了計算機圖形學,計算機可以部分地表現人的右腦功能了,所以計算機圖形學的建立具有重要的意義。近年來, 計算機圖形學在如下幾方面有了長足的進展:
1、智能CAD
CAD 的發展也顯現出智能化的趨勢,就目前流行的大多數CAD 軟體來看,主要功能是支持產品的後續階段一一工程圖的繪制和輸出,產品設計功能相對薄弱, 利用AutoCAD 最常用的功能還是互動式繪圖,如果要想進行產品設計, 最基本的是要其中的AutoLisp語言編寫程序,有時還要用其他高級語言協助編寫,很不方便。而新一代的智能CAD 系統可以實現從概念設計到結構設計的全過程。例如,德國西門子公司開發的Sigraph Design軟體可以實現如下功能:① 從一開始就可以用計算機設計草圖,不必耗時費力的輸入精確的坐標點,能隨心所欲的修改,一旦結構確定,給出正確的尺寸即得到滿意的圖紙;② 這個軟體中具有關系數據結構, 當你改變圖紙的局部,相關部分自動變化,在一個視圖上的修改,其他視圖自動修改,甚至改變一個零件圖,相關的其它零件圖以及裝配圖的相關部分自動修改:③ 在各個專業領域中,有一些常用件和標准件, 因此,希望有一個參數化圖庫。而Sigraph不用編程只需畫一遍圖就能建成自己的圖庫;④Sigraph還可以實現產品設計的動態模擬用於觀察設計的裝置在實際運行中是否合理等等。智能CAD的另一個領域是工程圖紙的自動輸入與智能識別,隨著CAD技術的迅速推廣應用,各個工廠、設計院都需將成千上萬張長期積累下來的設計圖紙快速而准確輸入計算機,作為新產品開發的技術資料。多年來,CAD 中普遍採用的圖形輸入方法是圖形數字化儀交互輸入和滑鼠加鍵盤的交互輸入方法.很難適應工程界大量圖紙輸入的迫切需要。因此, 基於光電掃描儀的圖紙自動輸入方法已成為國內外CAD工作者的努力探索的新課題。但由於工程圖的智能識別涉及到計算機的硬體、計算機圖形學、模式識別及人工智慧等高新技術內容,使得研究工作的難點較大。工程圖的自動輸入與智能識別是兩個密不可分的過程,用掃描儀將手繪圖紙輸入到計算機後,形成的是點陣圖象. CAD 中只能對矢量圖形進行編輯, 這就要求將點陣圖象轉化成矢量圖形.而這些工作都讓計算機自動完成.這就帶來了許多的問題.如① 圖象的智能識別;② 字元的提取與識別;③ 圖形拓撲結構的建立與圖形的理解;④實用化的後處理方法等等。國家自然科學基金會和863計劃基金都在支持這方面的研究, 國內外已有一些這方面的軟體付諸實用,如美國的RVmaster,德國的VPmax, 以及清華大學,東北大學的產品等。但效果都不很理想.還未能達到人們企盼的效果。
2 計算機美術與設計
2.1 計算機美術的發展
1952年.美國的Ben .Laposke用模擬計算機做的波型圖《電子抽象畫》預示著電腦美術的開始(比計算機圖形學的正式確立還要早)。計算機美術的發展可分為三個階段:
(1)早期探索階段(1952 1968年)主創人員大部分為科學家和工程師,作品以平面幾何圖形為主。1963年美國《計算機與自動化》雜志開始舉辦年度「計算機美術比賽」。
代表作品:1960年Wiuiam Ferrter為波音公司製作的人體工程學實驗動態模擬.模擬飛行員在飛機中各種情況;1963年Kenneth Know Iton的列印機作品《裸體》。1967年日本GTG小組的《回到方塊》。
(2)中期應用階段(1968年~1983年)以1968年倫敦第一次世界計算機美術大展一「控制論珍寶 (Cybernehic Serendipity1為標志,進入世界性研究與應用階段;計算機與計算機圖形技術逐步成熟, 一些大學開始設置相關課題, 出現了一些CAD應用系統和成果, 三維造型系統產生並逐漸完善。代表作品:1983年美國IBM 研究所Richerd Voss設計出分形山(可到網站「分形頻道hrtp:ttfracta1.126.tom 中查找有關「分形」的知識)
(3)應用與普及階段(1984年~現在)以微機和工作站為平台的個人計算機圖形系統逐漸走向成熟, 大批商業性美術(設計)軟體面市; 以蘋果公司的MAC 機和圖形化系統軟體為代表的桌面創意系統被廣泛接受,CAD成為美術設計領域的重要組成部分。代表作品:1990年Jefrey Shaw的交互圖形作品「易讀的城市f The legible city) 。
2.2 計算機設計學(Computer Des i gn i cs)
包括三個方面:環境設計(建築、汽車)、視覺傳達設計(包裝)、產品設計。
CAD對藝術的介入,分三個應用層次:
(1)計算機圖形作為系統設計手段的一種強化和替代; 效果是這個層次的核心(高精度、高速度、高存儲)。
(2)計算機圖形作為新的表現形式和新的形象資源。
(3)計算機圖形作為一種設計方法和觀念。
3 計算機動畫藝術
3.1 歷史的回顧
計算機動畫技術的發展是和許多其它學科的發展密切相關的。計算機圖形學、計算機繪畫、計算機音樂、計算機輔助設計、電影技術、電視技術、計算機軟體和硬體技術等眾多學科的最新成果都對計算機動畫技術的研究和發展起著十分重要的推動作用50年代到60年代之間,大部分的計算機繪畫藝術作品都是在列印機和繪圖儀上產生的。一直到60年代後期,才出現利用計算機顯示點陣的特性,通過精心地設計圖案來進行計算機藝術創造的活動。
70年代開始.計算機藝術走向繁榮和成熟 1973 年,在東京索尼公司舉辦了「首
屆國際計算機藝術展覽會」80年代至今,計算機藝術的發展速度遠遠超出了人們的想像 在代表計算機圖形研究最高水平的歷屆SIGGRAPH年會上,精彩的計算機藝術作品層出不窮。另外,在此期間的奧斯卡獎的獲獎名單中,採用計算機特技製作電影頻頻上榜,大有舍我其誰的感覺。在中國,首屆計算機藝術研討會和作品展示活動於1995年在北京舉行 它總結了近年來計算機藝術在中國的發展,對未來的工作起到了重要的推動作用
3.2 計算機動畫在電影特技中的應用
計算機動畫的一個重要應用就是製作電影特技 可以說電影特技的發展和計算機動畫的發展是相互促進的。1987年由著名的計算機動畫專家塔爾曼夫婦領導的MIRA 實驗室製作了一部七分鍾的計算機動畫片《相會在蒙特利爾》 再現了國際影星瑪麗蓮•夢露的風采。1988年,美國電影《誰陷害了兔子羅傑》 (Who Framed Roger Rabbit?)中二維動畫人物和真實演員的完美結合,令人膛目結舌、嘆為觀止 其中用了不少計算機動畫處理。1991年美國電影《終結者II:世界末日》展現了奇妙的計算機技術。此外,還有《侏羅紀公園》(Jurassic Park)、《獅子王》、《玩具總動員》(Toy Story)等。
3.3 國內情況
我國的計算機動畫技術起步較晚。1990年的第11屆亞洲運動會上,首次採用了計算機三維動畫技術來製作有關的電視節目片頭。從那時起,計算機動畫技術在國內影視製作方面得到了訊速的發展, 繼而以3D Studio 為代表的三維動畫微機軟什和以Photostyler、Photoshop等為代表的微機二維平面設計軟體的普及,對我國計算機動畫技術的應用起到了推波助讕的作用。
計算機動畫的應用領域十分寬廣 除了用來製作影視作品外, 在科學研究、視覺模擬、電子游戲、工業設計、教學訓練、寫真模擬、過程式控制制、平面繪畫、建築設計等許多方面都有重要應用,如軍事戰術模擬
4 科學計算可視化
科學計算的可視化是發達國家八十年代後期提出並發展起來的一門新興技術,它將科學計算過程中及計算結果的數據轉換為幾何圖形及圖象信息在屏幕上顯示出來並進行交互處理,成為發現和理解科學計算過程中各種現象的有力工具。
1987年2月英國國家科學基金會在華盛頓召開了有關科學計算可視化的首次會議。會議一致認為「將圖形和圖象技術應用於科學計算是一個全新的領域」 科學家們不僅
需要分析由計算機得出的計算數據,而且需要了解在計算機過程中數據的變化。會議將這一技術定名為「科學計算可視化(Visualization in Scientific Computing)」。科學計算可視化將圖形生成技術圖象理解技術結合在一起, 它即可理解送入計算機的圖象數據.也可以從復雜的多維數據中產生圖形。它涉及到下列相互獨立的幾個領域:計算機圖形學、圖象處理、計算機視覺、計算機輔助設計及交互技術等。科學計算可視按其實現的功能來分, 可以分為三個檔次:(1)結果數據的後處理;(2)結果數據的實時跟蹤處理及顯示;(3)結果數據的實時顯示及交互處理。
4.1 國外科學計算可視化現狀
(1)分布式虛擬風洞
這是美國國家宇航局(Ames)研究中心的研究項目,包括連接到一台超能計算機上的兩個虛擬屏幕。這一共享的分布式虛擬環境用來實現三維不穩定流場。兩個人協同工作, 可在一個環境中從不同視點和觀察方向同一流場數據。
(2)PHTHFINDER
這是美國國家超級計算機應用中心(NCSA)的研究項目. 是在交互分布環境下研究大氣流體的軟體。PHTHFINDER通過多個相聯系的模型來研究暴風雨。
(3)狗心臟CT數據的動態顯示
這也是NCSA的研究項目,它利用遠程的並行計算資源.用體繪制技術實現CT掃描三維數據場動態顯示。其具體內容是顯示一個狗的心臟跳動周期的動態圖像。
(4)燃燒過程動態模型的可視化
這是美國西北大學的研究項目.可以顯示發生在非燒熱的氣體燃燒中復雜的空問瞬態圖象。火焰位於兩個同心圓柱之間.可燃混合氣體從內圓柱注入,燃燒所生成的物質通過外圓柱送出。
(5)胚胎的可視化
依利諾大學芝加哥分校研製了一個在工作站和超級計算機上實現的可視億應用軟體。其內容是對一個七周的人類胚胎實現交互的三維顯示, 是由衛生和醫學國家博物館所得到的數據重構而成的。這一項目表示了對人類形態數據實現遠程訪問和在網路資源中實現分布計算的可能性。最近美國還將做整個人體的可視化, 他們將兩個自願者(一男一女)做成了切片,男的被切了1780片, 厚度約1毫米,女的被切了5400片, 厚度約O.3毫米,數據量很大。概括起來有以下幾點:
(1)科學計算可視化技l術在美國的著名國家實驗室及大學中已經從研究走向應用,應用范圍涉及天體物理、生物學、氣象學、空氣動力學、數學、醫學圖象等領域。科學計算可視化的技術水平正在從後處理向實時跟蹤和交互控制發展。
(2)美國在實現科學計算可視化時, 已經將超級計算機、光纖高速網、高性能工作站及虛擬環境四者結合起來,顯示了這一領域技術發展的重要方向。就三維數據場的顯示演算法而言,當數據場分布密集而規則時(如cT掃描數據)多採用體繪制技術,這種演算法效果好,但計算費時。對於數據場分布稀疏,或分布不規則的應用領域, 如天體物理、氣象學多採用構造中間幾何圖象的方法,這種方法生成圖象速度快,較易作到實時交互處理。
5 虛擬現實
「虛擬現實」(Virbual ReMity)- 詞是由美國噴氣推動實驗室(VPL)的創始人拉尼爾(Jaron Lanier)首先提出的 在克魯格(Myren Kruege)70年代中早期實驗里.被稱為 人工現實」(Artificial reality);而在吉布森(William Gibson)l984 年出版的科幻小說Neuremanccr里,又被稱為「可控空間」(Cyberspaee)。虛擬現實, 也育人稱之為虛擬環境(Virtual Environment)是美國國家航空和航天局及軍事部門為模擬而開發的一門高新技術 它利用計算機圖形產生器,位置跟蹤器,多功能感測器和控制器等有效地模擬實際場景和情形,從而能夠使觀察者產生一種真實的身臨其境的感覺虛擬環境由硬體和軟體組成,硬體部分主要包括:感測器(Sensors)、印象器(Efeeter)和連接侍感器與印象器 產生模擬物理環境的特殊硬體。利用虛擬現實技術產生虛擬現實環境的軟體需完成以下三個功能:建立作用器(Actors)以及物體的外形和動力學模型:建立物體之間以及周圍環境之間接照牛頓運動定律所決定的相互作用;描述周圍環境的內容特性
5.1 虛擬現實技術的應用
5.1.1用於腦外科規劃的雙手操作空間介面工具
最近,美國弗尼亞大學推出了一種能用於腦外科規劃的被稱為Netra的雙手操作空間介面工具 根據腦外科醫生的工作環境和習慣,該系統採用一種外形象人頭的控制器。腦外科醫生可以根據他們的職業習慣,通過轉動外形象人頭的控制器, 來方便地觀察人腦的不部位, 同時通過右手控制面板的平面來控制人腦的剝面的掃描井能根據CT或強磁共振圖像所產生的主體腦模型顯示所需得到觀察視點著色後的真實圖像
5.1.2虛擬環境用於恐高症治療
英國研製的一個虛擬現實系統可以產生以下虛擬環境:① 透明的玻璃電梯,② 高層建築陽台.@位於蛺咎之上的索橋。為了增加真實的感覺,患者除了佩戴能夠產生三維立體景象的頭盔式顯示器外,還必須站在一個特製的框架內。調節電梯、.陽台和索橋的高度就可以產生不同程度的刺激。
5.1.3虛擬風洞
德國信息技術國家研究中心的克魯格等人建立了一個所謂的「虛擬風嗣 ,用以代替風洞實驗(因風洞實驗成本高,且實驗難以控制)。在虛擬風洞中,其模擬的數據來自超級計算機或高性能工作站上運行的有限元程序。利用虎擬風洞,觀測者通過佩戴液晶開關眼鏡可以方便地對於給定的點和線進行觀察,而且還可以通過放大的方式進行更細致的研究,大大方便了人們對於物體動力中特性的研究。
5.1.4封閉式戰斗作戰訓練器
封閉式戰斗作戰訓練器(CCTT)是馬斯塔格利等人為美軍研製的用於坦克和機械化步兵在實際地形上進行演習的模擬裝置。它與通常的虛擬環境和模擬器不同,它需要建立的是適用於軍隊訓練的大規模復雜的虛擬環境。
5.1.5虛擬現實技術在建築設計中應用
虛擬現實技術還被廣泛用於建築設計。克魯格等將他們設計的未來建築顯現在他們發明的虛擬工作平台上,建築學家們聚集在一起透過所佩戴的液晶眼鏡,可以看到設計的立體建築,井方便地增添或移去建築的一部分或其它物體。同時也可以通過數據手套來設置不同的光源.模擬不同時間的日光和月光.觀察在不同光線下所設計建築的美感以及與整個環境的協調性。
總之.虛擬現實技術是一門多學科交叉和綜合集成的新技術。因此, 它的發展將取決於相關科學技術的發展和進步 虛擬現實技術最基本的要求就是反映的實時性和場景的真實性。但一般來說,實時性與真實性往往是相互矛盾的。
5.2 多通道用戶界面
用戶界面是計算機系統中人與計算機之間相互通訊的重要組成部分。八十年代以WIMP(窗口、圖符、菜單、滑鼠)為基礎的圖形用戶界面(GUD極大地改善了計算機的可用性、可學性和有效性,迅速代替了命令行為代表的字元界面,成為當今計算機用戶界面的主流。以用戶為中心的系統設計思想.增進人機交互的自然性,提高人機交互的效率和帶寬是用戶界面的研究方向。於是提出了多通道用戶界面的思想,它包括語言、姿勢輸入、頭部跟蹤、視覺跟蹤、立體顯示、三維交互技術、感覺反饋及自然語言界面等。可以這樣說人體的表面就是人機界面。人體的任何部分都應成為人機對話的通道。虛擬現實顯示是關鍵所在,這不僅要求軟體來實現,更主要的是硬體上的實現。概括起來虛擬現實的人機交互通道可分為兩個方面:主要的感覺通道和主要作用通道。多通道用戶界面強調:
(1)多個交互通道,如眼一語言一手勢等。
(2)交互的雙向性.如果每個通道兼有輸入/輸出
(3)交互不一定是在同一通道中完成.例如, 眼和耳都可以接受信息.但有明顯的區別。眼永遠是主動的, 即主動地去獲取信息,耳永遠是被動的,有些信息不管你願不願聽,總要輸到耳朵中,這就要求在具體的交互中具體選擇交互通道。計算機圖形學中各個領域的發展各有各自的特點, 但總起來說是以虛擬現實為導向
和目的的。虛擬現實的發展要求必將帶動計算機圖形學各學科的發展. 同樣虛擬現實的發展也將依賴於其他學科的發展,計算機圖形前景誘人。形勢逼人(我國還比較落後),但通過努力還是可以縮短差距的。