日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab 透视变换 原理及其代码实现

發布時間:2024/1/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab 透视变换 原理及其代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、透視變換內涵

透視變換本質:將一個圖像投影到新的視平面

透視變換思路:

  • 將二維坐標系轉換為三維坐標系。

  • 將三維坐標系投影到新的二維坐標系。

  • 該過程屬于非線性變換過程,一個菱形在經過非線性變換后得到一個四邊形,但是不在平行。

    透視變換又可以稱為投影變換,仿射變換屬于透視變換的特例。透視變換能夠保持直線性,即原圖中的直線,在經透視變換后仍為直線。

    二、透視變換的詳細原理

    總體思路:

  • 求出投影映射矩陣:根據4個基準坐標對

  • 反求出源圖像坐標:根據映射矩陣內參數,求一個二元一次方程組

  • 透視變換矩陣變換公式為:

    另外定點,即移動到的目標點為:

    其中透視變換矩陣:

    要移動的點,即源目標點(可以手動標記)為:

    這是一個從二維空間變換到三維空間的轉換,因為圖像在二維平面,故除以Z,(X’;Y’;Z’)表示圖像上的點:

    另a33=1,展開上面的公式,可得到一個點為:

    四個點,即可得到8個方程,便可求解出透視變換矩陣A。

    三、Matlab代碼實現

    clear all; close all; clc;img= imread('1.jpg'); img= rgb2gray(img); imshow(mat2gray(img)); [M N] = size(img);dot=ginput(); %取四個點,依次是左上,右上,左下,右下,這里我取的是書的四個角 w=round(sqrt((dot(1,1)-dot(2,1))^2+(dot(1,2)-dot(2,2))^2)); %從原四邊形獲得新矩形寬 h=round(sqrt((dot(1,1)-dot(3,1))^2+(dot(1,2)-dot(3,2))^2)); %從原四邊形獲得新矩形高y=[dot(1,1) dot(2,1) dot(3,1) dot(4,1)]; %四個原頂點 x=[dot(1,2) dot(2,2) dot(3,2) dot(4,2)];%這里是新的頂點,我取的矩形,也可以做成其他的形狀 %大可以原圖像是矩形,新圖像是從dot中取得的點組成的任意四邊形.:) Y=[dot(1,1) dot(1,1) dot(1,1)+h dot(1,1)+h]; X=[dot(1,2) dot(1,2)+w dot(1,2) dot(1,2)+w];B=[X(1) Y(1) X(2) Y(2) X(3) Y(3) X(4) Y(4)]'; %變換后的四個頂點,方程右邊的值 %聯立解方程組,方程的系數 A=[x(1) y(1) 1 0 0 0 -X(1)*x(1) -X(1)*y(1); 0 0 0 x(1) y(1) 1 -Y(1)*x(1) -Y(1)*y(1);x(2) y(2) 1 0 0 0 -X(2)*x(2) -X(2)*y(2);0 0 0 x(2) y(2) 1 -Y(2)*x(2) -Y(2)*y(2);x(3) y(3) 1 0 0 0 -X(3)*x(3) -X(3)*y(3);0 0 0 x(3) y(3) 1 -Y(3)*x(3) -Y(3)*y(3);x(4) y(4) 1 0 0 0 -X(4)*x(4) -X(4)*y(4);0 0 0 x(4) y(4) 1 -Y(4)*x(4) -Y(4)*y(4)];fa=inv(A)*B; %用四點求得的方程的解,也是全局變換系數 a=fa(1);b=fa(2);c=fa(3); d=fa(4);e=fa(5);f=fa(6); g=fa(7);h=fa(8);rot=[d e f;a b c;g h 1]; %公式中第一個數是x,Matlab第一個表示y,所以我矩陣1,2行互換了pix1=rot*[1 1 1]'/(g*1+h*1+1); %變換后圖像左上點 pix2=rot*[1 N 1]'/(g*1+h*N+1); %變換后圖像右上點 pix3=rot*[M 1 1]'/(g*M+h*1+1); %變換后圖像左下點 pix4=rot*[M N 1]'/(g*M+h*N+1); %變換后圖像右下點height=round(max([pix1(1) pix2(1) pix3(1) pix4(1)])-min([pix1(1) pix2(1) pix3(1) pix4(1)])); %變換后圖像的高度 width=round(max([pix1(2) pix2(2) pix3(2) pix4(2)])-min([pix1(2) pix2(2) pix3(2) pix4(2)])); %變換后圖像的寬度 imgn=zeros(height,width);delta_y=round(abs(min([pix1(1) pix2(1) pix3(1) pix4(1)]))); %取得y方向的負軸超出的偏移量 delta_x=round(abs(min([pix1(2) pix2(2) pix3(2) pix4(2)]))); %取得x方向的負軸超出的偏移量 inv_rot=inv(rot);for i = 1-delta_y:height-delta_y %從變換圖像中反向尋找原圖像的點,以免出現空洞,和旋轉放大原理一樣for j = 1-delta_x:width-delta_xpix=inv_rot*[i j 1]'; %求原圖像中坐標,因為[YW XW W]=fa*[y x 1],所以這里求的是[YW XW W],W=gy+hx+1;pix=inv([g*pix(1)-1 h*pix(1);g*pix(2) h*pix(2)-1])*[-pix(1) -pix(2)]'; %相當于解[pix(1)*(gy+hx+1) pix(2)*(gy+hx+1)]=[y x],這樣一個方程,求y和x,最后pix=[y x];if pix(1)>=0.5 && pix(2)>=0.5 && pix(1)<=M && pix(2)<=Nimgn(i+delta_y,j+delta_x)=img(round(pix(1)),round(pix(2))); %最鄰近插值,也可以用雙線性或雙立方插值end end end figure; imshow(uint8(imgn));

    四、效果展示

    總結

    以上是生活随笔為你收集整理的Matlab 透视变换 原理及其代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 99re6这里只有精品 | 国产成人无码精品 | 777精品视频| 九一精品视频 | 亚洲首页| 欧美老少做受xxxx高潮 | 国产成人精品亚洲日本在线观看 | av动漫免费看 | 大桥未久av一区二区三区中文 | 久99久视频 | 哪里可以免费看毛片 | 丁香花在线影院观看在线播放 | av噜噜噜 | av成人天堂 | 精品国产中文字幕 | 玖玖999| 亚洲综合一区在线 | 精品999久久久一级毛片 | 干欧美少妇 | 国产精品伦一区二区三级古装电影 | 91精品网 | 国产精品三级在线观看 | 中文字幕成人一区 | 日韩精品一区二区电影 | 欧美激情综合 | 色呦呦视频在线 | 一级爱爱片 | aa视频在线 | 亚洲区av | 亚洲天堂视频网站 | 久久色在线观看 | 天降女子 | 久久爱一区 | 快色污| 精品国产专区 | 国产精品资源站 | 色婷婷色婷婷 | 小优视频污 | 日本护士做爰视频 | 九色国产精品 | 人人射人人插 | 手机看片国产日韩 | 色八区 | 色视频综合 | 亚洲精品一区二区三区婷婷月 | 亚洲成人免费av | 伊伊综合网 | 亚洲伦理在线观看 | av资源在线免费观看 | 国产日韩欧美日韩大片 | 激情婷| 国产情侣自拍一区 | av软件在线观看 | 黄色www| 久久国产成人精品av | 狠狠五月婷婷 | 亚洲性综合 | 爱操综合| 日日摸日日| a黄视频 | 91网址在线观看 | 久久久欧洲| 天天操天天爽天天射 | 日本大奶视频 | 亚洲一区二区精品在线 | 在线观看一区二区三区四区 | 五月天男人天堂 | 在线观看免费视频国产 | 午夜窝窝| 午夜一区不卡 | 国产福利在线视频 | 爱情岛论坛亚洲品质自拍 | 亚洲淫视频 | 欧美va天堂 | 黑丝袜av | 亚洲第一黄色网 | 色噜噜狠狠一区二区三区果冻 | 无码精品人妻一二三区红粉影视 | 20日本xxxxxxxxx46| 欧美日韩高清在线观看 | 日本免费在线视频 | 日韩大片av | 亚洲区免费 | 亚洲A∨无码国产精品 | 国产一区二区av在线 | 欧美成人自拍 | 97色综合| 中文字幕日韩精品在线 | 新国产视频 | 日韩免费大片 | 国产色一区| 日韩中文字幕二区 | 做爰无遮挡三级 | 久久精品一二 | 乱淫67194 | 精品无码国产污污污在线观看 | 亚洲国产高清国产精品 | 猎艳山村丰满少妇 | 97夜夜操|