?

基于QT的數字圖像的幾何變換程序設計

2015-02-22 01:40趙之源
決策與信息 2015年21期
關鍵詞:數字圖像像素點畫布

趙之源

北京郵電大學 北京 100876

基于QT的數字圖像的幾何變換程序設計

趙之源

北京郵電大學 北京 100876

介紹了使用QT對BMP圖像進行幾何變換的相關概念和方法。根據BMP格式圖像的格式類型和存儲原理,介紹對BMP格式圖像進行讀取和寫入方法,并在此基礎上介紹了對BMP圖片進行幾何變換的處理的方法和C++代碼。

數字圖像;幾何變換;QT;C++

數字圖像的幾何變換,顧名思義,就是對圖像進行幾何空間上的變換,比如圖像的大小、圖像的形狀、圖像的位置等變化。一般圖像處理軟件中的裁剪、縮放、旋轉等功能都是基于數字圖像的幾何變換原理工作的。市場中常見的PS等圖像處理軟件可調節參數較少,不能滿足用戶部分用戶需求,QT的界面設計使得開發帶界面的軟件更為方便,且可用C++語言編寫,運行效率高,執行速度快,適合圖像處理。

1、數字圖像的幾何變換原理

數字圖像的幾何變換一般分為兩種,一種是位置變換,比如平移、旋轉等;另一種是形狀變換,比如縮放,裁剪等。當然還有綜合兩者的復合變換。圖像幾何變換的原理比較簡單,一般可以理解為圖像的像素點在平面內的各種方向上的平移。但是對于縮放變換一般還涉及到圖像像素點的插值問題。

數字圖像的幾何變換過程可以理解為一個線性換,由公式(1)和公示(2)定義:

公式(1)、(2)中的X、Y表示變換后的像素坐標,x、y表示變前的像素坐標,a、b是實數。而插值一般用于圖像的放大部分,對于放大后多出的像素需要經過特定的計算賦值,一般取新增像素點的周圍點的平均值作為新增像素點的亮度值。

2、程序設計步驟

程序是基于QT設計的,使用C++編程語言,所以設計過程包括界面設計和程序設計思路。

2.1 程序界面設計

程序需要用戶輸入數據,故設計用戶數據接口即可。

2.2 程序流程設計

程序設計的實現過程為:(1)讀取BMP文件的文件頭、信息頭、顏色表、像素點數據等位圖數據。(2)實現圖像的平移功能。主要代碼和注釋如下:

for(inti=0;i

for(intj=0;j

{

intx1=i+100;

inty1=j+100;

if(y10&&x10)

data6[i][j]=data0[x1][y1];

else

data6[i][j]=0;

}

(3)實現圖像的左右反轉功能。用每行最大點數減橫坐標即可得到新的橫坐標,縱坐標不變即完成反轉

關鍵代碼如下:

for (inti=0; i

for (int j=0; j

data1[i][j]=data0[i][byteline-j];

(4)實現圖像的上下反轉功能。同左右反轉原理,更改縱坐標即可。

關鍵代碼如下:

for (inti=0; i

for (int j=0; j

data2[i][j]=data0[Bitmapinfoheader.biHeight-i-1][j];

(5)實現圖像的等比例縮小功能。主要代碼如下:

///////原圖像旋轉平移后的坐標跟原坐標的對應關系

for(inti=0;i

for(intj=0;j

{

data5[i][j]=data0[i*4][j*4];

}

(6)實現圖像的等比例擴大功能。

等比例擴大采用雙線性內插法,前后共進行三次直線方程計算,得出對應點的坐標,關鍵代碼如下:

BYTEtemp1;

BYTEtemp2;

BYTEtemp3;

floatx,y;

for(inti=0;i

for(intj=0;j

{

x=i/4.0;

y=j/4.0;

//雙線性插入,共經過以下三條直線方程計算出插入點亮度。

temp1=data0[i/4][j/4]+(data0[i/4+1][j/4]-data0[i/4] [j/4])*(x-i/4);

temp2=data0[i/4][j/4+1]+(data0[i/4+1][j/4+1]-data0[i/4] [j/4+1])*(x-i/4);

temp3=temp1+(temp2-temp1)*(y-j/4);

data6[i][j]=temp3;

}

(7)將圖片數據寫到新文件中。(8)如果縮放過程需要更改畫布大小,要根據新圖像所需畫布大小重新更改文件頭數據,包括文件寬度、高度、數據大小、文件大小。

3、程序測試實驗

本實驗用的是500乘500的8位BMP格式的灰度圖像。

原畫布大小旋轉丟失旋轉后畫布外的圖像,實驗結果如圖3所示擴大畫布大小旋轉保留全部圖像,實驗結果如圖4所示

猜你喜歡
數字圖像像素點畫布
改進壓縮感知的艦船數字圖像水印算法
基于Blob算法的多特征聯合數字圖像轉換仿真
圖像二值化處理硬件加速引擎的設計
基于局部相似性的特征匹配篩選算法
在畫布上做夢的畫家 夏加爾
跟蹤導練(三)
一種X射線圖像白點噪聲去除算法
基于canvas的前端數據加密
《數字圖像處理》課程的驅動教學實踐
大師的畫布
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合