c++(和opencv)如何把局部变量变成全局变量的功能
生活随笔
收集整理的這篇文章主要介紹了
c++(和opencv)如何把局部变量变成全局变量的功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天在開發(fā)opencv項目的時候,需求是:視頻實時播放,鼠標點擊某處,新窗口放大播放局部視頻。
這里遇到的問題是:需要用opencv獲取鼠標。
背景:opencv有自帶的鼠標回調函數(shù),而且它的on_Mouse()函數(shù)是封裝好的,有五個形參,其中就有鼠標的位置x和y在形參中。
可是 on_Mouse()函數(shù)是void型,沒有返回值。
問題轉化為:我需要用on_Mouse()函數(shù)有的鼠標位置,傳到另一個函數(shù)(要使用的地方)。
解決辦法是:定義兩個全局變量,在on_Mouse()函數(shù)內部傳出來。
int X, Y;//鼠標坐標全局變量下面是opencv自帶的配合鼠標函數(shù)的函數(shù)on_Mouse()。需要的就是兩個形參
void on_Mouse(int event, int x, int y, int flag, void*ustc) {//形參x,y是鼠標點擊的位置//需要鼠標的位置if (event == CV_EVENT_LBUTTONDOWN){cout << "下面進行鼠標位置的獲取" << endl;cout << "鼠標坐標為:" << x << "和" << y << endl;X = x;//把局部變量傳出來變成全局變量Y = y;} }在主函數(shù)中使用鼠標回調函數(shù)
setMouseCallback("src1", on_Mouse, 0);//調用鼠標回調函數(shù) //這里的窗口名稱是src1記錄一下自己踩得坑。怎么把局部變量傳出來。或者傳出來了,用的時候用錯了。
總結
以上是生活随笔為你收集整理的c++(和opencv)如何把局部变量变成全局变量的功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年利率和年化利率的区别
- 下一篇: 台湾国立大学郭彦甫Matlab教程笔记(