亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

平山县| 嘉荫县| 东明县| 诸城市| 大新县| 蛟河市| 大悟县| 清苑县| 专栏| 环江| 晋宁县| 增城市| 微山县| 磐安县| 海门市| 五家渠市| 凤冈县| 锡林浩特市| 阿图什市| 双牌县| 二手房| 淮滨县| 高清| 屏南县| 兴义市| 正宁县| 大厂| 赤城县| 吴江市| 盐城市| 洪泽县| 繁峙县| 清水河县| 肃宁县| 东光县| 红桥区| 城市| 筠连县| 安阳县| 阿尔山市| 顺义区|