最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV實(shí)現(xiàn)透視變換矯正

 更新時(shí)間:2022年01月23日 10:30:26   作者:GraceSkyer  
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)透視變換矯正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了OpenCV實(shí)現(xiàn)透視變換矯正的具體代碼,供大家參考,具體內(nèi)容如下

演示結(jié)果參考:

功能實(shí)現(xiàn):運(yùn)行程序,會(huì)顯示圖片的尺寸,按回車鍵后,依次點(diǎn)擊需矯正的圖片的左上、右上、左下、右下角,并能顯示其坐標(biāo),結(jié)果彈出矯正后的圖片,如圖上的PIC2對(duì)話框??梢岳^續(xù)選擇圖片四個(gè)點(diǎn)進(jìn)行實(shí)驗(yàn),按下字符'q'后退出。

代碼如下:(注:圖中的11.jpg圖片自己選取放到該程序目錄下。)

//使用鼠標(biāo)在原圖像上選取感興趣區(qū)域
#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
using namespace std;
using namespace cv;
const int N = 400;
const int M = 220;
Mat img;
Point p[5];
int flag = 1;
int cnt = 0;
static void mouse_callback(int event, int x, int y, int, void *) {
? ? //當(dāng)鼠標(biāo)左鍵按下時(shí),記錄其坐標(biāo)
? ? if(event == EVENT_LBUTTONDOWN) {
? ? ? ? p[cnt].x = x*1.0; p[cnt++].y = y*1.0;
? ? ? ? cout << "p" << cnt << " is recorded at " << p[cnt-1] << endl;
? ? }

? ? if(cnt==4) {
? ? ? ? ? ? cnt=0;
? ? ? ? ? ? //變換前圖像四個(gè)點(diǎn)
? ? ? ? ? ? vector<Point2f>src(4);
? ? ? ? ? ? src[0] = p[0];
? ? ? ? ? ? src[1] = p[1];
? ? ? ? ? ? src[2] = p[2];
? ? ? ? ? ? src[3] = p[3];
? ? ? ? ? ? //變換后
? ? ? ? ? ? vector<Point2f>dst(4);
? ? ? ? ? ? dst[0] = Point2f(0, 0);//左上
? ? ? ? ? ? dst[1] = Point2f(N, 0);//右上
? ? ? ? ? ? dst[2] = Point2f(0, M);//左下
? ? ? ? ? ? dst[3] = Point2f(N, M);//右下
? ? ? ? ? ? //獲取透視變換矩陣

? ? ? ? ? ? Mat m = getPerspectiveTransform(src, dst);
? ? ? ? ? ? Mat res;
? ? ? ? ? ??
? ? ? ? ? ? warpPerspective(img, res, m, Size(N, M),INTER_LINEAR);//實(shí)現(xiàn)圖像透視變換
? ? ? ? ? ? namedWindow("PIC2",1);
? ? ? ? ? ? imshow("PIC2", res);
? ? ? ? ? ? waitKey(0);
? ? ? ? } ? ?

}
int main() {
? ? img = imread("11.jpg");
? ? if(!img.data) {cout<<"read image file wrong!"<<endl; getchar(); return 0;}
? ? cout << "height = " << img.size().height << ",width = " << img.size().width << endl;
? ? getchar();

? ? namedWindow("PIC");
? ? imshow("PIC", img);
? ??
? ? setMouseCallback("PIC", mouse_callback);//設(shè)置鼠標(biāo)事件回調(diào)函數(shù)
? ??
? ? while(char(waitKey(1)) != 'q') {}

? ? return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言超詳細(xì)講解宏與指針的使用

    C語(yǔ)言超詳細(xì)講解宏與指針的使用

    宏定義是用宏名來(lái)表示一個(gè)字符串,在宏展開(kāi)時(shí)又以該字符串取代宏名,這只是一種簡(jiǎn)單的替換。要想突破C語(yǔ)言的學(xué)習(xí),對(duì)指針的掌握是非常重要的,本文將具體針對(duì)宏與指針的基礎(chǔ)做詳盡的介紹
    2022-06-06
  • C語(yǔ)言函數(shù)多個(gè)返回值方式

    C語(yǔ)言函數(shù)多個(gè)返回值方式

    這篇文章主要介紹了C語(yǔ)言函數(shù)多個(gè)返回值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語(yǔ)言中scanf函數(shù)與空格回車的用法說(shuō)明

    C語(yǔ)言中scanf函數(shù)與空格回車的用法說(shuō)明

    這篇文章主要介紹了C語(yǔ)言中scanf函數(shù)與空格回車的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • C++如何計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù)

    C++如何計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù)

    這篇文章主要介紹了C++如何計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解C語(yǔ)言對(duì)字符串處理函數(shù)的實(shí)現(xiàn)方法

    詳解C語(yǔ)言對(duì)字符串處理函數(shù)的實(shí)現(xiàn)方法

    這篇文章主要為大家介紹了C語(yǔ)言對(duì)字符串處理函數(shù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • C++有限狀態(tài)機(jī)實(shí)現(xiàn)計(jì)算器小程序

    C++有限狀態(tài)機(jī)實(shí)現(xiàn)計(jì)算器小程序

    這篇文章主要為大家詳細(xì)介紹了C++有限狀態(tài)機(jī)實(shí)現(xiàn)計(jì)算器小程序的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C++11各種鎖的具體使用

    C++11各種鎖的具體使用

    本文主要介紹了C++11各種鎖的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • boost.asio框架系列之socket編程

    boost.asio框架系列之socket編程

    這篇文章介紹了boost.asio框架系列之socket編程,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C++中的強(qiáng)制類型轉(zhuǎn)換操作詳解

    C++中的強(qiáng)制類型轉(zhuǎn)換操作詳解

    C++中提供了四種強(qiáng)制類型轉(zhuǎn)換技術(shù):static_cast、dynamic_cast、reinterpret_cast和const_cast。這些技術(shù)能夠在需要時(shí)將一種類型轉(zhuǎn)換為另一種類型,但需要注意它們的適用條件和安全性。程序員需要根據(jù)具體情況選擇合適的強(qiáng)制類型轉(zhuǎn)換方式,以確保程序的正確性和可靠性
    2023-04-04
  • c++ 內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別

    c++ 內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別

    內(nèi)聯(lián)函數(shù)是c++為了提高程序的運(yùn)行速度做的改進(jìn),那么內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是什么,本文就來(lái)詳細(xì)的介紹一下,感興趣的朋友可以了解一下
    2021-05-05

最新評(píng)論

朝阳市| 阳西县| 葫芦岛市| 大姚县| 迁安市| 宁晋县| 岫岩| 博兴县| 泰宁县| 蒙城县| 兰西县| 鲁山县| SHOW| 桃园县| 通城县| 琼海市| 鄂伦春自治旗| 宜川县| 绩溪县| 阿克苏市| 唐海县| 云阳县| 和林格尔县| 房产| 蓬溪县| 沂水县| 雅安市| 廊坊市| 夏津县| 南溪县| 大关县| 澜沧| 寿光市| 泸西县| 伽师县| 卓资县| 肇东市| 新沂市| 聊城市| 安溪县| 呼伦贝尔市|