【Android】映像變換

來源:互聯網
上載者:User

標籤:

源碼下載:http://download.csdn.net/detail/jsgaobiao/9510213

?  【實驗目的】

使用A n d r o id系統進行映像變換,映像變換包括形狀變換和顏色變換

– 映像變換:平移變換、尺度變換、旋轉變換等。

– 顏色變換:冰凍效果、融炎效果、漫畫效果、羽化效果、縮放模糊效果、LOMO特效、電影效果等

 

?  【實驗器材】

Android Studio 1.5.1

Xiaomi Pad (7.9’’): Android 4.4.4 , 1536*2048 xhdpi

 

?  【實驗原理】

本次實驗涉及的變換分兩種,第一類是映像變換,包括:

平移:

旋轉:

縮放:

錯切:

 

第二類變換是顏色變換,包括:

 

漫畫: R= |g – b + g + r| * r / 256

G = |b – g + b + r| * r / 256

B = |b – g + b + r| * g / 256

 

冰凍: R= R – G – B

G = G – B – R

B = B – R – G

 

熔炎:R = R * 128 / (G + B + 1)

            G = G * 128 / (B +R +1)

            B = B * 128 / (R + G +1)

 

邊緣: 相鄰兩個像素的差分

 

如所示,程式提供了兩個Spinner分別供使用者選擇相應的顏色變換和形狀變換的選項,並在螢幕的主要區域顯示映像。

在程式的實現上,我是將原圖讀入儲存為Bitmap,先對其做顏色變換,再做形狀變換:

具體的形狀變換和顏色變換,按照上文中給出的方法實現。

其中,旋轉、縮放、錯切三種效果可以利用Matrix類型內建的變換函數實現:

平移效果則是根據公式:  ,逐像素進行位移。

顏色變換以冰凍效果為例:


冰凍效果就是按照公式:R = R – G – B;G = G – B – R;B = B – R – G

對映像的RGB進行重新計算。

由於每個像素的RGB值都被以二進位的格式儲存在一個int類型中,因此我先將(I,j)像素的顏色資訊儲存在pix裡,通過位元運算提取他們的Alpha,R,G,B,4個通道的值,並進行重新計算後,更新映像的RGB值。

其他顏色變換的效果只要根據不同的公式進行計算即可。

在實際測試中我發現,對於本身缺少藍色成分的圖片,使用該冰凍變換的公式效果並不好,會使得得到的圖片非常暗,所以該效果的變換公式還是有一定的缺陷的。

?  【小結】

我通過本次實驗,瞭解了映像變換的相關演算法和Android處理映像的資料結構的使用方法,熟悉了安卓系統中下拉選擇菜單的使用。增加了自己在影像處理方面的編程經驗。

【Android】映像變換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.