c數字圖像處理演算法
『壹』 c語言數字圖像處理,如何將兩張圖片合在一塊。(本人剛學,不太懂,程序如何設計)
1. C++沒有提供刪除std::(w)string的前後空格的函數,比如TrimSpace.
2. 很多庫都提供, 但是為了移植代碼方便,最好還是能用標准庫解決就用標准庫.
『貳』 基於C語言的 數字圖像處理 有什麼經典教材需要注意什麼
數字圖像處理教材一般偏重於演算法,很少有直接和C語言相關給出編程範例的。強烈建議選用一本經典教材,如岡薩雷斯的,外加幾本側重於編程的書,如VC++數字圖像處理等,國內有許多版本,結合起來進行。如果感到吃力可先看教材,把基本概念和常用演算法弄清楚了再上手編程,可以先使用MATLAB達到這個目的,經典教材依然是岡薩雷斯那本,國內也有很多這方面的書,圖書館借就可以。有了基礎後上手編程強烈建議使用OpenCV,國內最權威的網站:www.opencv.org.cn,網頁上的兩本教材都是很不錯的參考資料。
基於C語言的,有一本老書很不錯:呂鳳軍 《數字圖像處理編程入門》,網路吧,資料挺多。
最後啰嗦一句:路漫漫其修遠兮,不要妄想短期內有所突破,除非你基礎特別好。
『叄』 visual c++ visualc數字圖像處理技術詳解 怎麼樣
《Visual C++數字圖像處理技術詳解(第2版)》以數字圖像處理技術為主線,全面介紹在Visual C++環境中進行數字圖像處理程序設計的方法,內容涵蓋了數字圖像的幾何變換、正交變換(特徵提取)、增強、復原、重建、形態學處理、分割、匹配、壓縮編碼及特效處理等,並針對每種方法均給出基本原理、典型演算法、Visual C++源碼及綜合應用實例。同時,本書還介紹了Visual C++與VTK、OpenCV等開發平台相結合進行數字圖像處理的程序設計技術。
本書內容全面,深入淺出,層次分明,側重知識的系統性、針對性和先進性,注重理論結合實踐,培養工程應用能力。另外,本書還配有綜合實例的完整源程序,便於在學習和實際開發中使用。
『肆』 c++怎麼寫數字圖像處理的代碼
偏重演算法驗證,MatlAB的強大數學函數庫及矩陣運算方式當然方便,最起碼的FFT、CFT演算法都是現成的;注重圖像顯示,或是開發一些面向對象處理的圖像處理軟體,當然VC++顯得很炫,C++的庫和對象等編程觀念是一種特點(未必是優勢)。一般搞圖像處理的好像MatlAB和C++都是要用的工具吧,我身邊的人大多都要用到這兩種工具。比如我們對一堆遙感點雲進行處理,開始要先進行點雲到圖像的轉換演算法,這一步的一些濾波消噪、特徵提取演算法肯定用MatlAB編寫驗證來得方便,後期對圖像再進行一些顯示層面的處理或者開發出軟體,VC比MatlAB要好一些(好在哪裡呢?反正仁者見仁智者見智,我是再也不會用MatlAB開發軟體了)。C(以及C++、VC++)或MatlAB說白了僅僅是一種工具而已,對初學者,MatlAB容易上手(但深入進去也是別有洞天),C工具亦有自身的優點,但不易上手。其實兩種工具都是基於C語音的,C語音才是常青樹。人的腦袋中有個好的idea最關鍵,工具是根據需要才選用。
『伍』 怎樣用C語言實現數字圖像處理的局部直方圖均衡演算法
1、ctrl+alt+l,自動色階。 2、手動調色階,用黑場和白場吸取色樣。 3、曲線調色。 4、圖像調整,匹配顏色,勾選中和選項。 方法很多的,學會靈活運用喲
『陸』 (急)數字圖像處理主要包含哪八個方面的內容
主要內容有:圖像增強、圖像編碼、圖像復原、圖像分割、圖像分類、圖像重建、圖像信息的輸出和顯示。
圖像增強用於改善圖像視覺質量;圖像復原是盡可能地恢復圖像本來面目;圖像編碼是在保證圖像質量的前提下壓縮數據,使圖像便於存儲和傳輸;圖像分割就是把圖像按其灰度或集合特性分割成區域的過程。
圖像分類是在將圖像經過某些預處理(壓縮、增強和復原)後,再將圖像中有用物體的特徵進行分割,特徵提取,進而進行分類;圖像重建是指從數據到圖像的。處理,即輸入的是某種數據,而經過處理後得到的結果是圖像。
(6)c數字圖像處理演算法擴展閱讀
發展概況
數字圖像處理最早出現於20世紀50年代,當時的電子計算機已經發展到一定水平,人們開始利用計算機來處理圖形和圖像信息。數字圖像處理作為一門學科大約形成於20世紀60年代初期。
早期的圖像處理的目的是改善圖像的質量,它以人為對象,以改善人的視覺效果為目的。圖像處理中,輸入的是質量低的圖像,輸出的是改善質量後的圖像,常用的圖像處理方法有圖像增強、復原、編碼、壓縮等。首次獲得實際成功應用的是美國噴氣推進實驗室(JPL)。
他們對航天探測器徘徊者7號在1964年發回的幾千張月球照片使用了圖像處理技術,如幾何校正、灰度變換、去除雜訊等方法進行處理,並考慮了太陽位置和月球環境的影響,由計算機成功地繪制出月球表面地圖,獲得了巨大的成功。
隨後又對探測飛船發回的近十萬張照片進行更為復雜的圖像處理,以致獲得了月球的地形圖、彩色圖及全景鑲嵌圖,獲得了非凡的成果,為人類登月創舉奠定了堅實的基礎,也推動了數字圖像處理這門學科的誕生。
在以後的宇航空間技術,如對火星、土星等星球的探測研究中,數字圖像處理技術都發揮了巨大的作用。數字圖像處理取得的另一個巨大成就是在醫學上獲得的成果。
『柒』 數字圖像處理的基本概念
(一)數字圖像
數字圖像,又稱數字化圖像,是一種以二維數組(矩陣)形式表示的圖像。該數組由對連續變化的空間圖像作等間距抽樣所產生的抽樣點——像元(像素)組成,抽樣點的間距取決於圖像的解析度或服從有關的抽樣定律抽樣點(像元)的量值,通常為抽樣區間內連續變化之量物的均值化量值,一般稱作亮度值或灰度值,它們的最大、最小值區間代表該數字圖像的動態范圍。數字圖像的物理含義取決於抽樣對象的性質。對於遙感數字圖像,就是相應成像區域內地物電磁輻射強度的二維分布。
在數字圖像中,像元是最基本的構成單元。每一個像元的位置可由行、列(x,y)坐標確定;亮度值(z)通常以0(黑)到255(白)為取值范圍。因此,任何一幅數字圖像都可以通過X、Y、Z的三維坐標系表示出。例如,陸地衛星的MSS圖像(圖4-8),便可看作x=2340(行),y=3240(列),z=0-255的三維坐標系。TM、HRV等亦然,只是行、列數不同而已。
圖4-8 陸地衛星MSS數字圖像的構成原理
數字圖像可以有各種不同的來源:大多數衛星遙感,如MSS、TM、HRV、AVERR等等,地面景像的遙感信息都直接記錄在數字磁帶上,有關的接收系統(遙感衛星地面站、氣象衛星接收站等)均可提供相應的計算機兼容數字磁帶(CCT)及其記錄格式。應用人員只要按記錄格式將CCT數據輸入計算機圖像處理系統,即可獲得數字圖像,並進行各種圖像處理;對於膠片影像,則可通過透射密度計、飛點掃描器、鼓形掃描器及攝像掃描器等,將影像密度轉換為數值,進而形成數字圖像;對於非遙感的地學圖件,如地形圖、地質圖、航磁圖、重力圖、化探元素異常圖等等,也可通過數字化儀,轉換為數字圖像。同一地區不同來源的數字圖像都可精確配准,並作復合處理。
與光學圖像相比,數字圖像量化等級高(256級)、失真度小、不同圖像的配准精度高、傳輸及儲存方便,尤為重要的是可由計算機進行各種靈活、可靠、有效的處理,使遙感圖像獲得更好的判讀、分析等應用效果。
(二)數字圖像處理
數字圖像以不同亮度值像元的行、列矩陣組織數據,其最基本的特點就是像元的空間坐標和亮度取值都被離散化了,即只能取有限的、確定的值。所以,離散和有限是數字圖像最基本的數學特徵。所謂數字圖像處理,就是依據數字圖像的這一數字特徵,構造各種數字模型和相應的演算法,由計算機進行運算(矩陣變換)處理,進而獲得更加有利於實際應用的輸出圖像及有關數據和資料。故數字圖像處理通常也稱為計算機增強處理。
數字圖像處理在演算法上基本可歸為兩類:一類為點處理,即施行圖像變換運算時只輸入圖像空間上一個像元點的值,逐點處理,直到所有點都處理完畢,如反差增強、比值增強等;另一類為鄰域處理,即為了產生一個新像元的輸出,需要輸入與該像元相鄰的若干個像元的數值。這類演算法一般用作空間特徵的處理,如各種濾波處理。點處理和鄰域處理有各自不同的適應面,在設計演算法時,需針對不同的處理對象和處理目標加以選擇。
遙感數字圖像處理,數據量一般很大,往往要同時針對一組數字圖像(多波段、多時相等)作多種處理,因此,需要依據遙感圖像所具有的波譜特徵、空間特徵和時間特性,按照不同的對象和要求構造各種不同的數學模型,設計出不同的演算法,不僅處理方法非常豐富,而且形成了自身的特色,已發展為一門專門的技術。根據處理目的和功能的不同,目前遙感數字圖像處理主要包括以下四方面的內容。
1.圖像恢復處理:旨在改正或補償成像過程中的輻射失真、幾何畸變、各種雜訊以及高頻信息的損失等。屬預處理范疇,一般包括輻射校正、幾何校正、數字放大、數字鑲嵌等。
2.圖像增強處理:對經過恢復處理的數據通過某種數學變換,擴大影像間的灰度差異,以突出目標信息或改善圖像的視覺效果,提高可解譯性。主要包括有反差增強、彩色增強、運算增強、濾波增強、變換增強等方法。
3.圖像復合處理:對同一地區各種不同來源的數字圖像按統一的地理坐標作空間配准疊合,以進行不同信息源之間的對比或綜合分析。通常也稱多元信息復合,既包括遙感與遙感信息的復合,也包括遙感與非遙感地學信息的復合。
4.圖像分類處理:對多重遙感數據,根據其像元在多維波譜空間的特徵(亮度值向量),按一定的統計決策標准,由計算機劃分和識別出不同的波譜集群類型,據以實現地質體的自動識別分類。有監督和非監督兩種分類方法。
遙感數字圖像處理的過程和各部分內容的關系如圖4-9。本節將從遙感地質應用的角度簡要介紹其中幾種常用的處理方法,有一些方法(如復合處理)將在有關的應用章節討論。
數字圖像處理既可在專用的圖像處理系統上進行,也可自編程序在通用計算機或微機上進行;處理結果既可列印成數符圖(圖4-10),也可以在彩色顯示器上作彩色顯示;既可以輸出單波段的黑白圖像,也可以輸出多波段合成或各種運算處理結果的彩色圖像(參見圖版③);既可以內拍或掃描到膠片上成像,也可以外攝翻拍成像;既可以直接形成成果圖件,給出各種統計數據,也可以再記錄到CCT上轉存……。總之,十分靈活、方便,比光學圖像處理有更強的適應性,越來越得到廣泛的應用。
圖4-9 遙感圖像數字處理基本流程
(三)數字圖像處理系統
遙感數字圖像處理不僅數據量大,而且數據傳輸頻繁,專業性強,因此,一般都要在專門的處理設備上進行。用以進行數字圖像處理的專門計算機設備及其功能軟體即稱之為數字圖像處理系統,通通由硬體系統和軟體系統兩大部分組成。
其中,硬體系統,按目前國內外的發展趨勢可分為大型的專用機系統(如目前國內使用的I2S公司的S600系統)和微機圖像處理系統兩類。一般情況下,它們都包括以下一些基本的部件(圖4-11):
1.主機:進行各種運算、預處理、統計分析和協調各種外圍設備運轉的控制中心,是最基本的設備。一般為速度快、內存大的計算機,如VAX-11、VAX-3600等。隨著微機的內存日漸擴大、運算速度越來越快,已可以用微機取代,如PC386、PC486及各種工作站等。
圖4-10 杭州三潭印月TM5波段數符圖
圖4-11 數字圖像處理系統基本結構示意圖
2.磁帶機和磁碟機:連結數字磁帶(CCT)和主機的數據傳輸裝置,既可以輸入CCT數據,也可以將中間處理和最終處理的結果再轉存記錄到CCT上;對於微機系統,圖像數據的傳輸一般用軟磁碟,但對大數據量的衛星CCT則需用具微機介面的磁帶機(如F880);
3.圖像處理機:數字圖像處理專用的核心設備,既具體承擔各種圖像處理功能,如圖像復原、幾何校正、增強和分類等各種變換處理等等,也是主機和各種輸出輸入設備的紐帶。就前者而言,它實際上是各種圖像處理軟體的硬體化。目前國內使用較多的M75圖像處理機即是,它可以快速處理顯示512×512或1024×1024的圖像;對於微機系統,則可以用圖像處理板(MVP-AT板)代替。
4.輸出設備:用作處理結果的監視分析(彩色監視器或彩顯)及記錄、成圖(包括寬行列印機、彩色噴墨列印機、繪圖儀、膠片記錄掃描儀等等)。
對於功能齊全的系統,除上述外,通常還包括有膠片影像的攝像或掃描數字化儀、圖形數字化儀等輸入設備。
軟體系統系指與硬體系統配套的用於圖像處理及操作實施的各種軟體。一般包括系統軟體和應用軟體兩部分。前者又包括操作系統和編譯系統,主要用於輸入指令、參數及與計算機「對話」;後者則是以某種語言編制的應用軟體,存於硬體系統的應用程序庫中,用戶可按研究任務採用對話方式或菜單方式,發出相應的指令使用這些程序,由主機作運算處理,獲得所需的結果。不同專業往往設計有各自的應用軟體系統,故國際上已涌現出各種各樣的軟體系統,如JPL的VICAR系統、LARSYS系統等等;目前微機上則普遍採用C語言編程,也已開發了一系列的微機圖像處理的應用軟體。
『捌』 數字圖像處理問題(編程實現直方圖均衡化演算法)
C實現的,matlab裡面就更簡單了
//LPSTR lpDIBBits - 指向源DIB圖像指針
//LONG lWidth - 源圖像寬度(象素數)
//LONG lHeight - 源圖像高度(象素數)
BOOL WINAPI InteEqualize(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
// 指向源圖像的指針
unsigned char* lpSrc;
// 臨時變數
LONG lTemp;
// 循環變數
LONG i;
LONG j;
// 灰度映射表
BYTE bMap[256];
// 灰度映射表
LONG lCount[256];
// 圖像每行的位元組數
LONG lLineBytes;
// 計算圖像每行的位元組數
lLineBytes = WIDTHBYTES(lWidth * 8);
// 重置計數為0
for (i = 0; i < 256; i ++)
{
// 清零
lCount[i] = 0;
}
// 計算各個灰度值的計數
for (i = 0; i < lHeight; i ++)
{
for (j = 0; j < lWidth; j ++)
{
lpSrc = (unsigned char *)lpDIBBits + lLineBytes * i + j;
// 計數加1
lCount[*(lpSrc)]++;
}
}
// 計算灰度映射表
for (i = 0; i < 256; i++)
{
// 初始為0
lTemp = 0;
for (j = 0; j <= i ; j++)
{
lTemp += lCount[j];
}
// 計算對應的新灰度值
bMap[i] = (BYTE) (lTemp * 255 / lHeight / lWidth);
}
// 每行
for(i = 0; i < lHeight; i++)
{
// 每列
for(j = 0; j < lWidth; j++)
{
// 指向DIB第i行,第j個象素的指針
lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;
// 計算新的灰度值
*lpSrc = bMap[*lpSrc];
}
}
// 返回
return TRUE;
}
『玖』 C語言數字圖像處理是要做些什麼
這個跟你用的語言沒有關系,無論你使用C也好Matlab也好都是為了圖像處理這個目標。
圖像處理其實很龐雜,包括灰度處理、彩色處理、形態學處理等等。
『拾』 數字圖像處理 需要怎樣的編程能力
數字圖像處理所需要的工具:c語言或c++語言,還要懂數據結構,很多演算法實現需要用到復雜的數據結構。掌握了這三門,基本就差不多了。至於vc只是一個編譯工具而已,很多情況下就是做演示用的,不是核心。去公司的話一般都是用c或c++邊功能函數,然後有專門的人負責編界面。而且界面不需要復雜,最重要的是裡面演算法的實現。