亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

OpenCV實現鼠標框選并顯示框選區域

2020-01-26 13:25:36
字體:
來源:轉載
供稿:網友

本文實例為大家分享了OpenCV實現鼠標框選并顯示框選區域的具體代碼,供大家參考,具體內容如下

cvSetImageROI函數(基于給定的矩形設置圖像的ROI(感興趣區域,region of interesting))

void cvSetImageROI(IplImage* image,CvRect rect)

參數:

image 圖像頭,待處理圖像
rect ROI 感興趣區域矩形

cvResetImageROI函數(釋放基于給定的矩形設置圖像的ROI(感興趣區域,region of interesting))

void cvResetImageROI(IplImage* image)

參數:

image 圖像頭,待處理圖像

cvcop函數(拷貝一個數組給另一個數組)

在使用這個函數之前,你必須用cvCreateImage()一類的函數先開一段內存,然后傳遞給dst。cvCopy會把src中的數據復制到dst的內存中。
copy只會復制ROI區域,相當于函數cvCopy從輸入數組中復制選定的成分到輸出數組。
void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );

參數:

src  輸入數組
dst  輸出數組
mask  操作掩碼是8比特單通道的數組,它指定了輸出數組中被改變的元素 

cvCloneImage函數(復制圖像數據)

在使用函數之前,不用開辟內存。該函數會自己開一段內存,然后復制好image里面的數據,然后把這段內存中的數據返回給你。
clone是把所有的都復制過來,也就是說不論你是否設置Roi,Coi等影響copy的參數,clone都會原封不動的克隆過來。
IplImage* cvCloneImage( const IplImage* image );

參數:image 輸入源圖像數據

返回值:IplImage*  輸出圖像指針
注意:使用cvCloneImage()容易造成內存泄露,所以慎用。
cvCloneImage()每次使用時編譯器會分配新的內存空間,不會覆蓋以前的內容,所以如果在循環中使用內存會迅速減小,每次用完都需要用cvRelease來釋放。

解決方法是使用cvCopy函數代替。

 源代碼:

#include <cv.h>#include <highgui.h>#include <stdio.h> IplImage* src = 0; IplImage* tmp = 0; IplImage* tmp1 = 0;IplImage* org = 0;void on_mouse( int event, int x, int y, int flags, void* ustc){ static CvPoint pre_pt = {-1,-1}; static CvPoint cur_pt = {-1,-1}; CvFont font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA);//初始化字體 char temp[16];  if( (event == CV_EVENT_LBUTTONDOWN)&&(flags) )//鼠標左鍵按下時 {  sprintf(temp,"(%d,%d)",x,y);//格式化字符串 pre_pt = cvPoint(x,y);//獲取當前點坐標值 cvPutText(src,temp, pre_pt, &font, cvScalar(0,0, 0, 255));//在圖像是打印字符 cvCircle( src, pre_pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 );//在圖像上畫圓 cvShowImage( "src", src ); //cvCopy(src,tmp);//這句有沒有,就是單目標和多目標的問題 } else if( (event == CV_EVENT_MOUSEMOVE) && (flags & CV_EVENT_LBUTTONDOWN)) {//鼠標移動并且鼠標左鍵按下 sprintf(temp,"(%d,%d)",x,y);//格式化字符串 cur_pt = cvPoint(x,y);//獲取當前點坐標值  cvPutText(src,temp, cur_pt, &font, cvScalar(0,0, 0, 255));//在圖像是打印字符 cvRectangle(src, pre_pt, cur_pt, cvScalar(0,255,0,0), 2, 8, 0 );//在圖像上畫矩形 cvShowImage( "src", src ); cvCopy(tmp,src);//將img復制到臨時圖像tmp上,用于實時顯示 } else if( event == CV_EVENT_LBUTTONUP ) {//鼠標左鍵彈起 sprintf(temp,"(%d,%d)",x,y);//字體格式化 cur_pt = cvPoint(x,y);//獲取當前點坐標值  cvPutText(src,temp, cur_pt, &font, cvScalar(0,0, 0, 255));//在圖像是打印字符 cvCircle( src, cur_pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 );//在圖像上畫圓 cvRectangle( src, pre_pt, cur_pt, cvScalar(0,255,0,0), 2, 8, 0 );//在圖像上畫矩形 cvShowImage( "src", src );  /******************************************************************/ int width=abs(pre_pt.x-cur_pt.x); //兩點橫坐標差     int height=abs(pre_pt.y-cur_pt.y); //兩點縱坐標差     if(width==0 || height==0)     { //兩者中有一個為零時銷毀窗口      cvDestroyWindow("dst");       return;     }     tmp1 = cvCreateImage(cvSize(width,height),org->depth,org->nChannels);     CvRect rect;     if(pre_pt.x<cur_pt.x && pre_pt.y<cur_pt.y)     {       rect=cvRect(pre_pt.x,pre_pt.y,width,height);     }     else if(pre_pt.x>cur_pt.x && pre_pt.y<cur_pt.y)     {       rect=cvRect(cur_pt.x,pre_pt.y,width,height);     }     else if(pre_pt.x>cur_pt.x && pre_pt.y>cur_pt.y)     {       rect=cvRect(cur_pt.x,cur_pt.y,width,height);     }     else if(pre_pt.x<cur_pt.x && pre_pt.y>cur_pt.y)     {       rect=cvRect(pre_pt.x,cur_pt.y,width,height);     }     cvSetImageROI(org,rect);//設置圖像的感興趣區域     cvCopy(org,tmp1); //將感興趣區域復制到tmp1     cvResetImageROI(org);//釋放圖像的感興趣區域     cvDestroyWindow("dst");//銷毀上次的顯示圖像     cvNamedWindow("dst",1);//新建窗口     cvShowImage("dst",tmp1); //顯示感興趣的圖像     cvSaveImage("dst.jpg",tmp1); //保存感興趣圖像 /******************************************************************/ }}int main(){ src=cvLoadImage("lena.jpg",1);//讀入圖像 tmp=cvCloneImage(src);//復制圖像到臨時圖像上  org=cvCloneImage(src);//保存原始圖像  cvNamedWindow("src",1);//新建窗口 cvSetMouseCallback( "src", on_mouse, 0 );//注冊鼠標響應回調函數  cvShowImage("src",src);//顯示圖像 cvWaitKey(0);//等待按鍵按下  cvDestroyAllWindows();//銷毀所有窗口 cvReleaseImage(&src);//釋放圖像 cvReleaseImage(&tmp);//釋放圖像 return 0;}

效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美另类暴力丝袜| 日韩av一区在线观看| 国产精品久久久久久久一区探花| 久久久久国产精品免费| 91国内产香蕉| 色妞色视频一区二区三区四区| 久久色精品视频| 中文字幕日韩在线观看| 国产精品亚洲аv天堂网| 亚洲开心激情网| 国产精品丝袜一区二区三区| 色悠悠久久88| 亚洲性生活视频在线观看| 久久精品久久久久久| 久久精品视频在线播放| 91久久久久久久久久久久久| 操人视频在线观看欧美| 国产日韩欧美自拍| 欧美大成色www永久网站婷| 在线性视频日韩欧美| 日韩www在线| 久久频这里精品99香蕉| 日韩av在线免费| 欧美一级在线播放| 九九热最新视频//这里只有精品| 97香蕉超级碰碰久久免费的优势| 亚洲国产成人久久| 久久成人这里只有精品| 日本亚洲欧美成人| 国产精品视频男人的天堂| 91精品国产综合久久香蕉的用户体验| 亚洲人成网站777色婷婷| 国产精品偷伦免费视频观看的| 中文字幕久热精品视频在线| 欧美精品videos另类日本| 国产精品视频一区二区三区四| 永久免费精品影视网站| 亚洲精品suv精品一区二区| 国产精品99导航| 亚洲国语精品自产拍在线观看| 亚洲一区二区自拍| 欧美成人午夜激情在线| 亚洲第一在线视频| 日韩在线视频免费观看高清中文| 中文一区二区视频| 亚洲欧洲xxxx| 精品性高朝久久久久久久| 国产专区欧美专区| 另类色图亚洲色图| 欧美电影免费看| 成人福利在线视频| 欧美三级欧美成人高清www| 中文字幕国产亚洲2019| 国产精品91久久久久久| 日韩欧美在线网址| 92版电视剧仙鹤神针在线观看| 欧美裸体xxxxx| 欧美日韩国产精品| 一本一本久久a久久精品牛牛影视| 国产成人精品在线观看| 亚洲第一国产精品| 国产一区二区三区在线播放免费观看| 欧美肥臀大乳一区二区免费视频| 综合136福利视频在线| 欧美激情伊人电影| 国产在线播放不卡| 国产精品午夜一区二区欲梦| 91精品国产自产91精品| 亚洲天堂一区二区三区| 北条麻妃99精品青青久久| 久久6精品影院| 91日本视频在线| 欧美日韩免费一区| 日韩欧美精品网站| 97在线视频免费播放| 欧美日韩视频在线| 欧美老女人性生活| 久久精品久久久久久| 国产精品九九九| 日韩一区二区精品视频| 国产精品高精视频免费| 成人国产精品日本在线| 国语自产精品视频在线看抢先版图片| 国产va免费精品高清在线| 日本一区二区三区在线播放| 久久久免费在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 欧美www视频在线观看| 欧美电影免费观看高清| 欧美自拍大量在线观看| 国产一区二区欧美日韩| 国产一区二区免费| 91超碰中文字幕久久精品| 国产视频观看一区| 精品久久久国产精品999| 91高清视频免费观看| 久久国产精品影片| 亚洲美女又黄又爽在线观看| 粗暴蹂躏中文一区二区三区| 日韩视频免费在线观看| 亚洲福利在线视频| 国产丝袜精品第一页| 一本一本久久a久久精品综合小说| 亚洲片在线资源| 久久久久久久久久久久久久久久久久av| 国产精品va在线| 亚洲精品免费av| 精品久久久久国产| 精品久久中文字幕| 久久久视频在线| 国产免费一区视频观看免费| 午夜精品久久久久久久久久久久| 午夜精品福利视频| 国产99视频精品免视看7| 亚洲自拍小视频| 91精品国产91久久久久久不卡| 成人春色激情网| 91成人免费观看网站| 久久成人亚洲精品| 精品国产乱码久久久久久婷婷| 国产精品视频区1| 日本欧美一二三区| 国产成人91久久精品| 亚洲三级黄色在线观看| 午夜精品久久久久久久99热浪潮| 5566日本婷婷色中文字幕97| 国产一区二区三区在线播放免费观看| 夜夜嗨av色综合久久久综合网| 欧美成人一区二区三区电影| 欧美一区二区色| 国产色视频一区| 亚洲最大福利视频网| 国产欧洲精品视频| 国产精品女视频| 亚洲国产精品中文| 国自在线精品视频| 亚洲人成电影网站色| 在线a欧美视频| 亚洲午夜激情免费视频| 日韩黄色高清视频| 亚洲免费一级电影| 欧美日韩另类视频| 日韩欧美亚洲一二三区| 4k岛国日韩精品**专区| 中文字幕亚洲欧美一区二区三区| 2021国产精品视频| 色青青草原桃花久久综合| 91av视频在线免费观看| 欧美尺度大的性做爰视频| 国产欧美亚洲视频| 久久久精品一区二区| 亚洲精品免费网站| 国产在线精品播放| 97视频在线观看免费| 久久精品国产清自在天天线| 亚洲毛片在线免费观看| 欧美大尺度电影在线观看| 国产精品第三页| 欧美视频一区二区三区…| 亚洲免费成人av电影| 中文字幕欧美在线| 日韩精品视频免费专区在线播放| 最新国产成人av网站网址麻豆| xvideos亚洲人网站|