国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android中的圖像矩陣歸一化

這篇具有很好參考價值的文章主要介紹了Android中的圖像矩陣歸一化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

在graphics包下的Matrix是一個3x3的矩陣,按網(wǎng)上的的圖是這樣的

Android中的圖像矩陣歸一化

??MSCALE_X, MSCALE_Y表示縮放;

?MSKEW_X, MSKEW_Y表示錯切,與上面兩個參數(shù)一起達到圖像旋轉(zhuǎn)效果;

MTRANS_X, MTRANS_Y表示平移;

?MPERSP_0, MPERSP_1表示透視;

MPERSP_2固定為1。

在把圖像矩陣應(yīng)用到OpenGL中時遇到了問題:glsl中獲取到的矩陣是歸一化的,需要先把原來的矩陣進行歸一化處理。

推導(dǎo)過程

按照矩陣乘法規(guī)則

Android中的圖像矩陣歸一化

Android中的圖像矩陣歸一化

Android中的圖像矩陣歸一化

如果考慮到透視變換,則最終的坐標(biāo)X=x/z, Y=y/z;

設(shè)顯示目標(biāo)的尺寸為Tw,Th,歸一化的坐標(biāo)則是x1=X/Tw, y1=Y/Th;

Android中的圖像矩陣歸一化? ............①

?Android中的圖像矩陣歸一化? ?............②

設(shè)圖像原始寬高為w,h,歸一化的矩陣為

那么,參照上面的等式,有

Android中的圖像矩陣歸一化

Android中的圖像矩陣歸一化

Android中的圖像矩陣歸一化

同樣,考慮到透視變換,最終的歸一化的坐標(biāo)x1,y1為

Android中的圖像矩陣歸一化? ............③

?Android中的圖像矩陣歸一化? ............④

①③聯(lián)立并化簡可得到

Android中的圖像矩陣歸一化

上式的每一項均為0,才能保證結(jié)果一定為0,因此有

? (1)? ???(2)? ??(3)

Android中的圖像矩陣歸一化? (4)

Android中的圖像矩陣歸一化? (5)

Android中的圖像矩陣歸一化? (6)

同理,②④聯(lián)立可得

? (7)??? (8)??? (9)

理論上(1)-(9)共9個方程,b0-b8共9個未知數(shù),可以解方程,但其實a8=b8=1,所以上述方程組可以化簡,最終結(jié)果是

有興趣的朋友可以推導(dǎo)驗證一下。文章來源地址http://www.zghlxwxcb.cn/news/detail-422028.html

代碼實現(xiàn)

/**
     * 圖像縮放矩陣歸一化
     *
     * @param src          圖像裁剪及縮放矩陣,length=9
     * @param width        圖像原寬度
     * @param height       圖像原高度
     * @param targetWidth  目標(biāo)圖像寬度,即顯示的圖像寬度,如100像素的寬度拉伸顯示在300像素的View中,則應(yīng)為100
     * @param targetHeight 目標(biāo)圖像高度,即顯示的圖像高度
     */
    public static float[] normalize(float[] src, int width, int height, int targetWidth, int targetHeight) {
        float[] values = new float[9];
        values[Matrix.MSCALE_X] = src[0] * width / targetWidth;
        values[Matrix.MSKEW_X] = src[1] * height / targetWidth;
        values[Matrix.MTRANS_X] = src[2] / targetWidth;
        values[Matrix.MSKEW_Y] = src[3] * width / targetHeight;
        values[Matrix.MSCALE_Y] = src[4] * height / targetHeight;
        values[Matrix.MTRANS_Y] = src[5] / targetHeight;
        values[Matrix.MPERSP_0] = src[6] * width;
        values[Matrix.MPERSP_1] = src[7] * height;
        values[Matrix.MPERSP_2] = src[8];
        return values;
    }

到了這里,關(guān)于Android中的圖像矩陣歸一化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包