有很多圖形庫讓我們可以簡單地調用函數來處理圖像,那麼這些圖形庫怎麼寫出來的呢?我這裡介紹怎麼單單用C/C++標準庫來實現圖像處理。

處理圖像的主要三步驟是:讀取圖像文件—— &> 結合數字圖像知識寫演算法處理圖像—— &> 保存圖像到文件。(雖然只有三部分,但每一部分涉及的知識是龐大的。)

1、讀取圖像文件部分,圖像最基本的存儲格式是點陣圖bmp,主要部分是一個(邏輯上)二維數組,用於存儲對應像素點的顏色(通常為RGB格式)。還有其它各種的儲存圖像的格式,例如有損壓縮的jpg等。處理圖像通常先將其轉化為點陣圖再進行處理。所以第一步的關鍵就是了解各種格式的圖像文件,用fopen、fread讀入,將之轉化點陣圖——二維數組存儲的圖像再處理。

2、處理圖像部分,這部分的關鍵是了解數字圖像知識,寫出相應高效的演算法處理點陣圖圖像。這裡舉兩個簡單的例子,1、"怎麼切割圖片只要上部分「,如果原圖像是512*512的,你就準備新的512*256數組,將原圖的上半部分複製入新數組即可。2、"怎麼使圖像整理變亮」這裡運用到點運算,每個像素點加上一個常數,注意不要越界即可。3、最後就按照想要保存的格式fwrite,fclose保存即可。總結關鍵要掌握的知識是:1、了解各圖像儲存的格式。2、《數字圖像處理》。3《演算法導論》。


圖像處理可以關注下OpenCV,跨平台的圖像處理庫。圖像切割怎麼定義?畫一條線將圖像分成兩張嗎?如果是這樣的話,可以把圖像當作一個二維的空間。遍歷這個二維空間里的每一點,判斷它該屬於分割後的哪一個平面。然後根據分割後的平面生成相應的圖像。
首先你會用c++;其次你會在linux用c++;

第三你要了解圖像是怎麼回事,會寫一些常用 的圖像演算法程序。

第四你要學會使用一些庫,比如opencv等。


推薦閱讀:
查看原文 >>
相关文章