91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么用OpenCV實現透視變換功能

發布時間:2021-08-24 09:56:14 來源:億速云 閱讀:289 作者:chen 欄目:大數據

本篇內容主要講解“C++怎么用OpenCV實現透視變換功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++怎么用OpenCV實現透視變換功能”吧!

前言

我們在拍攝圖片的時候無法保證圖片是正下方垂直拍攝的,所以在獲取圖像的時候會防止我們提取正確的圖像,這里我們就需要用到了透視變換。今天我們在試一下OpenCV中的透視變換。

實現效果

C++怎么用OpenCV實現透視變換功能

上圖是我們直接拍攝的手機,可以發現圖像不是正上方垂直拍攝

C++怎么用OpenCV實現透視變換功能

上面這張就是我們通過透視變換后生成的新的圖片效果

API函數


GetPerspectiveTransform
由四對點計算透射變換

CvMat* cvGetPerspectiveTransform( const CvPoint2D32f * src, const CvPoint2D32f*  dst,  CvMat*map_matrix );

參數詳解:

src   輸入圖像的四邊形頂點坐標。
dst   輸出圖像的相應的四邊形頂點坐標。
map_matrix  指向3×3輸出矩陣的指針。
函數cvGetPerspectiveTransform計算滿足以下關系的透射變換矩陣:
這里,dst(i)= (x'i,y'i),src(i)= (xi,yi),i = 0..3.


warpPerspective函數
主要作用:對圖像進行透視變換
函數的調用形式:
void warpPerspective(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())

參數詳解:
InputArray src:輸入的圖像
OutputArray dst:輸出的圖像
InputArray M:透視變換的矩陣
Size dsize:輸出圖像的大小
int flags=INTER_LINEAR:輸出圖像的插值方法,


代碼演示

我們再新建一個項目名為opencv--toushi,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.

C++怎么用OpenCV實現透視變換功能


定義透視變換的坐標

C++怎么用OpenCV實現透視變換功能

上面的src_corners的點的定義是根據我們的原圖上自己設置的點,后面我們會找一個機會來用程序獲取這些點。

dst_corners是我們要通過矩陣變化后生成的點。

定義4個點的順序應該是順時針的方向獲取的,如下圖

C++怎么用OpenCV實現透視變換功能


獲取透視變換矩陣并顯示最后圖像

C++怎么用OpenCV實現透視變換功能


最后生成的效果

C++怎么用OpenCV實現透視變換功能

右圖為我們最后通過透視變換得到的圖像效果,在這個圖像的基礎上我們再做一些特征提取就非常的簡單了。

到此,相信大家對“C++怎么用OpenCV實現透視變換功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绵阳市| 高邮市| 来安县| 大姚县| 德格县| 金沙县| 岑溪市| 怀集县| 荣成市| 辽阳市| 西和县| 淮阳县| 柏乡县| 磐安县| 绥德县| 阿巴嘎旗| 湟中县| 梁山县| 兴宁市| 定西市| 白山市| 扬州市| 寿光市| 宣武区| 奉化市| 新沂市| 莲花县| 孟州市| 五大连池市| 法库县| 体育| 涞源县| 化隆| 南宫市| 长阳| 禄丰县| 永城市| 建平县| 达日县| 清远市| 肃北|