計(jì)算機(jī)考研面試題目_第1頁(yè)
計(jì)算機(jī)考研面試題目_第2頁(yè)
計(jì)算機(jī)考研面試題目_第3頁(yè)
計(jì)算機(jī)考研面試題目_第4頁(yè)
計(jì)算機(jī)考研面試題目_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上8086/8088的內(nèi)部中斷主要有5種。 (1) 除法錯(cuò)中斷 (2) 單步中斷 (3) 斷點(diǎn)中斷 (4) 溢出中斷 (5)用戶自定義的軟件中斷在8086/8088內(nèi)存的開始1K字節(jié)建立了一個(gè),每個(gè)由4個(gè)字節(jié)組成,低兩位是IP值,高兩位是CS值,這個(gè)CS:IP地址表示當(dāng)相應(yīng)中斷發(fā)生時(shí),程序的入口地址。關(guān)閉中斷標(biāo)識(shí),重要數(shù)據(jù)入棧,處理中斷服務(wù)功能(你要實(shí)現(xiàn)的功能),數(shù)據(jù)出棧,恢復(fù)中斷標(biāo)識(shí),開中斷.ExtJS不同其他的javaScript庫(kù),ExtJS為您的開發(fā)夯實(shí)了基礎(chǔ),只需幾行代碼,你就可以制作出豐富的用戶界面。Ext庫(kù)是對(duì)雅虎YUI的一個(gè)拓展,提供了它所不支持的特性:

2、良好的API,真實(shí)的控件。雖然YUI致力于用戶界面,但是它卻沒有提供許多有用的功能。Ext的產(chǎn)生源自于開發(fā)者、開源貢獻(xiàn)者們將YUI擴(kuò)展成一個(gè)強(qiáng)大的客戶端應(yīng)用程序庫(kù)的努力。Ext提供了一個(gè)簡(jiǎn)單豐富的用戶界面,如同桌面程序一般。這使得開發(fā)者能夠把精力更多的轉(zhuǎn)移到實(shí)現(xiàn)應(yīng)用的功能上。Ext官網(wǎng)上的示例會(huì)讓你知道它是如何的不可思議:Ext讓通過如下的方式來讓web應(yīng)用的開發(fā)變的十分簡(jiǎn)單:提供簡(jiǎn)單的,跨瀏覽器的控件,如:窗口、表格、表單。這些組件都是能夠適應(yīng)市場(chǎng)上的主流瀏覽器的。我們不需要做任何改動(dòng)。用戶是通過EventManager來和瀏覽器做交互的,相應(yīng)的事件有:用戶的鍵盤輸入,鼠標(biāo)擊打,瀏覽器監(jiān)聽(

3、窗口改變大小,改變字體)等等;在和用戶交互時(shí)不需要刷新頁(yè)面,一切在后臺(tái)進(jìn)行。它允許你從服務(wù)器通過AJAX來獲取或者提交數(shù)據(jù)并且在第一時(shí)間執(zhí)行你的反饋。JavaEEMVC:開始是存在于程序中的,M是指業(yè)務(wù)模型,V是指,C則是,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用、來表示。存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。1-2Hibernate 是一個(gè)實(shí)現(xiàn)的工具項(xiàng)目,它可以被嵌入到J2EE服務(wù)器中使用,也可以直接從調(diào)用,通常的使用方式是將Hibernate嵌入到Tomcat和JBoss等服務(wù)器中使用。簡(jiǎn)單的說就是在

4、表的記錄與與表對(duì)應(yīng)的的實(shí)例之間進(jìn)行轉(zhuǎn)換。Spring:Spring 表示是一個(gè)開源框架,是為了解決企業(yè)復(fù)雜性??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)功能范圍:任何Java應(yīng)用簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的()和面向切面()的框架。輕

5、量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的不依賴于Spring的特定類。Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反不是從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。面向切面Spring提供了的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)與級(jí)(例如審計(jì)(aud

6、iting)和(transaction)管理)進(jìn)行的開發(fā)。只實(shí)現(xiàn)它們應(yīng)該做的完成業(yè)務(wù)邏輯僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或支持。容器Spring包含并管理的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建基于一個(gè)可配置(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。Spring可以將簡(jiǎn)單的配置、組合成為復(fù)雜的應(yīng)用。在Spring中,被聲明式地組合,典型地是在一個(gè)XML文件里。

7、Spring也提供了很多基礎(chǔ)功能(、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。MVCSpring的作用是整合,但不僅僅限于整合,Spring 框架可以被看做是一個(gè)企業(yè)解決方案級(jí)別的框架??蛻舳税l(fā)送請(qǐng)求,服務(wù)器控制器(由DispatcherServlet實(shí)現(xiàn)的)完成請(qǐng)求的轉(zhuǎn)發(fā),控制器調(diào)用一個(gè)用于映射的類HandlerMapping,該類用于將請(qǐng)求映射到對(duì)應(yīng)的處理器來處理請(qǐng)求。HandlerMapping 將請(qǐng)求映射到對(duì)應(yīng)的處理器Controller(相當(dāng)于Action)在Spring 當(dāng)中如果寫一些處理器組件,一般實(shí)現(xiàn)Controller 接口,在Controller 中就可以調(diào)用一些Se

8、rvice 或DAO 來進(jìn)行數(shù)據(jù)操作 ModelAndView 用于存放從DAO 中取出的數(shù)據(jù),還可以存放響應(yīng)視圖的一些數(shù)據(jù)。 如果想將處理結(jié)果返回給用戶,那么在Spring 框架中還提供一個(gè)視圖組件ViewResolver,該組件根據(jù)Controller 返回的標(biāo)示,找到對(duì)應(yīng)的視圖,將響應(yīng)response 返回給用戶。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。 JAVAEE:是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。核心是一組

9、技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循架構(gòu)的不同平臺(tái)之間,存在良好兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。 Struts:struts是開源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。如果我們想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,struts是一個(gè)不錯(cuò)的選擇。它采用MVC模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC模式分離顯示邏輯和業(yè)務(wù)邏輯的能力

10、發(fā)揮得淋漓盡致。Structs 框架的核心是一個(gè)彈性的控制層,基于如 Java Servlets,JavaBeans,ResourceBundles與XML等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫(kù)。 JSON:JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個(gè)子集。 JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C+, C#, Java, JavaScript, Per

11、l, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。JSON 可以將 JavaScript 對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。 AJAX:在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的服務(wù)端取得并且可以被動(dòng)態(tài)地寫入網(wǎng)頁(yè)中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像應(yīng)用一樣。Ajax的核心是JavaScript對(duì)象XmlHttpRequest。該對(duì)象在Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)

12、求的技術(shù)。簡(jiǎn)而言之,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶。不是一種新的語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。對(duì)計(jì)算機(jī)科學(xué)的認(rèn)識(shí)本專業(yè)是硬件與相結(jié)合、面向系統(tǒng)、側(cè)重應(yīng)用的寬口徑專業(yè)。通過基礎(chǔ)教學(xué)與專業(yè)訓(xùn)練,培養(yǎng)基礎(chǔ)知識(shí)扎實(shí)、知識(shí)面寬、工程實(shí)踐能力強(qiáng),具有開拓創(chuàng)新意識(shí),在領(lǐng)域從事、教育、開發(fā)和應(yīng)用的高級(jí)人才。當(dāng)今計(jì)算機(jī)技術(shù)正朝著巨型化、微型化、網(wǎng)絡(luò)化和智能化方向發(fā)展。當(dāng)今發(fā)展趨勢(shì),可以把它分為三維考慮。一維是是向高的方向。性能越來越高,速度越來越快,主要表現(xiàn)在計(jì)算機(jī)的主頻越來越高。像前幾年我們使用的都是2

13、86、386、主頻只有幾十兆。美國(guó)另一項(xiàng)計(jì)劃的目標(biāo)是2010年左右推出每秒一千萬億次機(jī)(Petaflops計(jì)算機(jī)),其處理機(jī)將采用量子器件,每個(gè)處理機(jī)每秒100億次,共用10萬個(gè)處理機(jī)并行。 另一個(gè)方向就是向“廣”度方向發(fā)展,計(jì)算機(jī)發(fā)展的趨勢(shì)就是無處不在,以至于像“沒有計(jì)算機(jī)一樣”。近年來更明顯的趨勢(shì)是網(wǎng)絡(luò)化與向各個(gè)領(lǐng)域的滲透,即在廣度上的發(fā)展開拓。 第三個(gè)方向是向深度方向發(fā)展,即向信息的智能化發(fā)展。網(wǎng)上有大量的信息,怎樣把這些的東西變成你想要的知識(shí),這是計(jì)算科學(xué)的重要課題,同時(shí)更加友好。目前計(jì)算機(jī)思維的方式與人類思維方式有很大區(qū)別,人機(jī)之間的間隔還不小。人類還很難以自然的方式,如語言、手勢(shì)、

14、表情與計(jì)算機(jī)打交道,計(jì)算機(jī)難用已成為阻礙計(jì)算機(jī)進(jìn)一步普及的巨大障礙。估計(jì)5-10年內(nèi)手寫和口語輸入將逐步成為主流的輸入方式。手勢(shì)(特別是手勢(shì))和臉部表情識(shí)別也已取得較大進(jìn)展。使人沉浸在的(Virtual Reality)技術(shù)是近幾年來發(fā)展較快的技術(shù),21世紀(jì)將更加迅速的發(fā)展。1.C的結(jié)構(gòu)體和C+結(jié)構(gòu)體的區(qū)別 1.1 C的結(jié)構(gòu)體內(nèi)不允許有函數(shù)存在,C+允許有內(nèi)部成員函數(shù),且允許該函數(shù)是虛函數(shù)。所以C的結(jié)構(gòu)體是沒有構(gòu)造函數(shù)、析構(gòu)函數(shù)、和this指針的。 1.2 C的結(jié)構(gòu)體對(duì)內(nèi)部成員變量的訪問權(quán)限只能是public,而C+允許public,protected,private三種。 1.3 C語言的結(jié)

15、構(gòu)體是不可以繼承的,C+的結(jié)構(gòu)體是可以從其他的結(jié)構(gòu)體或者類繼承過來的。 以上都是表面的區(qū)別,實(shí)際區(qū)別就是面向過程和面向?qū)ο缶幊趟悸返膮^(qū)別: C的結(jié)構(gòu)體只是把數(shù)據(jù)變量給包裹起來了,并不涉及算法。 而C+是把數(shù)據(jù)變量及對(duì)這些數(shù)據(jù)變量的相關(guān)算法給封裝起來,并且給對(duì)這些數(shù)據(jù)和類不同的訪問權(quán)限。 C語言中是沒有類的概念的,但是C語言可以通過結(jié)構(gòu)體內(nèi)創(chuàng)建函數(shù)指針實(shí)現(xiàn)面向?qū)ο笏枷搿?.C+的結(jié)構(gòu)體和C+類的區(qū)別 2.1 C+結(jié)構(gòu)體內(nèi)部成員變量及成員函數(shù)默認(rèn)的訪問級(jí)別是public,而c+類的內(nèi)部成員變量及成員函數(shù)的默認(rèn)訪問級(jí)別是private。 2.2 C+結(jié)構(gòu)體的繼承默認(rèn)是public,而c+類的繼承默認(rèn)

16、是private。1.動(dòng)態(tài)鏈接庫(kù)與靜態(tài)鏈接庫(kù)的區(qū)別。 1.1 靜態(tài)鏈接庫(kù)作為代碼的一部分,在編譯時(shí)被鏈接。 1.2 動(dòng)態(tài)鏈接庫(kù)有兩種使用方式:一種是靜態(tài)加載,即在應(yīng)用程序啟動(dòng)時(shí)被加載;一種是動(dòng)態(tài)加載,即是該動(dòng)態(tài)鏈接庫(kù)在被使用時(shí)才被應(yīng)用程序加載。2.動(dòng)態(tài)鏈接庫(kù)和COM組件的區(qū)別 2.1 動(dòng)態(tài)鏈接庫(kù)的表現(xiàn)形式只能是dll變態(tài)該名的除外, COM組件的表現(xiàn)形式可以是dll也可以是exe。 注:其實(shí)字體、驅(qū)動(dòng)等也算是動(dòng)態(tài)鏈接庫(kù)的一種,這里略去. 2.2 動(dòng)態(tài)鏈接庫(kù)的生成和編譯器及系統(tǒng)相關(guān),在Windows/Linux下系統(tǒng),需要分別編譯才能使用。 COM組件是二進(jìn)制編碼,在Windows和Linux下

17、可以直接使用,不需要重新編譯。 2.3 COM組件是按照COM規(guī)范實(shí)現(xiàn)的dll或者exe;動(dòng)態(tài)鏈接庫(kù)是一個(gè)可以導(dǎo)出函數(shù)的函數(shù)集合。 2.4 動(dòng)態(tài)鏈接庫(kù)只能在本機(jī)被調(diào)用,COM組件支持分布式使用。MAC地址是不能通過IP來查詢的!局域網(wǎng)如何根據(jù)ip查maccmdping ip地址arp -a即使ping不通,只要他機(jī)開著,都可以看到MAC!顯示和修改“ (ARP)”緩存中的項(xiàng)目。ARP 緩存中包含一個(gè)或多個(gè)表,它們用于存儲(chǔ) IP 地址及其經(jīng)過解析的或。計(jì)算機(jī)上安裝的每一個(gè)或都有自己?jiǎn)为?dú)的表。如果在沒有參數(shù)的情況下使用,則 arp 命令將顯示幫助信息。-a InetAddr -N IfaceAdd

18、r顯示所有接口的當(dāng)前 ARP 緩存表。要顯示特定 IP 地址的 ARP 緩存項(xiàng),請(qǐng)使用帶有 InetAddr 參數(shù)的 arp -a,此處的 InetAddr 代表 IP 地址。如果未指定 InetAddr,則使用第一個(gè)適用的接口。要顯示特定接口的 ARP 緩存表,請(qǐng)將 -N IfaceAddr 參數(shù)與 -a 參數(shù)一起使用,此處的 IfaceAddr 代表指派給該接口的 IP 地址。-N 參數(shù)區(qū)分大小寫。BIOSBIOS設(shè)置是在BIOS中的,BIOS芯片是上一塊長(zhǎng)方形或正方形芯片,只有在開機(jī)時(shí)才可以進(jìn)行設(shè)置。BIOS是:直譯過來后中文名稱就是基本輸入輸出系統(tǒng)。其實(shí),它是一組固化到內(nèi)上一個(gè)上的,它

19、保存著計(jì)算機(jī)最重要的基本輸入輸出的程序、系統(tǒng)設(shè)置信息、開機(jī)后自檢程序和系統(tǒng)自啟動(dòng)程序。 其主要功能是為提供最底層的、最直接的設(shè)置和控制。數(shù)學(xué)中的梯度是什么意思?在向量微積分中,標(biāo)量場(chǎng)的梯度是一個(gè)向量場(chǎng)。標(biāo)量場(chǎng)中某一點(diǎn)上的梯度指向標(biāo)量場(chǎng)增長(zhǎng)最快的方向,梯度的長(zhǎng)度是這個(gè)最大的變化率。更嚴(yán)格的說,從歐氏空間Rn到R的函數(shù)的梯度是在Rn某一點(diǎn)最佳的線性近似。在這個(gè)意義上,梯度是雅戈比矩陣的一個(gè)特殊情況。 在單變量的實(shí)值函數(shù)的情況,梯度只是導(dǎo)數(shù),或者,對(duì)于一個(gè)線性函數(shù),也就是線的斜率。 梯度一詞有時(shí)用于斜度,也就是一個(gè)曲面沿著給定方向的傾斜程度??梢酝ㄟ^取向量梯度和所研究的方向的點(diǎn)積來得到斜度。梯度的數(shù)

20、值有時(shí)也被成為梯度。 如果你是問在純數(shù)學(xué)中的作用,那就是反映那個(gè)量變化的有多劇烈;多元微積分中則還反映在哪個(gè)方向上變化最劇烈.云計(jì)算1是基于的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是的資源。定義:“云計(jì)算是通過網(wǎng)絡(luò)提供可伸縮的廉價(jià)的分布式計(jì)算能力”。云計(jì)算代表了以虛擬化技術(shù)為核心、以低成本為目標(biāo)的動(dòng)態(tài)可擴(kuò)展網(wǎng)絡(luò)應(yīng)用基礎(chǔ)設(shè)施,是近年來最有代表性的網(wǎng)絡(luò)計(jì)算技術(shù)與模式。是: 、 、 、3 、 、 等傳統(tǒng)和發(fā)展融合的產(chǎn)物。云計(jì)算是通過使計(jì)算分布在大量的機(jī)上,而非本地計(jì)算機(jī)或遠(yuǎn)程服務(wù)器中,企業(yè)的運(yùn)行將與更相似。這使得企業(yè)能夠?qū)①Y源切換到需要的應(yīng)用上,根據(jù)需求訪問和。好比是從古

21、老的單臺(tái)發(fā)電機(jī)模式轉(zhuǎn)向了電廠集中供電的模式。它意味著計(jì)算能力也可以作為一種商品進(jìn)行流通,就像煤氣、水電一樣,取用方便,費(fèi)用低廉。最大的不同在于,它是通過進(jìn)行傳輸?shù)?。:的一種,由一群松散耦合的的一個(gè)超級(jí),常用來執(zhí)行一些大型任務(wù);:IT資源的一種打包和計(jì)費(fèi)方式,比如按照計(jì)算、存儲(chǔ)分別計(jì)量費(fèi)用,像傳統(tǒng)的電力等公共設(shè)施一樣;算法的時(shí)間復(fù)雜度一個(gè)花費(fèi)的時(shí)間與算法中語句的執(zhí)行次數(shù)。一個(gè)中的語句執(zhí)行次數(shù)稱為語句頻度或時(shí)間頻度。記為T(n)。計(jì)算方法1. 一般情況下,的基本操作重復(fù)執(zhí)行的次數(shù)是模塊n的某一個(gè)函數(shù)f(n),因此,算法的記做:T(n)=O(f(n)分析:隨著模塊n的增大,執(zhí)行的時(shí)間的增長(zhǎng)率和 f(

22、n) 的增長(zhǎng)率成正比,所以 f(n) 越小,算法的越低,算法的效率越高。2. 在計(jì)算的時(shí)候,先找出的基本操作,然后根據(jù)相應(yīng)的各語句確定它的執(zhí)行次數(shù),再找出 T(n) 的同(它的同數(shù)量級(jí)有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 該數(shù)量級(jí),若 T(n)/f(n) 求極限可得到一常數(shù)c,則T(n) = O(f(n)十種程序設(shè)計(jì)語言 PASCAL、C、Ada FORTRAN、BASIC、Java、C+、Go 、Delphi、F# SQL、PowerBuilder、static全局變量與普通的全局變量有什么區(qū)別?(外部變量)的說

23、明之前再冠以static 就構(gòu)成了靜態(tài)的。本身就是靜態(tài)存儲(chǔ)方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。 這兩者在存儲(chǔ)方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個(gè), 當(dāng)一個(gè)由多個(gè)源文件組成時(shí),非靜態(tài)的全局變量在各個(gè)源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個(gè)源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用, 因此可以避免在其它源文件中引起錯(cuò)誤。從以上分析可以看出, 把改變?yōu)楹笫歉淖兞怂拇鎯?chǔ)方式即改變了它的生存期。把全局變量改變?yōu)楹笫歉淖兞怂淖饔糜颍?限制了它的使用范圍。stat

24、ic函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在當(dāng)前源文件中說明和定義。對(duì)于可在當(dāng)前源文件以外使用的函數(shù),應(yīng)該在一個(gè)中說明,要使用這些函數(shù)的源文件要包含這個(gè)static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;static和普通有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值;static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個(gè)被調(diào)用中維持一份拷貝C語言中講講static變量和static函數(shù)有什么作用static

25、關(guān)鍵字有兩種意思,你看上下文來判斷1,表示變量是靜態(tài)存儲(chǔ)變量 表示變量存放在靜態(tài)存儲(chǔ)區(qū). 2,表示該變量是內(nèi)部連接 (這種情況是指該變量不在任何之內(nèi),就象全局變量那樣,這時(shí)候加上static) ,也就是說在其它的.cpp文件中,該變量是不可見的(你不能用).當(dāng)static加在函數(shù)前面的時(shí)候 表示該函數(shù)是內(nèi)部連接,之在本文件中有效,別的文件中不能應(yīng)用該函數(shù). 不加static的函數(shù)默認(rèn)為是全局的. 也就是說在其他的.cpp中只要申明一下這個(gè)函數(shù),就可以使用它. 1、static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?

26、 答:全局變量(外部變量)的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲(chǔ)方式, 靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。 這兩者在存儲(chǔ)方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個(gè)源程序,當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),非靜態(tài)的全局變量在各個(gè)源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個(gè)源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用, 因此可以避免在其它源文件中引起錯(cuò)誤。 從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲(chǔ)方式即改變了

27、它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。 static函數(shù)與普通函數(shù)作用域不同。static函數(shù)僅在本文件中使用。只在當(dāng)前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在當(dāng)前源文件中說明和定義。對(duì)于可在當(dāng)前源文件以外使用的函數(shù),應(yīng)該在一個(gè)頭文件中說明,要使用這些函數(shù)的源文件要包含這個(gè)頭文件 static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用; static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值; static函數(shù)與普通函數(shù)有

28、什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個(gè)被調(diào)用中維持一份拷貝2、如何引用一個(gè)已經(jīng)定義過的全局變量? 答:extern 可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來引用某個(gè)在頭文件中聲明的全局變理,假定你將那個(gè)變寫錯(cuò)了,那么在編譯期間 會(huì)報(bào)錯(cuò),如果你用extern方式引用時(shí),假定你犯了同樣的錯(cuò)誤,那么在編譯期間不會(huì)報(bào)錯(cuò),而在連接期間報(bào)錯(cuò)。3、全局變量可不可以定義在可被多個(gè).C文件包含的頭文件中?為什么? 答:可以,在不同的C文件中以static形式來聲明同名全局變量。 可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個(gè)C文件中對(duì)此變量賦初

29、值,此時(shí)連接不會(huì)出錯(cuò)。比較兩個(gè)浮點(diǎn)數(shù)大小在計(jì)算機(jī)中表示一個(gè),其結(jié)構(gòu)如下: 尾數(shù)部分(定點(diǎn)小數(shù)) 階碼部分(定點(diǎn)整數(shù))是2的指數(shù)形式來表示小數(shù)。因此一個(gè)小數(shù)用來表示,肯定是有誤差的。比如說兩個(gè)運(yùn)算過程,它們的結(jié)果都是2,但是由于過程不一樣,它結(jié)果可能有差異,比如說可能一個(gè)結(jié)果為2,一個(gè)結(jié)果為1.因此用=號(hào)來比較,會(huì)得出錯(cuò)誤的結(jié)果,比較相等的時(shí)候,用兩個(gè)數(shù)的相減,當(dāng)小于一個(gè)比較小的值時(shí),就認(rèn)為相等。3D打印打印,即技術(shù)的一種,它是一種以文件為基礎(chǔ),運(yùn)用狀或塑料等可粘合,通過逐層的方式來構(gòu)造物體的。打印通常是采用數(shù)字技術(shù)材料來的。常在模具制造、等領(lǐng)域被用于制造模型,后逐漸用于一些產(chǎn)品的直接制造,已經(jīng)

30、有使用這種技術(shù)而成的零。該技術(shù)在珠寶、鞋類、建筑、和(AEC)、,、和產(chǎn)業(yè)、以及其他領(lǐng)域都有所應(yīng)用。1而所謂的與普通打印機(jī)工作原理基本相同,只是打印材料有些不同,普通打印機(jī)的打印材料是墨水和紙張,而3D打印機(jī)內(nèi)裝有、陶瓷、塑料、砂等不同的“打印材料”,是實(shí)實(shí)在在的原材料,與電腦連接后,通過電腦控制可以把“打印材料”一層層疊加起來,最終把計(jì)算機(jī)上的藍(lán)圖變成實(shí)物。通俗地說,3D打印機(jī)是可以“打印”出真實(shí)的3D物體的一種設(shè)備,比如打印一個(gè)機(jī)器人、打印玩具車,打印各種模型,甚至是食物等等。之所以通俗地稱其為“打印機(jī)”是參照了普通打印機(jī)的技術(shù)原理,因?yàn)榉謱蛹庸さ倪^程與噴墨打印十分相似。這項(xiàng)打印技術(shù)稱為立

31、體打印技術(shù)。2大數(shù)據(jù) 分析新數(shù)據(jù)源的業(yè)務(wù)需求需要人工智能、數(shù)據(jù)庫(kù)、和統(tǒng)計(jì)分析知識(shí)等很多跨學(xué)科的知識(shí)。再者,的出現(xiàn)需要條件,第一個(gè)條件:海量的數(shù)據(jù);第二個(gè)條件:計(jì)算機(jī)技術(shù)大數(shù)據(jù)量的處理能力;第三個(gè)條件:計(jì)算機(jī)的存儲(chǔ)與運(yùn)算能力;第四個(gè)條件:交叉學(xué)科的發(fā)展。大數(shù)據(jù)只是的出現(xiàn)的一個(gè)條件。更為復(fù)雜的新數(shù)據(jù)已經(jīng)出現(xiàn),而且生成的速度達(dá)到了前所未有的程度社交網(wǎng)絡(luò)數(shù)據(jù)、網(wǎng)絡(luò)日志、存檔數(shù)據(jù)和傳感器數(shù)據(jù)都屬于人們?cè)诜治鲋嘘P(guān)注的新數(shù)據(jù)源盡管傳統(tǒng)環(huán)境不斷發(fā)展,但如今出現(xiàn)了許多更為復(fù)雜的新數(shù)據(jù)類型,企業(yè)需要分析這些數(shù)據(jù)類型,以便充實(shí)其已知信息。此外,這些新數(shù)據(jù)的生成速度遠(yuǎn)遠(yuǎn)超過了以往的紀(jì)錄??蛻艉蜐撛诳蛻粽谏缃痪W(wǎng)絡(luò)和評(píng)

32、論網(wǎng)站中創(chuàng)建大量的新數(shù)據(jù)。此外,在線新聞項(xiàng)目、氣象數(shù)據(jù)、競(jìng)爭(zhēng)對(duì)手網(wǎng)站內(nèi)容,甚至是數(shù)據(jù)市場(chǎng)如今都已經(jīng)成為可供企業(yè)使用的候選數(shù)據(jù)源。在企業(yè)內(nèi)部,隨著客戶轉(zhuǎn)變?yōu)橐栽诰€渠道作為開展商業(yè)交易及與企業(yè)互動(dòng)的首選方法,網(wǎng)絡(luò)日志也在不斷增加。分析所用的存檔數(shù)據(jù)再次增多,為監(jiān)測(cè)和優(yōu)化業(yè)務(wù)運(yùn)營(yíng)而部署的傳感器網(wǎng)絡(luò)和機(jī)器數(shù)量也越來越多。結(jié)果就生成了大量新數(shù)據(jù)源、快速增加的數(shù)據(jù)量和迅速增加的新數(shù)據(jù)流,需要分析所有這些新數(shù)據(jù)。在信息量如此龐大的背景下,為找尋關(guān)鍵問題的答案,現(xiàn)在的企業(yè)戰(zhàn)略對(duì)于信息管理和利用能力的依賴性更勝于以往。伴隨著井噴式的數(shù)據(jù)增長(zhǎng),孤立的數(shù)據(jù)存儲(chǔ)是造成信息管理和集成成本激增的主要原因。面對(duì)著分散于不同

33、數(shù)據(jù)庫(kù)的孤立數(shù)據(jù),企業(yè)主管無法確保自己能夠全面掌握客戶、產(chǎn)品和供應(yīng)商的情況。孤立的信息同樣也令遵守行業(yè)或政府法規(guī)的難度加大。在信息集成戰(zhàn)略和技術(shù)的幫助下,能夠在正確時(shí)間從任意來源檢索數(shù)據(jù),編排格式后再提供給企業(yè)內(nèi)外的任意目標(biāo)。信息集成能夠幫助企業(yè)執(zhí)行許多關(guān)鍵任務(wù),其中包括將多個(gè)來源的數(shù)據(jù)加載到倉(cāng)庫(kù)當(dāng)中,整合應(yīng)用程序?qū)嵗?,以及將不同部門和分部的信息關(guān)聯(lián)起來。通過將企業(yè)信息整合成單一來源(不論信息存儲(chǔ)于什么位置),企業(yè)能夠快速處理信息,縮短停機(jī)時(shí)間,減少客戶服務(wù)問題,并在盡量不影響性能的情況下分配信息。IBM 信息集成解決方案用于集成及轉(zhuǎn)化數(shù)據(jù)和內(nèi)容,進(jìn)而提供權(quán)威、一致、及時(shí)、完整的信息,并且在數(shù)

34、據(jù)的整個(gè)生命周期內(nèi)控制數(shù)據(jù)質(zhì)量。其近線性的無縫擴(kuò)展能力以及以元數(shù)據(jù)為驅(qū)動(dòng)的設(shè)計(jì)能夠幫助企業(yè)將不同數(shù)據(jù)庫(kù)統(tǒng)一成單一的整合信息庫(kù),以及識(shí)別和更正不準(zhǔn)確或冗余的數(shù)據(jù)。給你解釋一下這些術(shù)語:就是個(gè)炒得很熱的商業(yè)概念,其實(shí)說白了就是將計(jì)算任務(wù)轉(zhuǎn)移到服務(wù)器端,用戶只需要個(gè)顯示器就行了,不過服務(wù)器的計(jì)算資源可以。當(dāng)然,要想大規(guī)模,這里還有些問題,特別是隱私保護(hù)問題。:說白了就是數(shù)據(jù)太多了。如今幾兆的數(shù)據(jù)在20年前也是。但如今所說的特殊在哪呢?如今的問題是數(shù)據(jù)實(shí)在是太多了,這已經(jīng)超過了的處理能力(區(qū)別與),所以對(duì)于大數(shù)據(jù)我們不得不用一些折衷的辦法(比如),就是說沒必要所有數(shù)據(jù)都需要,實(shí)際上有效數(shù)據(jù)很有限,用的

35、方法把這些有限的知識(shí)提取出來就行了。此外,數(shù)據(jù),也是解決大數(shù)據(jù)問題的一些策略。:從數(shù)據(jù)中提取潛在知識(shí),這些知識(shí)可以描述或者預(yù)測(cè)數(shù)據(jù)的特性。有代表性的數(shù)據(jù)挖掘任務(wù)包括分析、等,這些你在任一本數(shù)據(jù)挖掘教材都可以了解。下面我說說和大數(shù)據(jù)的區(qū)別:數(shù)據(jù)挖掘只是大的一個(gè)方法。所說的大數(shù)據(jù),或者如今商業(yè)領(lǐng)域所說的大數(shù)據(jù),實(shí)際上指的就是數(shù)據(jù)挖掘,其實(shí)真正所謂大數(shù)據(jù),或者Science雜志中提到的大數(shù)據(jù),或者提出的大數(shù)據(jù),我的理解是,這些都遠(yuǎn)遠(yuǎn)大于數(shù)據(jù)挖掘的范疇,當(dāng)然數(shù)據(jù)挖掘是其中很重要的一個(gè)方法。真正目的是如何將大數(shù)據(jù)進(jìn)行。:這個(gè)詞很虛,泛指了一大類。重點(diǎn)是學(xué)習(xí)這個(gè)詞,如果想讓計(jì)算機(jī),目前絕大多數(shù)方法都采用了

36、的方法。所以在科研界,只要是采用了這種并不斷逼近的策略,一般都可以歸到的范疇。此外,所謂學(xué)習(xí),肯定要知道學(xué)什么,這就是所謂訓(xùn)練集,從訓(xùn)練集數(shù)據(jù)中計(jì)算機(jī)要學(xué)到其中的某個(gè)一般規(guī)律,然后用一些別的數(shù)據(jù)(即測(cè)試集)來看看學(xué)得好不好,之后才能用于實(shí)際應(yīng)用。所以,選取合適的訓(xùn)練集也是個(gè)學(xué)問。:意思就是模式的識(shí)別。模式多種多樣,可以是語言,可以是圖像,可以是事物一些有意義的模塊,這些都算。所以總體來說,這個(gè)詞我是覺得有點(diǎn)虛,倒是具體的人臉、聲音識(shí)別等,這些倒是挺實(shí)在的。也許是我不太了解吧。另外說說你的其他問題。傳統(tǒng)不包括數(shù)據(jù)挖掘。對(duì)于這塊我不是很了解,不過可以肯定的是,傳統(tǒng)分析都有一定的分析方向,比如我就想

37、知道這兩個(gè)商品的關(guān)聯(lián)情況,那數(shù)據(jù)庫(kù)就行了。數(shù)據(jù)挖掘雖說有些歷史,不過也挺時(shí)髦的,它是自動(dòng)將那些關(guān)聯(lián)程度大的商品告訴你,這期間不需要用戶指定的具體對(duì)象。如果想應(yīng)對(duì),數(shù)據(jù)挖掘這門課是少不了的。此外對(duì)數(shù)據(jù)庫(kù),特別是、,最好了解點(diǎn)。至于和,這些總的來說和數(shù)據(jù)挖掘關(guān)系不太大,除了一些特殊的領(lǐng)域外??傊?,概念挺熱,但大數(shù)據(jù)還很不成熟,無論從研究上還是上。我目前在作大數(shù)據(jù)背景下的算法研究,說實(shí)話,目前基本沒有拓展性非常強(qiáng)的算法,所以未來大數(shù)據(jù)的發(fā)展方向,我也挺迷茫。PS:將數(shù)據(jù)挖掘應(yīng)用于商業(yè),最最重要的就是如何確定挖掘角度,這需要你對(duì)具體應(yīng)用的領(lǐng)域知識(shí)非常了解,需要你有非常敏銳的眼光。至于數(shù)據(jù)挖掘的具體算法

38、,這些就交給我們專門搞研究的吧!(對(duì)算法的理解也很重要,這可以把算法拓展到你的應(yīng)用領(lǐng)域)直方圖灰度直方圖的定義灰度直方圖是灰度級(jí)的函數(shù),描述圖像中該灰度級(jí)的像素個(gè)數(shù)(或該灰度級(jí)像素出現(xiàn)的頻率):其橫坐標(biāo)是灰度級(jí),縱坐標(biāo)表示圖像中該灰度級(jí)出現(xiàn)的個(gè)數(shù)(頻率)。 灰度直方圖是數(shù)字圖像中最簡(jiǎn)單且有用的工具,這一篇主要總結(jié)OpenCV中直方圖CvHistogram的結(jié)構(gòu)和應(yīng)用?;叶戎狈綀D的定義灰度直方圖是灰度級(jí)的函數(shù),描述圖像中該灰度級(jí)的像素個(gè)數(shù)(或該灰度級(jí)像素出現(xiàn)的頻率):其橫坐標(biāo)是灰度級(jí),縱坐標(biāo)表示圖像中該灰度級(jí)出現(xiàn)的個(gè)數(shù)(頻率)。一維直方圖的結(jié)構(gòu)表示為高維直方圖可以理解為圖像在每個(gè)維度上灰度級(jí)分布

39、的直方圖。常見的是二維直方圖。如紅-藍(lán)直方圖的兩個(gè)分量分別表示紅光圖像的灰度值和藍(lán)光圖像灰度值的函數(shù)。其圖像坐標(biāo)(Dr,Db)處對(duì)應(yīng)在紅光圖像中具有灰度級(jí)Dr同時(shí)在藍(lán)光圖像中具有灰度級(jí)Db的像素個(gè)數(shù)。這是基于多光譜每個(gè)像素有多個(gè)變量的數(shù)字圖像,二維中對(duì)應(yīng)每個(gè)像素統(tǒng)計(jì)個(gè)變量。OpenCV中的直方圖CvHistogram注意我們?cè)谏厦胬斫庵狈綀D的意義時(shí)更多把他想象成一幅“圖”,繼而理解圖中橫坐標(biāo),縱坐標(biāo)的意義。而在OpenCV中,應(yīng)該更多把直方圖看做“數(shù)據(jù)結(jié)構(gòu)”來理解。OpenCV中用CvHistogram表示多維直方圖():cpp 1 typedef struct CvHistogram 2 3

40、 int type; 4 CvArr* bins; /存放每個(gè)灰度級(jí)數(shù)目的數(shù)組指針 5 float threshCV_MAX_DIM2; /均勻直方圖 6 float* thresh2; /非均勻直方圖 7 CvMatND mat; /直方圖數(shù)組的內(nèi)部數(shù)據(jù)結(jié)構(gòu) 8 9 CvHistogram; 這個(gè)結(jié)構(gòu)看起來簡(jiǎn)單(比IplImage*元素少多了。)其實(shí)并不太好理解。第一個(gè)成員type用來指定第二個(gè)成員bins的類型。OpenCv中常見到CvArr*的接口,可以用以指定諸如CvMat、CvMatND、IplImage的類型,其實(shí)CvArr*的是一個(gè)指向void的指針。在函數(shù)內(nèi)部有時(shí)需要得到確切的

41、指向類型,這就需要type來指定。thresh用來指定統(tǒng)計(jì)直方圖分布的上下界。比如0 255表示用來統(tǒng)計(jì)圖像中像素分別在灰度級(jí)0 255區(qū)間的分布情況,CV_MAX_DIM對(duì)應(yīng)直方圖的維數(shù),假如設(shè)定二維紅-藍(lán)直方圖的thresh為0 255;100 200,就是分別統(tǒng)計(jì)紅色圖像灰度級(jí)在0 255以及藍(lán)色圖像在灰度級(jí)100 200的分布情況。thresh用以指定均勻直方圖的分布,我們按每個(gè)像素理解自然是“均勻分布”,其實(shí)也可以統(tǒng)計(jì)像素在幾個(gè)區(qū)間的分布。如果統(tǒng)計(jì)像素在2個(gè)區(qū)間的分布,則對(duì)應(yīng)0 255的上下界,均勻分布統(tǒng)計(jì)的區(qū)間即0 127 127 255分布的概率,這也是為什么thresh第二個(gè)維

42、數(shù)默認(rèn)為2會(huì)自動(dòng)均分上下界;而thresh2指定非均勻的分布,這就需要指定每個(gè)區(qū)間的上下界,如果要統(tǒng)計(jì)直方圖在區(qū)間(0,10,100,255)的分布,那需要指定thresh2的一個(gè)維度為0 10 100 255,所以用float*形式表示。mat簡(jiǎn)單說就是存儲(chǔ)了直方圖的信息,即我們統(tǒng)計(jì)的直方圖分布概率。創(chuàng)建直方圖 cvCreateHist()OpenCV中用cvCreateHist()創(chuàng)建一個(gè)直方圖:cpp 10 CvHistogram* cvCreateHist( 11 int dims, /直方圖維數(shù) 12 int* sizes,/直翻圖維數(shù)尺寸 13 int type, /直方圖的表示格

43、式 14 float* ranges=NULL, /圖中方塊范圍的數(shù)組 15 int uniform=1 /歸一化標(biāo)識(shí) 16 ); size數(shù)組的長(zhǎng)度為dims,每個(gè)數(shù)表示分配給對(duì)應(yīng)維數(shù)的bin的個(gè)數(shù)。如dims=3,則size中用s1,s2,s3分別指定每維bin的個(gè)數(shù)。type有兩種:CV_HIST_ARRAY 意味著直方圖數(shù)據(jù)表示為多維密集數(shù)組 CvMatND; CV_HIST_TREE 意味著直方圖數(shù)據(jù)表示為多維稀疏數(shù)組 CvSparseMat。ranges就是那個(gè)復(fù)雜的不好理解的thresh的范圍,他的內(nèi)容取決于uniform的值。uniform為0是均勻的,非0時(shí)不均勻。計(jì)算圖像直

44、方圖的函數(shù)為CalcHist():cpp 17 void cvCalcHist( 18 IplImage* image, /輸入圖像(也可用CvMat*) 19 CvHistogram* hist, /直方圖指針 20 int accumulate=0, /累計(jì)標(biāo)識(shí)。如果設(shè)置,則直方圖在開始時(shí)不被清零。 21 const CvArr* mask=NULL /操作 mask, 確定輸入圖像的哪個(gè)象素被計(jì)數(shù) 22 ); 要注意的是這個(gè)函數(shù)用來計(jì)算一張(或多張)單通道圖像的直方圖,如果要計(jì)算多通道,則用這個(gè)函數(shù)分別計(jì)算圖像每個(gè)單通道。實(shí)踐:一維直方圖下面實(shí)踐一下用OpenCV生成圖像的一維直方圖cp

45、p 23 int main( ) 24 25 IplImage * src= cvLoadImage(baboon.jpg); 26 IplImage* gray_plane = cvCreateImage(cvGetSize(src),8,1); 27 cvCvtColor(src,gray_plane,CV_BGR2GRAY); 28 29 int hist_size = 256; /直方圖尺寸 30 int hist_height = 256; 31 float range = 0,255; /灰度級(jí)的范圍 32 float* ranges=range; 33 /創(chuàng)建一維直方圖,統(tǒng)計(jì)圖像

46、在0 255像素的均勻分布 34 CvHistogram* gray_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1); 35 /計(jì)算灰度圖像的一維直方圖 36 cvCalcHist(&gray_plane,gray_hist,0,0); 37 /歸一化直方圖 38 cvNormalizeHist(gray_hist,1.0); 39 40 int scale = 2; 41 /創(chuàng)建一張一維直方圖的“圖”,橫坐標(biāo)為灰度級(jí),縱坐標(biāo)為像素個(gè)數(shù)(*scale) 42 IplImage* hist_image = cvCreateImag

47、e(cvSize(hist_size*scale,hist_height),8,3); 43 cvZero(hist_image); 44 /統(tǒng)計(jì)直方圖中的最大直方塊 45 float max_value = 0; 46 cvGetMinMaxHistValue(gray_hist, 0,&max_value,0,0); 47 48 /分別將每個(gè)直方塊的值繪制到圖中 49 for(int i=0;ihist_size;i+) 50 51 float bin_val = cvQueryHistValue_1D(gray_hist,i); /像素i的概率 52 int intensity = cv

48、Round(bin_val*hist_height/max_value); /要繪制的高度 53 cvRectangle(hist_image, 54 cvPoint(i*scale,hist_height-1), 55 cvPoint(i+1)*scale - 1, hist_height - intensity), 56 CV_RGB(255,255,255); 57 58 cvNamedWindow( GraySource, 1 ); 59 cvShowImage(GraySource,gray_plane); 60 cvNamedWindow( H-S Histogram, 1 );

49、61 cvShowImage( H-S Histogram, hist_image ); 62 63 cvWaitKey(0); 64 試驗(yàn)結(jié)果:對(duì)應(yīng)的,我們可以用一樣的思路統(tǒng)計(jì)每個(gè)通道的直方圖,并繪制圖像每個(gè)通道像素的分布:實(shí)踐:二維直方圖我們也可以結(jié)合OpenCV的例子生成二維直方圖:cpp 65 IplImage* r_plane = cvCreateImage( cvGetSize(src), 8, 1 ); 66 IplImage* g_plane = cvCreateImage( cvGetSize(src), 8, 1 ); 67 IplImage* b_plane = cvCr

50、eateImage( cvGetSize(src), 8, 1 ); 68 IplImage* planes = r_plane, g_plane ; 69 /將HSV圖像分離到不同的通道中 70 cvCvtPixToPlane( src, b_plane, g_plane, r_plane, 0 ); 71 72 / 生成二維直方圖數(shù)據(jù)結(jié)構(gòu) 73 int r_bins =256, b_bins = 256; 74 CvHistogram* hist; 75 76 int hist_size = r_bins, b_bins ; 77 float r_ranges = 0, 255 ; / hue is 0,180 78 float b_ranges = 0, 255 ; 79 float* ranges = r_ranges,b_ranges ; 80 hist = c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論