免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
OpenCV異常處理機(jī)制

很多函數(shù),都會(huì)對(duì)參數(shù)的有效性進(jìn)行判斷,不符合要求,直接彈對(duì)話框,然后程序崩潰,逼得你不得不正確調(diào)用他。這個(gè)屬于編程的邏輯錯(cuò)誤,就像assert一樣,用于排除編碼錯(cuò)誤,這和業(yè)務(wù)錯(cuò)誤處理的層次是不同的。

 

        一般,我們仿照這種模式,如下

 

 

  1. int TestCvError( IplImage *pImgGray, int iNum)    
  2. {    
  3.      CV_FUNCNAME( "TestCvError" );      
  4.     __BEGIN__;    
  5.     if (iNum <= 1 )    
  6.         CV_ERROR(CV_StsOutOfRange, "參數(shù)iNum必須大于1");    
  7.     if( !pImgGray )    
  8.         CV_ERROR( CV_StsNullPtr, "Null pointer to pImgGray" );    
  9.     if( pImgGray->depth != IPL_DEPTH_8U && pImgGray->nChannels != 1 )    
  10.         CV_ERROR( CV_StsUnsupportedFormat, "Only 8-bit grayscale images are supported" );    
  11.      
  12.  //函數(shù)主要實(shí)現(xiàn)部分    
  13.     __END__;    
  14.     return 0;    
  15. }    
 

 

如果不想這么麻煩,直接用OPENCV_ASSERT是一樣的。比如:

 

OPENCV_ASSERT(pImgGray != NULL, "TestCvError", "Null pointer to pImgGray");

 

問(wèn)題是,有時(shí)候產(chǎn)品未必能夠很好的測(cè)試,總有bug,而且要交付使用,總不能讓用戶面對(duì)錯(cuò)誤彈出窗口吧,這時(shí)候在程序的初始化部分,寫(xiě)入如下代碼:

  1. #ifdef _DEBUG  
  2.     cvSetErrMode(CV_ErrModeLeaf);  
  3. #else  
  4.     cvSetErrMode(CV_ErrModeSilent);  
  5. #endif  
 

在release版本里面將gui報(bào)錯(cuò)禁用掉。這時(shí)候,如果內(nèi)存越界、參數(shù)錯(cuò)誤,程序異常退出,看門(mén)狗起作用。

 

這些機(jī)制,查看cxerror.h/cxerror.cpp就能明白了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
攝影愛(ài)好者玩編程:利用Python和OpenCV打造專業(yè)級(jí)長(zhǎng)時(shí)曝光攝影圖
OpenCV編程案例:混合高斯模型(CvGaussBGModel)使用案例 - OpenC...
linux下的OpenCV安裝&學(xué)習(xí)筆記(修訂版,解決無(wú)法打開(kāi)視頻文件問(wèn)題)
python+opencv讀入和顯示圖片
VS2019+Python+OpenCV配置
OpenCV學(xué)習(xí)筆記(13)基于OpenCV2.1的MFC雙目視覺(jué)平臺(tái)構(gòu)建
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服