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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【opencv】鱼眼图像畸变校正——透视变换

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【opencv】鱼眼图像畸变校正——透视变换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


原圖


球面透視投影(以空間左手坐標系,x軸為水平,y為豎直,z為光軸,投影面法線與xoz面夾角55度)

經過球面透視投影后,會存在兩個滅點,此時,需要消去由于球面透視投影面存在角度引入的滅點。在這里采用opencv的仿射變換。


選取兩條直線上的四個點,這兩條直線相交與要消除的滅點。給出四個點校正后的位置。求變換矩陣。

透視變換


透視變換代碼 opencv2.4.9+vs2012

int main(int argc,char** argv) {CvPoint2D32f pts_src[4], pts_dst[4];CvMat *warp_matrix;IplImage *src, *dst;int offset_x, offset_y;src = cvLoadImage("correct_Img_1.jpg",1);dst = cvCreateImage( cvGetSize(src), src->depth, src->nChannels);//映射關系 (310,281)->(300,200) (193,14)->(300,50) (928,14)->(800,50) (744,281)->(800,200)offset_x = 100;//為正,橫向拉伸,為負,橫向壓縮offset_y = 0;//為正,縱向拉伸,為負,縱向壓縮pts_src[0].x = 310;pts_src[0].y = 281;pts_src[1].x = 193;pts_src[1].y = 14;pts_src[2].x = 928;pts_src[2].y = 14;pts_src[3].x = 744;pts_src[3].y = 281;pts_dst[0].x = 300-offset_x;pts_dst[0].y = 200+offset_y;pts_dst[1].x = 300-offset_x;pts_dst[1].y = 50-offset_y;pts_dst[2].x = 800+offset_x;pts_dst[2].y = 50-offset_y;pts_dst[3].x = 800+offset_x;pts_dst[3].y = 200+offset_y;warp_matrix = cvCreateMat(3,3,CV_32FC1);//計算變換矩陣cvGetPerspectiveTransform( pts_src, pts_dst ,warp_matrix);//透視變換cvWarpPerspective( src, dst ,warp_matrix);cvNamedWindow("dst",1);cvShowImage("dst",dst);cvSaveImage("out.jpg",dst);cvWaitKey(0);cvReleaseImage(&dst);cvDestroyWindow("dst");return 0; }

總結

以上是生活随笔為你收集整理的【opencv】鱼眼图像畸变校正——透视变换的全部內容,希望文章能夠幫你解決所遇到的問題。

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