国产一区二区精品在线_午夜精品视频_亚洲国产高清高潮精品美女_久久久91_午夜精品视频_久久久久亚洲一区二区三区

移動設備上使用opencv 1.10做圖像識別的例子

來源:網(wǎng)絡

點擊:2712

A+ A-

所屬頻道:新聞中心

關鍵詞: Windows-Mobile,移動設備

        上次說到了如何在WINCE/WM移植Opencv1.10,這次就說說如何在WM手機上使用裁剪移植后的Open1.10的例子,在opencv上使用OpenSURF(OpenSURF在GoogleCode的地址:http://code.google.com/p/opensurf1/),先來看看本文程序運行的截圖: 

    左圖為SURF算法找出的特征點,右圖為兩個圖像相似特征點的匹配。

        本文的代碼可以到http://www.rayfile.com/zh-cn/files/da4d4edc-8af5-11df-9dac-0015c55db73d/這里下載,代碼里包含了自己實現(xiàn)的MyHighGUI類,用于轉換/繪制/保存IplImage圖像,也包含了同時支持WINCE/WIN32的第三方BMP操作類庫----DIBSectionCE類(詳見http://www.codeguru.com/cpp/w-p/ce/bitmapsandthegdi/article.php/c3),接下來就貼出部分操作代碼:

    view plaincopy to clipboardprint?
    //*****************************************************************  
    //取得程序當前文件夾路徑  
    //****************************************************************  
    CString GetCurrentDirectory()    
    {    
        wchar_t pBuf[256];    
        GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t));    
        CString strPath(pBuf);    
        strPath = strPath.Left(strPath.ReverseFind('\\') + 1);    
        delete pBuf;  
        return strPath;  
    }  
     
    void CtestDlg::OnBnClickedButton1()  
    {  
        //自定義的HighGUI,詳見MyHighGUI.h  
        MyHighGUI gui;  
        //網(wǎng)上的BMP操作類,支持WINCE/WIN32,地址:http://www.codeguru.com/cpp/w-p/ce/bitmapsandthegdi/article.php/c3   
        CDIBSectionCE ce;  
        //step1:讀取BMP,并轉換為IplImage格式  
        CString bmpPath=GetCurrentDirectory()+L"car1.bmp";  
        ce.Load(bmpPath);  
        int nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ;      
        IplImage* img = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);  
        ce.DeleteObject();  
     
        //step2:提取圖片中的特征點  
        IpVec ipts;  
        surfDetDes(img, ipts, false, 3, 4, 2, 0.0004f);  
     
        // step3:畫出特征點    
        drawIpoints(img, ipts);  
        gui.Show(img,::GetDC(this->m_hWnd),0,0,img->width,img->height);  
        //gui.WriteBmp(L"img33.bmp",(BYTE *)img->imageData,img->imageSize,img->width,img->height);  
         img=NULL;  
    }  
     
    void CtestDlg::OnBnClickedButton2()  
    {  
        //自定義的HighGUI,詳見MyHighGUI.h  
        MyHighGUI gui;  
        //網(wǎng)上的BMP操作類,支持WINCE/WIN32,地址:http://www.codeguru.com/cpp/w-p/ce/bitmapsandthegdi/article.php/c3   
        CDIBSectionCE ce;  
        //step1:讀取BMP,并轉換為IplImage格式  
        CString bmpPath=GetCurrentDirectory()+L"car1.bmp";  
        ce.Load(bmpPath);  
        int nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ;      
        IplImage* img1 = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);  
        ce.DeleteObject();  
     
        bmpPath=GetCurrentDirectory()+L"car2.bmp";  
        ce.Load(bmpPath);  
        nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ;  
        IplImage* img2 = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);  
        ce.DeleteObject();  
     
        //step2:提取圖片中的特征點  
        IpVec ipts1, ipts2;  
        surfDetDes(img1,ipts1,false,4,4,2,0.0002f);  
        surfDetDes(img2,ipts2,false,4,4,2,0.0002f);  
     
        //step3:特征點匹配  
        IpPairVec matches;  
        getMatches(ipts1,ipts2,matches);  
     
        //step4:畫出匹配的特征點,并且連線  
        for (unsigned int i = 0; i < matches.size(); ++i)  
        {  
            drawPoint(img1,matches[i].first);  
            drawPoint(img2,matches[i].second);  
            
            int w = img1->width;  
            cvLine(img1,cvPoint(matches[i].first.x,matches[i].first.y),cvPoint(matches[i].second.x+w,matches[i].second.y), cvScalar(123,123,123),1);  
            cvLine(img2,cvPoint(matches[i].first.x-w,matches[i].first.y),cvPoint(matches[i].second.x,matches[i].second.y), cvScalar(123,123,123),1);    
        }  
     
        //畫到屏幕上  
        if(img1->height>img2->height)  
        {     
            gui.Show(img1,::GetDC(this->m_hWnd),0,0,img1->width,img1->height);  
            gui.Show(img2,::GetDC(this->m_hWnd),img1->width,img1->height-img2->height,img2->width,img2->height);  
        }  
        else 
        {  
            gui.Show(img1,::GetDC(this->m_hWnd),0,img2->height-img1->height,img1->width,img1->height);  
            gui.Show(img2,::GetDC(this->m_hWnd),img1->width,0,img2->width,img2->height);  
        }  
     

    //*****************************************************************
    //取得程序當前文件夾路徑
    //****************************************************************
    CString GetCurrentDirectory() 

     wchar_t pBuf[256]; 
     GetModuleFileName(NULL,pBuf,sizeof(pBuf)/sizeof(wchar_t)); 
     CString strPath(pBuf); 
     strPath = strPath.Left(strPath.ReverseFind('\\') + 1); 
     delete pBuf;
     return strPath;
    }

    void CtestDlg::OnBnClickedButton1()
    {
     //自定義的HighGUI,詳見MyHighGUI.h
     MyHighGUI gui;
     //網(wǎng)上的BMP操作類,支持WINCE/WIN32,地址:http://www.codeguru.com/cpp/w-p/ce/bitmapsandthegdi/article.php/c3
     CDIBSectionCE ce;
     //step1:讀取BMP,并轉換為IplImage格式
     CString bmpPath=GetCurrentDirectory()+L"car1.bmp";
     ce.Load(bmpPath);
     int nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ; 
     IplImage* img = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);
        ce.DeleteObject();

     //step2:提取圖片中的特征點
     IpVec ipts;
     surfDetDes(img, ipts, false, 3, 4, 2, 0.0004f);

     // step3:畫出特征點 
     drawIpoints(img, ipts);
     gui.Show(img,::GetDC(this->m_hWnd),0,0,img->width,img->height);
     //gui.WriteBmp(L"img33.bmp",(BYTE *)img->imageData,img->imageSize,img->width,img->height);
      img=NULL;
    }

    void CtestDlg::OnBnClickedButton2()
    {
     //自定義的HighGUI,詳見MyHighGUI.h
     MyHighGUI gui;
     //網(wǎng)上的BMP操作類,支持WINCE/WIN32,地址:http://www.codeguru.com/cpp/w-p/ce/bitmapsandthegdi/article.php/c3
     CDIBSectionCE ce;
     //step1:讀取BMP,并轉換為IplImage格式
     CString bmpPath=GetCurrentDirectory()+L"car1.bmp";
     ce.Load(bmpPath);
     int nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ; 
     IplImage* img1 = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);
     ce.DeleteObject();

     bmpPath=GetCurrentDirectory()+L"car2.bmp";
     ce.Load(bmpPath);
     nChannels = ce.GetBitmapInfo()->bmiHeader.biBitCount /8 ;
     IplImage* img2 = gui.BMP2Ipl((BYTE*)ce.GetDIBits(),ce.GetWidth(),ce.GetHeight(),nChannels);
     ce.DeleteObject();

     //step2:提取圖片中的特征點
        IpVec ipts1, ipts2;
        surfDetDes(img1,ipts1,false,4,4,2,0.0002f);
        surfDetDes(img2,ipts2,false,4,4,2,0.0002f);

     //step3:特征點匹配
        IpPairVec matches;
        getMatches(ipts1,ipts2,matches);

     //step4:畫出匹配的特征點,并且連線
     for (unsigned int i = 0; i < matches.size(); ++i)
     {
      drawPoint(img1,matches[i].first);
      drawPoint(img2,matches[i].second);
      
      int w = img1->width;
      cvLine(img1,cvPoint(matches[i].first.x,matches[i].first.y),cvPoint(matches[i].second.x+w,matches[i].second.y), cvScalar(123,123,123),1);
      cvLine(img2,cvPoint(matches[i].first.x-w,matches[i].first.y),cvPoint(matches[i].second.x,matches[i].second.y), cvScalar(123,123,123),1); 
     }

     //畫到屏幕上
     if(img1->height>img2->height)
     { 
      gui.Show(img1,::GetDC(this->m_hWnd),0,0,img1->width,img1->height);
      gui.Show(img2,::GetDC(this->m_hWnd),img1->width,img1->height-img2->height,img2->width,img2->height);
     }
     else
     {
      gui.Show(img1,::GetDC(this->m_hWnd),0,img2->height-img1->height,img1->width,img1->height);
      gui.Show(img2,::GetDC(this->m_hWnd),img1->width,0,img2->width,img2->height);
     }

    }
     

    用戶可以根據(jù)本文的操作代碼,在WINCE/WM平臺上實現(xiàn)更多Opencv例子,不過,本文程序跑起來很慢(我用的是460MHz的K3方案 WM手機),因為只用標準C的Math做運算處理。在ARM9+DSP或者ARM11等手機上使用Opencv,建議在Opencv的運算部分用上這些手機的專用運算指令,這樣可以大大提高運算速度。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯(lián)系我們刪除。

    国产一区二区精品在线_午夜精品视频_亚洲国产高清高潮精品美女_久久久91_午夜精品视频_久久久久亚洲一区二区三区
    <cite id="gqusq"><tbody id="gqusq"></tbody></cite>
    <strike id="gqusq"><tbody id="gqusq"></tbody></strike>
    <abbr id="gqusq"><rt id="gqusq"></rt></abbr>
  • <strike id="gqusq"><tbody id="gqusq"></tbody></strike>
    <ul id="gqusq"></ul>
    <center id="gqusq"><noscript id="gqusq"></noscript></center>
  • 99re6热在线精品视频播放速度| 亚洲国产高清一区| 亚洲日本精品国产第一区| 亚洲一卡二卡区| 亚洲午夜精品福利| 国产女优一区| 国产一区二区高清不卡 | 欧美女激情福利| 一区二区高清视频| 国产一区二区免费在线观看| 欧美一区二区综合| 亚洲高清激情| 国产成人精品免费视频大全最热 | 伊人久久av导航| 亚洲精品无人区| 精品乱码一区二区三区| 伊人久久99| 久久综合狠狠综合久久综青草| 国产九区一区在线| 欧美日韩国产高清视频| 97碰碰视频| 一区二区三区国产福利| 亚洲综合另类| 亚洲国产欧美一区二区三区不卡| 亚洲黄色高清| 久久精品日产第一区二区三区精品版| 欧美 日韩 国产在线 | 99理论电影网| 女人香蕉久久**毛片精品| 久久久久国产精品一区二区| 欧美1o一11sex性hdhd| 亚洲精品视频一区二区三区| 国产亚洲欧美一区二区| 在线播放亚洲| 日韩欧美精品在线不卡 | 亚洲一区国产一区| 午夜一区二区三区| 99久久伊人精品影院| 欧美日韩中文| 欧美性色黄大片人与善| 国产精品久久久久久久久久妞妞 | 国产亚洲欧美另类一区二区三区| 欧美激情视频一区二区三区| 国产亚洲欧美一区二区| 欧美jizzhd精品欧美巨大免费| 老妇喷水一区二区三区| 亚洲第一黄网| 国产精品扒开腿做爽爽爽软件| 99在线观看| 亚洲激情另类| 欧美va亚洲va日韩∨a综合色| 国产精品一区二区你懂得| 亚洲精品影院| 欧美69视频| 亚洲v国产v| 久久综合一区二区三区| 久久在线精品| 亚洲欧美成人综合| 欧美日韩免费观看一区| 亚洲mv在线看| 日本一区二区在线视频| 豆国产97在线| 97视频热人人精品| 国产日韩一区欧美| 精品91视频| 国产在线精品一区二区中文| 一区二区三区四区五区视频| 日本精品一区| 久久66热这里只有精品| 国内不卡一区二区三区| 99国产高清| 96成人在线视频| 久久久久一区| 51精品国产人成在线观看| 欧美专区18| 久久av一区二区| 老鸭窝91久久精品色噜噜导演| 亚洲精品专区| 亚洲看片一区| 国产一区二区高清不卡| 国产伦理一区| 久久九九99| 91丝袜脚交足在线播放| 国产二区不卡| 精品999在线观看| 国产精品久久精品国产| 国产亚洲一区在线播放| 精品综合久久久| 欧美精品成人一区二区在线观看| 久久riav二区三区| 日韩三级在线播放| 欧美在线亚洲综合一区| 狠狠色噜噜狠狠狠狠色吗综合| 国内精品久久国产| 亚洲国产午夜| 51国偷自产一区二区三区| 国产富婆一区二区三区| 欧美精品一区二区视频| 视频一区二区三| 国产一区再线| 午夜一区二区三区不卡视频| 69堂成人精品视频免费| 精品亚洲欧美日韩| 欧美一区二区三区在线免费观看| 欧美日韩中文| 亚洲在线成人| 蜜桃日韩视频| 欧美日韩在线高清| 久久久久久久高潮| 精品蜜桃一区二区三区| 色爱区成人综合网| 亚洲精品社区| 精品乱色一区二区中文字幕| 正在播放久久| 免播放器亚洲| 欧美一区二区视频17c| 欧美日本三区| 成人av播放| 伊人久久大香线蕉成人综合网| 国产欧美日韩综合一区在线观看 | 国产精品一级久久久| 日日夜夜精品网站| 国产日韩欧美一区二区三区在线观看| 懂色一区二区三区av片| 亚洲欧美日韩国产yyy| 国产一区91| 欧美1o一11sex性hdhd| 亚洲网站啪啪| 精品免费视频123区| 国产精品红桃| 久久久久久久久久久久久久久久av | 亚洲国产清纯| 久久久影院一区二区三区| 国内久久精品| 国产一区不卡在线观看| 国产精品二区二区三区| 国产精品一级久久久| 亚洲成色精品| 欧美三日本三级少妇三99| 国产日韩欧美二区| 日韩精品一区二区三区外面| 国产精品五区| 欧美a级在线| 久久av二区| 先锋影音久久久| 欧美日韩高清在线一区| 国产视色精品亚洲一区二区| 精品动漫3d一区二区三区免费版| 久久精品成人一区二区三区蜜臀| 亚洲经典视频在线观看| 四虎影院一区二区三区| 粉嫩av四季av绯色av第一区| 国产综合视频| 亚洲一二三区在线| 精品国产一区二区三区四区精华 | 亚洲精品在线观看免费| 一区二区高清视频| 欧美激情第六页| eeuss一区二区三区| 亚洲欧洲日本一区二区三区| 亚洲三区四区| 欧美动漫一区二区| 国产精品二区三区| 性伦欧美刺激片在线观看| 国内精品视频在线播放| 五月婷婷综合色| 久久久久久国产精品免费免费| 久久精品首页| 亚洲一区国产| 国产欧美日韩一区二区三区| 欧美日韩精品免费看| 夜夜爽99久久国产综合精品女不卡| 国产欧美亚洲日本| http;//www.99re视频| 久久精品一二三区| 午夜一区不卡| 国产精品永久入口久久久| 亚洲精选久久| 999亚洲国产精| 亚洲精品一区二区三| 精品1区2区3区4区| 亚洲激情黄色| 亚洲国产高清一区| 亚洲免费成人| 国产日韩欧美一区| 国产精品一区二区a| 欧美中文字幕| 久久资源av| 国产精品综合久久久久久| 国内一区二区在线视频观看| 国产日韩久久| 欧美高清性xxxxhd| 欧洲亚洲一区二区| 亚洲丰满在线| 欧美日本在线| 国产欧美二区| 成人在线免费观看一区| 精品免费国产| 亚洲国产精品一区二区第一页 | 国产日韩一区二区三区|