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

VS+opencv實(shí)現(xiàn)鼠標(biāo)移動(dòng)圖片

 更新時(shí)間:2019年01月18日 08:35:07   作者:fanyan008  
這篇文章主要為大家詳細(xì)介紹了VS+opencv實(shí)現(xiàn)鼠標(biāo)移動(dòng)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

基于控制臺(tái)應(yīng)用程序+opencv,實(shí)現(xiàn)點(diǎn)擊鼠標(biāo)左鍵,可以拖動(dòng)圖片以顯示感興趣區(qū)域

#include <opencv2/highgui/highgui.hpp>

//#include <iostream> 
//using namespace std; 
using namespace cv;

int win_width=1400,win_height=700;
Mat image,win_image;       //申明全局變量
Rect rect_win,rect_img;

void moveImage()//實(shí)現(xiàn)移動(dòng)圖像
{ 
 Mat image_ROI=image(rect_img);  // 定義源圖像感興趣區(qū)域ROI(需要顯示的區(qū)域)
 image_ROI.convertTo(win_image,image_ROI.type());  // image_ROI 復(fù)制到 win_image
 ////也可以直接用 Mat win_image=image(rect_img); //但是很卡 Why?
 imshow("拼接結(jié)果",win_image);
}

void on_mouse( int event, int x, int y, int flags, void* ustc) //int x,int y,代表鼠標(biāo)位于窗口的(x,y)坐標(biāo)位置,窗口左上角默認(rèn)為原點(diǎn),向右為x軸,向下為y軸
{
  // static聲明靜態(tài)局部變量,值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,
  //即其占用的存儲(chǔ)單元不釋放,在下次該函數(shù)調(diào)用時(shí),該變量保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值
  static Point p0; 
  static int xrect_img;  //左鍵按下時(shí),窗口顯示圖像左上角在源圖像中x、y
  static int yrect_img;
 if(event==CV_EVENT_LBUTTONDOWN)
 {
  p0=Point(x,y); //獲取鼠標(biāo)左鍵按下時(shí)的起始點(diǎn)
   xrect_img=rect_img.x;
   yrect_img=rect_img.y;
 }
 if(event==CV_EVENT_MOUSEMOVE&& (flags & CV_EVENT_LBUTTONDOWN)) //左鍵按下,鼠標(biāo)移動(dòng)時(shí)
 {  
   int dx=x-p0.x;
   int dy=y-p0.y;  
   if(x>=0 && x<=win_width-1 && y>=0 && y<=win_height-1) //判斷鼠標(biāo)是否在窗口圖像區(qū)域內(nèi)
   {   
    rect_img=Rect(xrect_img-dx,yrect_img-dy,rect_img.width,rect_img.height);  //窗口顯示圖像移動(dòng)dx、dy(相對(duì)于鼠標(biāo)左鍵按下時(shí))
    if(rect_img.x<0) 
    { 
     rect_img.x=0; 
    } 
    if(rect_img.y<0) 
    { 
     rect_img.y=0; 
    }   
    if(rect_img.x > image.cols-rect_img.width-1) 
    { 
     rect_img.x=image.cols-rect_img.width-1; 
    } 
    if(rect_img.y > image.rows - rect_img.height-1) 
    { 
     rect_img.y=image.rows - rect_img.height-1; 
    } 

    moveImage();
   }  
 } 
}

void main()
{  
 image=imread("im.jpg");
 //int win_width=1400,win_height=700;     //固定窗口的大小1400 x 700
 //rect_win=Rect(0,0,win_width,win_height);   //窗口顯示矩形區(qū)
 rect_img=Rect(0,0,win_width,win_height);   //窗口圖像對(duì)應(yīng)的矩形區(qū)
 //win_image.create(win_height,win_width,image.type());
 //Mat tmp=image(rect_win);  // 窗口圖像對(duì)應(yīng)于源圖像中的區(qū)域
 //tmp.convertTo(win_image,tmp.type());  //復(fù)制一個(gè)圖像的ROI到另外一個(gè)圖像的指定區(qū)域
 Mat win_image=image(rect_img);
 namedWindow("拼接結(jié)果", 1);
 imshow("拼接結(jié)果",win_image);

 setMouseCallback("拼接結(jié)果", on_mouse); 
 waitKey();
}

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

相關(guān)文章

  • ASP.NET中事件如何依次發(fā)生?

    ASP.NET中事件如何依次發(fā)生?

    這篇文章主要介紹了ASP.NET中事件是如何依次發(fā)生的,
    2015-09-09
  • 在Code First模式中自動(dòng)創(chuàng)建Entity模型

    在Code First模式中自動(dòng)創(chuàng)建Entity模型

    這篇文章介紹了在Code First模式中自動(dòng)創(chuàng)建Entity模型的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • ASP.NET?MVC使用typeahead.js實(shí)現(xiàn)輸入智能提示功能

    ASP.NET?MVC使用typeahead.js實(shí)現(xiàn)輸入智能提示功能

    這篇文章介紹了ASP.NET?MVC使用typeahead.js實(shí)現(xiàn)輸入智能提示功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • moq 的常用使用方法(推薦)

    moq 的常用使用方法(推薦)

    這篇文章主要介紹了moq 的常用使用方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • ASP.NET網(wǎng)頁顯示LED字體的方法

    ASP.NET網(wǎng)頁顯示LED字體的方法

    在我們開發(fā)網(wǎng)站時(shí),或許需要顯示一些非windows或是服務(wù)器安裝的字體。在網(wǎng)站發(fā)布時(shí),我們不可能把這些字符復(fù)制于服務(wù)器上,除非你擁有管理員級(jí)權(quán)限。在條件不允許的情況,但又要顯示特殊字體時(shí),只有參考下面的方法來實(shí)現(xiàn)
    2012-10-10
  • MVC分頁之MvcPager使用詳解

    MVC分頁之MvcPager使用詳解

    這篇文章主要為大家詳細(xì)介紹了MVC分頁之MvcPager使用方法,針對(duì)MvcPager同步和Ajax異步分頁進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-07-07
  • asp.net 處理原文件中過長的viewstate代碼

    asp.net 處理原文件中過長的viewstate代碼

    asp.net網(wǎng)頁原文件中總出現(xiàn)一段很長的viewstate代碼看著就頭痛 所以在網(wǎng)上找了篇文章解決了這個(gè)問題,雖然VIEWSTATE沒有完全隱藏,但大大的改善了網(wǎng)頁源文件中VIEWSTATE的長度。
    2010-02-02
  • asp.net dataview做無限極分類的又一用法

    asp.net dataview做無限極分類的又一用法

    通常看到別人以及自己以前在綁定無限極分類的時(shí)候,總是需要多次連接數(shù)據(jù)庫,這樣覺得造成了資源的浪費(fèi),然后我想一次把所有數(shù)據(jù)先取出來(類型不是很多的情況),這樣可以節(jié)省服務(wù)器的開銷。
    2009-11-11
  • Web Services使用多態(tài)的方法

    Web Services使用多態(tài)的方法

    Web Services可以支持多態(tài),不過僅僅限制在可以直接引用Web Services的時(shí)候,本文也只是起到拋磚引玉的效果,
    2015-10-10
  • .NET Core讀取配置文件方式詳細(xì)總結(jié)

    .NET Core讀取配置文件方式詳細(xì)總結(jié)

    這篇文章主要為大家詳細(xì)總結(jié)了.NET Core讀取配置文件方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評(píng)論

德昌县| 兰西县| 如皋市| 凤台县| 梁山县| 托克托县| 江西省| 瓦房店市| 郑州市| 普定县| 萝北县| 梓潼县| 合水县| 奉化市| 和田市| 邻水| 云梦县| 阜城县| 望都县| 会泽县| 修武县| 佛冈县| 塔城市| 顺平县| 宁海县| 永安市| 浦东新区| 察雅县| 阿图什市| 加查县| 康保县| 武穴市| 古交市| 沈丘县| 庐江县| 甘肃省| 苍溪县| 襄城县| 文登市| 怀仁县| 宣武区|