溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OpenCV關(guān)于萬達(dá)平臺(tái)搭建重映射map_x,map_y的疑惑

發(fā)布時(shí)間:2020-06-23 05:02:08 來源:網(wǎng)絡(luò) 閱讀:1070 作者:wyuwu 欄目:大數(shù)據(jù)

OpenCV中什么萬達(dá)平臺(tái)搭建論壇:haozbbs.com Q1446595067 是重映射就不贅述了,主要是對(duì)源碼中map_x,map_y有些疑惑,圖像是如何進(jìn)行重映射的呢?

上下變換的部分源碼:

        Mat map_x, map_y;
    map_x.create(srcimg.size(), CV_32FC1);
    map_y.create(srcimg.size(), CV_32FC1);
    for (int i=0;i<srcimg.rows;i++)
    {
        for (int j=0;j<srcimg.cols;j++)
        {
            map_x.at<float>(i, j) = static_cast<float>(j);
            map_y.at<float>(i, j) = static_cast<float>(srcimg.rows- i);
        }
    }

開始看老半天不理解重映射原理,后來把map_x,map_y內(nèi)的值輸入后,大概知道了。

假設(shè)對(duì)一張10*10的圖片進(jìn)行上下重映射,

根據(jù) map_x.at<float>(i, j) = static_cast<float>(j); map_x作用是記錄列坐標(biāo),

根據(jù) map_y.at<float>(i, j) = static_cast<float>(srcimg.rows- i); map_y作用是記錄行坐標(biāo)。

輸出map_x,map_y:

map_x:

map_y:

我們可以看到,在x方向從左到右逐漸增大排列,在y方向上到下減小排列,

將map_y,map_x組合,以坐標(biāo)形式輸出,則結(jié)果為

而原圖的坐標(biāo)為:

對(duì)比發(fā)現(xiàn),原圖坐標(biāo)和map_y,map_x組合坐標(biāo)發(fā)生了上下翻轉(zhuǎn)。

然后根據(jù)坐標(biāo),把原圖坐標(biāo)對(duì)應(yīng)的像素點(diǎn)一一映射到轉(zhuǎn)換圖上,就是上下翻轉(zhuǎn)變換后的圖像,這也是圖片重映射的原理

其他的變換應(yīng)該同理。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI