免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Halcon形狀匹配+MFC上位機(jī):可雙擊exe模板匹配Demo實(shí)戰(zhàn)

Halcon形狀匹配+MFC上位機(jī):可雙擊exe模板匹配Demo實(shí)戰(zhàn) 簡介面向機(jī)器視覺初學(xué)者與C桌面開發(fā)者的halconmfc模板匹配demo聚焦在Windows界面中完成基于形狀、形狀縮放與灰度的模板匹配驗(yàn)證。工程把Halcon圖像處理能力嵌入MFC對(duì)話框提供圖像加載、匹配模式選擇、參數(shù)設(shè)置、執(zhí)行匹配及位置與相似度結(jié)果展示等交互適合學(xué)習(xí)工業(yè)視覺定位、目標(biāo)識(shí)別與GUI集成的基礎(chǔ)流程。壓縮包共27個(gè)文件以8個(gè)h和6個(gè)cpp源碼為主配合ico、rc等界面資源vcxproj、sln等VS工程配置以及jpg預(yù)覽圖、exe可執(zhí)行程序和說明文檔rar整體約11.45MB。從目錄模塊看參數(shù)設(shè)置、形狀操作、結(jié)果封裝與主對(duì)話框邏輯劃分較清晰便于對(duì)照編譯、調(diào)試和二次修改。已有1246人學(xué)習(xí)可作為Halcon與MFC聯(lián)合開發(fā)模板匹配功能的入門參考。1. 一個(gè)能雙擊運(yùn)行的 exe這個(gè) HalconMFC 模板匹配 demo 到底解決什么問題某五金件產(chǎn)線上工件在傳送帶上隨機(jī)偏轉(zhuǎn)角度大概在正負(fù)十五度之間晃機(jī)械手要過去抓。算法同事在 HDevelop 里半小時(shí)就調(diào)通了create_shape_model建模板、find_shape_model拿 Row/Column/Angle 一氣呵成??烧嬉桓兜焦の徊僮鞴げ豢赡艽蜷_ HDevelop 點(diǎn)運(yùn)行。問題于是從“怎么匹配”變成“怎么把匹配包成一個(gè)能雙擊的 exe”——這正是 Halcon MFC 模板匹配 demo 的位置。它做的事很具體把形狀匹配的建模、查找、結(jié)果顯示、參數(shù)調(diào)節(jié)塞進(jìn)一個(gè) MFC 對(duì)話框程序里對(duì)外輸出一個(gè)四元組Row、Column、Angle、Score再把匹配到的輪廓疊畫在圖上。適合做課設(shè)畢設(shè)的、剛從腳本過渡到上位機(jī)的、以及要給現(xiàn)場交付獨(dú)立程序的人如果你只做純算法研究或者習(xí)慣 Python 調(diào)庫這套東西對(duì)你價(jià)值不大。2. 工程骨架把 Halcon 算子塞進(jìn) MFC 的三條路與一次編譯配置2.1 HDevEngine、導(dǎo)出 C、混合調(diào)用先選一條這一步選錯(cuò)了后面全是返工。三種接法我都在項(xiàng)目里用過差別不在性能在“誰改算法”這件事上。接法做法優(yōu)點(diǎn)代價(jià)適合HDevEngine運(yùn)行時(shí)加載 .hdev用HDevEngine執(zhí)行過程算法同事改腳本不用重編 exe多帶一個(gè)引擎 dll報(bào)錯(cuò)是腳本行號(hào)每次調(diào)用有解析開銷算法還在頻繁迭代、現(xiàn)場要臨時(shí)調(diào)參導(dǎo)出 CHDevelop 里“文件→導(dǎo)出 C”生成 .cpp執(zhí)行最快無額外依賴改一行腳本就要重新編譯整個(gè)工程算法已經(jīng)凍結(jié)、追求穩(wěn)定交付混合建模和調(diào)參走腳本查找和結(jié)果顯示走 C兼顧兩邊接口要自己設(shè)計(jì)狀態(tài)要管好我一般會(huì)選這個(gè)Demo 這種體量直接導(dǎo)出 C 最省事因?yàn)槟0迤ヅ涞恼{(diào)用鏈很短沒必要為它背一個(gè)腳本引擎。但如果你要做“現(xiàn)場工程師拿著 hdev 自己調(diào)對(duì)比度”的功能那就得走 HDevEngine并且把腳本里的過程名、輸入輸出參數(shù)用SetProcedure、SetInputIconicParamObject這類接口約定死否則腳本一改接口exe 直接報(bào)找不到過程。2.2 VS 工程配置位數(shù)、運(yùn)行時(shí)庫、頭文件順序Halcon 的庫和你的工程必須位數(shù)一致這一條沒有例外。新版本基本只提供 64 位所以 MFC 工程從新建那一刻就該選 x64別等編譯報(bào)一堆LNK2019再回頭改。屬性頁里要落的東西位置項(xiàng)值C/C → 常規(guī)附加包含目錄$(HALCONROOT)\include、$(HALCONROOT)\include\halconcpp鏈接器 → 常規(guī)附加庫目錄$(HALCONROOT)\lib\$(HALCONARCH)鏈接器 → 輸入附加依賴項(xiàng)halconcpp.libC/C → 代碼生成運(yùn)行時(shí)庫與 Halcon 保持一致一般/MDRelease、/MDdDebugMFC 使用方式—在共享 DLL 中使用 MFCHALCONROOT和HALCONARCH這兩個(gè)環(huán)境變量是安裝時(shí)寫進(jìn)系統(tǒng)的用$(HALCONROOT)引用比自己寫死路徑靠譜換機(jī)器不用改工程。頭文件包含順序上有一個(gè)老坑windows.h里的min/max宏會(huì)和標(biāo)準(zhǔn)庫打架而 MFC 又必然帶進(jìn)windows.h// pch.h或 stdafx.h里包含順序不要隨意調(diào)換 #define NOMINMAX // 擋掉 windows.h 的 min/max 宏 #include windows.h #include atlconv.h // 后面要用 CT2A 做編碼轉(zhuǎn)換 #include halconcpp/HalconCpp.h // 放在 windows.h 之后避免類型重定義 using namespace HalconCpp; // 只在 cpp 里用別寫進(jìn)頭文件污染全局NOMINMAX不加std::min之類的調(diào)用會(huì)莫名其妙編譯不過using namespace寫進(jìn)頭文件則會(huì)讓所有包含它的 cpp 都被拖進(jìn) Halcon 的命名空間后面和 MFC 的CRect、CPoint撞名是遲早的事。部署時(shí)別忘了把運(yùn)行時(shí) dll 拷到 exe 同級(jí)目錄halcon.dll、halconcpp.dll是必須的走 HDevEngine 還要加引擎那個(gè) dll。我在項(xiàng)目里放了個(gè)拷貝腳本打包前一鍵執(zhí)行# 打包前把運(yùn)行時(shí) dll 拉到輸出目錄避免現(xiàn)場機(jī)器裝沒裝 Halcon 的玄學(xué)問題 OUTbin/Release HALCON_BIN$HALCONROOT/bin/$HALCONARCH cp $HALCON_BIN/halcon.dll $OUT/ cp $HALCON_BIN/halconcpp.dll $OUT/ # 只有用 HDevEngine 才需要下面這兩個(gè) # cp $HALCON_BIN/hdevenginecpp.dll $OUT/ # cp $HALCON_BIN/hdevengine.dll $OUT/腳本本身沒什么技術(shù)含量價(jià)值在于把“哪些 dll 是必需的”這件事固化下來。現(xiàn)場機(jī)器往往裝的是運(yùn)行版而不是開發(fā)版多拷一個(gè) dll 頂多占幾兆少拷一個(gè)就是啟動(dòng)即崩。2.3 線程模型UI 線程只負(fù)責(zé)畫算子跑在工作線程MFC 的死穴是 UI 線程不能阻塞超過幾十毫秒而一次find_shape_model在高分辨率圖、多角度、多層金字塔的情況下跑到幾十甚至上百毫秒很常見。連續(xù)采圖時(shí)直接在OnBnClickedStart里循環(huán)調(diào)用界面必卡任務(wù)管理器里那個(gè)“未響應(yīng)”的標(biāo)題就是血淚經(jīng)驗(yàn)。更麻煩的是 Halcon 窗口有線程親和性O(shè)penWindow在哪個(gè)線程開的就只能在哪個(gè)線程操作它??缇€程去DispObj輕則不顯示重則直接崩。我一般這么切// 自定義消息工作線程算完把結(jié)果丟回 UI 線程去顯示 #define WM_MATCH_RESULT (WM_USER 100) UINT CMatchDemoDlg::MatchThreadProc(LPVOID pParam) { CMatchDemoDlg* pDlg static_castCMatchDemoDlg*(pParam); HObject ho_Image; HTuple hv_Row, hv_Column, hv_Angle, hv_Score; while (pDlg-m_bRunning) { try { // 1. 取圖這里換成你的相機(jī)采集或文件讀取 ReadImage(ho_Image, HTuple(data/part_01.png)); // 2. 匹配hv_ModelID 在 UI 線程建好后傳進(jìn)來建一次用一輩子 FindShapeModel(ho_Image, pDlg-m_hvModelID, HTuple(-15).TupleRad(), HTuple(30).TupleRad(), 0.6, 1, 0.5, least_squares, 0, 0.8, hv_Row, hv_Column, hv_Angle, hv_Score); // 3. 只傳結(jié)果和圖像句柄不碰任何窗口 pDlg-m_hoLastImage ho_Image; // HObject 是引用計(jì)數(shù)賦值是安全的 pDlg-PostMessage(WM_MATCH_RESULT, 0, 0); } catch (HException ex) { // Halcon 異常必須接住否則線程直接終止 pDlg-PostMessage(WM_MATCH_RESULT, 1, 0); } Sleep(10); } return 0; }這段的關(guān)鍵點(diǎn)有三個(gè)FindShapeModel的NumLevels傳 0 表示用建模時(shí)定好的層數(shù)不要在這里另設(shè)一個(gè)值SubPixel選least_squares比interpolation穩(wěn)代價(jià)是慢一點(diǎn)點(diǎn)HObject的賦值是淺拷貝加引用計(jì)數(shù)所以把圖像存到對(duì)話框成員上不會(huì)帶來一次完整的內(nèi)存拷貝但也意味著你在工作線程里對(duì)同一個(gè)ho_Image再ReadImage一次主線程正在顯示的那張會(huì)跟著變——想要每幀獨(dú)立就CopyObj一份。UI 線程那邊只做三件事接消息、DispObj、畫十字和矩形框。這樣即使匹配跑到 200 毫秒界面拖動(dòng)、縮放依然跟手。3. 模板訓(xùn)練與查找參數(shù)八個(gè)建模參數(shù)和四個(gè)查找參數(shù)怎么定3.1create_shape_model的參數(shù)一個(gè)個(gè)說清楚形狀匹配的建模參數(shù)直接決定“能不能找到”查找參數(shù)只決定“找得多準(zhǔn)”。順序別搞反。參數(shù)含義常用取值調(diào)錯(cuò)的表現(xiàn)NumLevels金字塔層數(shù)auto或 06太大丟小特征太小慢AngleStart起始角弧度按工件實(shí)際偏轉(zhuǎn)定范圍不夠直接找不到AngleExtent角度跨度弧度同上同上AngleStep角度步長弧度auto或按半徑算太粗定位抖太細(xì)建模慢Optimization模板點(diǎn)優(yōu)化方式auto、point_reduction_high高優(yōu)化會(huì)犧牲一點(diǎn)點(diǎn)精度Metric極性u(píng)se_polarity光照反了就全丟Contrast邊緣對(duì)比度閾值auto或 2060太高模板點(diǎn)太少M(fèi)inContrast查找時(shí)最低對(duì)比度建模值的 1/21/3太高現(xiàn)場找不到Metric這個(gè)參數(shù)是最容易被忽略的。默認(rèn)use_polarity要求待查圖像里邊緣的明暗方向和模板一致如果現(xiàn)場打光方式變了或者工件翻面邊緣極性反了score 會(huì)直接掉到 0.1 以下你還以為是角度范圍設(shè)小了。另一種是ignore_local_polarity允許局部極性變化魯棒性更好但誤匹配率上升我在有反光鋁件上用過得配合提高M(jìn)inScore一起用。// 建模先框 ROI再做域縮減最后建形狀模板 HObject ho_ModelRegion, ho_ModelImage; GenRectangle1(ho_ModelRegion, 120.0, 200.0, 380.0, 460.0); // 行1,列1,行2,列2 ReduceDomain(ho_Image, ho_ModelRegion, ho_ModelImage); // 只在 ROI 內(nèi)取邊緣 HTuple hv_ModelID; CreateShapeModel(ho_ModelImage, HTuple(0), // NumLevels0讓 Halcon 自己定 HTuple(-15).TupleRad(), // AngleStart注意單位是弧度 HTuple(30).TupleRad(), // AngleExtent覆蓋 -15°~15° HTuple(auto), // AngleStep HTuple(auto), // Optimization HTuple(use_polarity), // Metric HTuple(auto), // Contrast HTuple(25), // MinContrast現(xiàn)場光照波動(dòng)大就調(diào)小 hv_ModelID);ReduceDomain這一步不能省。整幅圖去建模板背景里的傳送帶紋路、料盤邊緣全會(huì)被當(dāng)成特征點(diǎn)模板點(diǎn)數(shù)暴漲建模慢、查找更慢而且容易在背景相似的地方誤匹配。ROI 盡量貼著工件外輪廓留 510 像素余量。MinContrast單列出來說是因?yàn)樗鼪Q定了“現(xiàn)場能不能找到”。建模時(shí)的Contrast是按當(dāng)前這張圖的對(duì)比度自動(dòng)算的換一批料、換一個(gè)班次的光照對(duì)比度可能掉三成。這時(shí)候MinContrast如果還等于建模值那些邊緣就被過濾掉模板點(diǎn)剩不下幾個(gè)。我一般把它壓到Contrast的三分之一左右寧可多留點(diǎn)噪聲點(diǎn)也別讓模板變成空殼。3.2 金字塔層數(shù)和角度步長不要讓auto替你做決定auto在大多數(shù)場景下是合理的但它有個(gè)隱含前提——你的模板 ROI 大小適中。ROI 特別大比如 800×600 的整塊鈑金時(shí)auto給出的層數(shù)會(huì)偏高最頂層只剩幾十個(gè)點(diǎn)粗定位直接飄ROI 特別小比如 30×30 的字符層數(shù)又會(huì)偏低查找慢得讓人懷疑人生。角度步長有個(gè)可以手算的經(jīng)驗(yàn)公式模板上離中心最遠(yuǎn)的邊緣點(diǎn)半徑記作 r旋轉(zhuǎn) Δθ 后這個(gè)點(diǎn)的位移約等于 r·Δθ。要求這個(gè)位移不超過 1 個(gè)像素就得到 Δθ ≤ 1/r弧度。半徑 150 像素的模板Δθ 差不多 0.0067 弧度也就是 0.38 度。// 由模板 ROI 的等效半徑反推角度步長比 auto 更貼合實(shí)際尺寸 double w 260.0, h 160.0; // ROI 寬高像素 double r 0.5 * sqrt(w * w h * h); // 最遠(yuǎn)邊緣點(diǎn)半徑 double stepRad 1.0 / r; // 旋轉(zhuǎn)位移不超過 1 像素 double stepDeg stepRad * 180.0 / 3.14159265; stepDeg stepDeg * 0.7; // 留 30% 余量 stepDeg max(0.1, min(1.0, stepDeg)); // 夾到工程可用區(qū)間 HTuple hv_AngleStep HTuple(stepDeg).TupleRad();算完之后可以反過來驗(yàn)證把AngleStep設(shè)成這個(gè)值建一次模板再用同一張圖在角度范圍的邊界處比如 14.5 度去查score 應(yīng)該還在 0.8 以上。如果掉得厲害說明步長還是粗了。這個(gè)“邊界自測”是我每次建完模板必做的一步比看任何文檔都直觀。層數(shù)這邊我的習(xí)慣是建完模板后打印一下每層的點(diǎn)數(shù)// 檢查金字塔各層剩下多少模板點(diǎn)頂層太少就手動(dòng)降層數(shù) HTuple hv_NumLevels, hv_Points; GetShapeModelContours(ho_ModelContours, hv_ModelID, 1); // 取第 1 層輪廓 // 更直接的辦法重建一次顯式指定層數(shù)對(duì)比匹配耗時(shí)和穩(wěn)定性頂層點(diǎn)數(shù)低于 20 個(gè)粗定位基本靠運(yùn)氣這時(shí)候要么把NumLevels手動(dòng)減 12 層要么擴(kuò)大 ROI 讓特征更豐富。別嫌麻煩這一步省下的時(shí)間會(huì)在現(xiàn)場調(diào)試時(shí)十倍還回來。3.3find_shape_model分?jǐn)?shù)、重疊和貪心度查找參數(shù)里真正需要?jiǎng)拥氖撬膫€(gè)MinScore、NumMatches、MaxOverlap、Greediness。MinScore是門檻低于它的候選直接丟棄。設(shè)太高光照一變就報(bào)“未找到”設(shè)太低背景里隨便一塊紋理都能湊到 0.4。經(jīng)驗(yàn)值是 0.60.7 起步等批量驗(yàn)證過 score 分布之后再收緊。MaxOverlap處理疊件。工件挨在一起時(shí)兩個(gè)匹配結(jié)果可能重疊 80% 以上其實(shí)是同一個(gè)目標(biāo)被重復(fù)報(bào)了。設(shè)成 0.30.5 能有效去重但設(shè)太小會(huì)把真正緊挨著的兩個(gè)工件誤殺。Greediness是搜索的“貪心程度”0 最徹底最慢1 最快但可能漏檢默認(rèn) 0.9。精密對(duì)位場景我一般降到 0.70.8多花 20% 時(shí)間換穩(wěn)定性值。// 查找并解析結(jié)果注意返回的是四個(gè) HTuple長度等于匹配個(gè)數(shù) HTuple hv_Row, hv_Column, hv_Angle, hv_Score; FindShapeModel(ho_Image, hv_ModelID, HTuple(-15).TupleRad(), HTuple(30).TupleRad(), HTuple(0.6), // MinScore HTuple(3), // NumMatches最多找 3 個(gè) HTuple(0.4), // MaxOverlap去掉重疊候選 HTuple(least_squares), // SubPixel亞像素精度 HTuple(0), // NumLevels0沿用建模層數(shù) HTuple(0.8), // Greediness hv_Row, hv_Column, hv_Angle, hv_Score); // 結(jié)果按 Score 降序排列取第 0 個(gè)就是最優(yōu) for (int i 0; i hv_Score.Length(); i) { double row hv_Row[i].D(); // Row 是行坐標(biāo)也就是 Y double col hv_Column[i].D(); // Column 是列坐標(biāo)也就是 X double ang hv_Angle[i].D(); // 弧度順時(shí)針為正 double scr hv_Score[i].D(); // 這里做你的坐標(biāo)轉(zhuǎn)換、發(fā)給 PLC }亞像素模式選least_squares它在初步定位后用最小二乘擬合邊緣重復(fù)精度能到 0.02 像素級(jí)別interpolation快一些但精度差一檔none只在極端追求速度時(shí)用。這個(gè)參數(shù)和Greediness是速度與精度這組矛盾的兩個(gè)旋鈕別同時(shí)往快的那頭擰。4. 顯示與坐標(biāo)從 HObject 到 Picture Control 的像素對(duì)齊4.1 把 Halcon 窗口嵌進(jìn)控件父句柄別傳錯(cuò)Halcon 的窗口本質(zhì)上是個(gè)子窗口OpenWindow的第五個(gè)參數(shù)就是父窗口句柄。傳對(duì)話框的m_hWnd圖像會(huì)蓋住所有控件傳 Picture Control 的句柄圖像才會(huì)老老實(shí)實(shí)待在框里。void CMatchDemoDlg::OpenHalconWindow() { // 重開前必須先關(guān)否則每切換一次分辨率就漏一個(gè)窗口句柄 if (m_hvWindowHandle.Length() 0) { CloseWindow(m_hvWindowHandle); m_hvWindowHandle HTuple(); } CWnd* pCtrl GetDlgItem(IDC_PIC_DISPLAY); CRect rc; pCtrl-GetClientRect(rc); OpenWindow(0, 0, rc.Width(), rc.Height(), pCtrl-GetSafeHwnd(), // 父句柄只認(rèn)控件不認(rèn)對(duì)話框 visible, , m_hvWindowHandle); SetWindowAttr(flush, false); // 批量繪制時(shí)先不刷最后統(tǒng)一 FlushBuffer }flush設(shè)成false是個(gè)明顯的性能開關(guān)尤其在一幀里要畫幾十個(gè)輪廓的時(shí)候。設(shè)完之后記得在繪制結(jié)尾調(diào)一次FlushBuffer(m_hvWindowHandle)否則畫面不動(dòng)你會(huì)以為程序死了。窗口大小變化時(shí)要重開或者用SetWindowExtents調(diào)整。重開更干脆但必須先把舊窗口關(guān)掉這一條我吃過虧——早期版本里每次OnSize都OpenWindow一次而不關(guān)舊的跑了一下午任務(wù)管理器里 GDI 對(duì)象數(shù)一路漲到幾萬最后整個(gè)界面變成一片白。4.2 三套坐標(biāo)圖像坐標(biāo)、控件坐標(biāo)、屏幕坐標(biāo)這是新手最容易翻車的地方也是我見過最多“匹配明明對(duì)了但框畫偏了”的原因。三套坐標(biāo)的換算方向必須記死Halcon 的Row對(duì)應(yīng)屏幕上的 Y豎直向下Column對(duì)應(yīng) X水平向右。寫代碼時(shí)row傳給了 X 參數(shù)結(jié)果就是整個(gè)框順時(shí)針轉(zhuǎn)了 90 度??丶鴺?biāo)的原點(diǎn)在控件左上角MFC 的OnLButtonDown給的point是相對(duì)對(duì)話框的得先ScreenToClient。圖像坐標(biāo)和控件坐標(biāo)之間隔著一個(gè)SetPart縮放比例和偏移都在里面。void CMatchDemoDlg::OnLButtonDown(UINT nFlags, CPoint point) { // MFC 給的 point 是相對(duì)對(duì)話框客戶區(qū)的先轉(zhuǎn)到顯示控件坐標(biāo)系 CPoint pt point; m_wndDisplay.ScreenToClient(pt); // 取出當(dāng)前顯示區(qū)域?qū)?yīng)的圖像范圍 HTuple hv_Row1, hv_Column1, hv_Row2, hv_Column2; GetPart(m_hvWindowHandle, hv_Row1, hv_Column1, hv_Row2, hv_Column2); CRect rc; m_wndDisplay.GetClientRect(rc); // 控件坐標(biāo) - 圖像坐標(biāo)線性映射別在這里加任何經(jīng)驗(yàn)偏移 double imgRow hv_Row1.D() (hv_Row2.D() - hv_Row1.D()) * pt.y / rc.Height(); double imgCol hv_Column1.D() (hv_Column2.D() - hv_Column1.D()) * pt.x / rc.Width(); // 記下來給 ROI 用 m_dClickRow imgRow; m_dClickCol imgCol; }另一種寫法是直接用GetMposition(m_hvWindowHandle, row, col, window)讓 Halcon 自己算。它更省事但有個(gè)前提調(diào)用它的線程必須是開窗的那個(gè)線程工作線程里調(diào)會(huì)返回一堆 0 或者拋異常。所以我在跨線程的場合一律手算寧可多寫三行。還有一個(gè)隱蔽的坑SetPart傳的參數(shù)順序是(Row1, Column1, Row2, Column2)而GenRectangle1的順序是(Row1, Column1, Row2, Column2)看著一致但很多人順手把Column2寫成了Row2結(jié)果顯示區(qū)域變成一個(gè)細(xì)長條。這種錯(cuò)誤編譯器不會(huì)報(bào)只能靠肉眼發(fā)現(xiàn)。4.3 句柄和內(nèi)存的生命周期別指望 GCHalcon 的HObject內(nèi)部是引用計(jì)數(shù)理論上離開作用域就釋放。但有兩類東西不在此列一是窗口句柄OpenWindow出來的必須CloseWindow二是HTuple里塞的數(shù)組如果在一個(gè)循環(huán)里不停TupleConcat內(nèi)存會(huì)一直漲。我的做法是給圖像加一個(gè)作用域守衛(wèi)避免在異常路徑上漏掉釋放// HObject 的作用域守衛(wèi)構(gòu)造時(shí)給個(gè)空對(duì)象析構(gòu)時(shí)強(qiáng)制 ClearObj class HObjScope { public: HObjScope() { m_obj.GenEmptyObj(); } ~HObjScope() { m_obj.ClearObj(); } // 引用計(jì)數(shù)歸零底層內(nèi)存立即回收 HObject* operator() { return m_obj; } // 支持 ReadImage(scope, ...) 這種寫法 HObject Get() { return m_obj; } private: HObjScope(const HObjScope); // 禁止拷貝防止引用計(jì)數(shù)被意外加一 HObjScope operator(const HObjScope); HObject m_obj; };ClearObj和讓它自然析構(gòu)的區(qū)別在于時(shí)機(jī)自然析構(gòu)要等棧展開異常路徑上如果被catch吞掉又沒重新拋出對(duì)象可能活到下一輪循環(huán)。顯式清一下內(nèi)存曲線會(huì)平得多。至于查看內(nèi)存任務(wù)管理器不夠用我一般掛個(gè)性能計(jì)數(shù)器看私有字節(jié)跑兩百幀不回落就是有泄漏。5. 避坑與排查模板匹配在 MFC 里翻車的五種現(xiàn)場5.1 Debug 能跑Release 一啟動(dòng)就崩現(xiàn)象Debug 下匹配正常切到 Release 雙擊 exe要么閃退要么ReadImage返回空、后面一路空指針。原因九成是運(yùn)行時(shí)庫不匹配。工程用/MT靜態(tài)鏈接而halconcpp.lib是按/MD編的兩套 CRT 同時(shí)在進(jìn)程里堆的分配和釋放跨了邊界HObject析構(gòu)時(shí)就會(huì)踩到別人的堆。解決C/C → 代碼生成 → 運(yùn)行時(shí)庫Debug 用/MDd、Release 用/MD和 Halcon 保持一致。改完記得全量重編只做增量編譯的話舊的 obj 還帶著老設(shè)置。5.2 換個(gè)角度就找不到score 掉到 0.3 以下現(xiàn)象工件擺正的時(shí)候 score 0.9 穩(wěn)如老狗一轉(zhuǎn)到十幾度就報(bào)未找到或者匹配到一個(gè)明顯錯(cuò)誤的位置。原因三個(gè)可能按概率排——AngleExtent沒覆蓋實(shí)際偏轉(zhuǎn)范圍AngleStep太粗邊界角度上模板和實(shí)際錯(cuò)開了半個(gè)像素以上MinContrast設(shè)太高轉(zhuǎn)到側(cè)面時(shí)邊緣對(duì)比度下降模板點(diǎn)被大量過濾。解決先把AngleStart/AngleExtent放寬到實(shí)際范圍的兩倍做一次驗(yàn)證能穩(wěn)定找到再收窄再按 3.2 的公式重算AngleStep最后把MinContrast降到建模Contrast的三分之一試試。三步做完還是不行那就是模板本身特征不足得換 ROI 或者加輔助特征。5.3 界面卡死匹配框畫在了按鈕上現(xiàn)象點(diǎn)開始之后界面卡住幾秒后圖像出來但畫在了對(duì)話框左上角蓋住了標(biāo)題欄和按鈕。原因算子在 UI 線程里同步跑消息泵被堵住同時(shí)OpenWindow的父句柄傳成了對(duì)話框的m_hWnd而不是 Picture Control 的句柄。解決算子挪到工作線程見 2.3結(jié)果通過PostMessage回主線程繪制父句柄改成控件句柄。改父句柄之后要檢查OnSize控件尺寸變了窗口得跟著調(diào)否則圖像會(huì)被裁掉一塊。5.4 跑一兩個(gè)小時(shí)內(nèi)存持續(xù)上漲現(xiàn)象剛啟動(dòng)時(shí)幾十兆跑一下午漲到一兩個(gè) G最后彈“內(nèi)存不足”。原因OpenWindow之后沒CloseWindow每次重開分辨率或切圖都漏一個(gè)循環(huán)里ReadImage出來的HObject掛在成員變量上沒清HTuple在循環(huán)里做TupleConcat累積。解決所有窗口操作成對(duì)出現(xiàn)寫一個(gè)ResetWindow()統(tǒng)一管圖像用 4.3 的守衛(wèi)HTuple在循環(huán)開頭hv_Result HTuple()重置。掛性能計(jì)數(shù)器觀察私有字節(jié)跑兩百幀不回落就是還有漏。5.5 中文路徑的圖讀不進(jìn)來現(xiàn)象ReadImage拋異常說文件不存在但資源管理器里明明有或者路徑里的中文變成一堆問號(hào)。原因MFC 工程默認(rèn) UnicodeHTuple接受const char*時(shí)按 ANSI 解釋寬字符路徑直接傳進(jìn)去就是亂碼。解決所有傳給 Halcon 的字符串都過一遍轉(zhuǎn)換CString strPath _T(D:\\圖像\\part_01.png); HTuple hv_File(CT2A(strPath)); // 轉(zhuǎn)成窄字符需要 atlconv.h ReadImage(ho_Image, hv_File);更徹底的辦法是工程目錄和文件名全用英文但現(xiàn)場拷貝過來的圖往往不聽話轉(zhuǎn)換這一步別省。6. 交付前的一次壓測用五十張圖驗(yàn)證穩(wěn)定性與節(jié)拍模板匹配調(diào)通不等于能交付。我踩過最疼的一次是現(xiàn)場跑了兩小時(shí)才開始偶發(fā)漏檢——光照隨時(shí)間漂移上午十點(diǎn)以后太陽斜射進(jìn)車間工件的對(duì)比度整體往下掉了三成MinContrast那關(guān)就過不去了。從那以后交付前必須跑一輪批量驗(yàn)證。驗(yàn)證分三塊缺一不可驗(yàn)證項(xiàng)做法判據(jù)覆蓋率五十張覆蓋全角度范圍的真實(shí)圖逐張跑漏檢 0 張誤匹配 0 張分?jǐn)?shù)分布統(tǒng)計(jì)所有 score 的最小值與均值最小值 MinScore× 1.3重復(fù)性同一張固定圖連查 100 次Row/Column 標(biāo)準(zhǔn)差 0.05 像素節(jié)拍連續(xù)跑 500 次取均值單幀耗時(shí) 產(chǎn)線節(jié)拍的 1/3最后一項(xiàng)留三倍余量不是保守是給現(xiàn)場的老工控機(jī)留的——開發(fā)機(jī)是 i7產(chǎn)線上那臺(tái)可能是十年前的雙核。批量腳本我一般直接寫在 demo 里加個(gè)隱藏的按鈕只在調(diào)試模式下顯示void CMatchDemoDlg::RunBatchTest() { double minScore 1.0, sumMs 0.0; std::vectordouble vRow; int nOk 0, nNg 0; for (int i 1; i 50; i) { CString strPath; strPath.Format(_T(data\\part_%02d.png), i); // 圖按序號(hào)命名覆蓋全角度 HTuple hv_File(CT2A(strPath)); HObject ho_Image; ReadImage(ho_Image, hv_File); LARGE_INTEGER t0, t1, freq; QueryPerformanceFrequency(freq); QueryPerformanceCounter(t0); // 計(jì)時(shí)只包住 FindShapeModel HTuple hv_Row, hv_Column, hv_Angle, hv_Score; FindShapeModel(ho_Image, m_hvModelID, HTuple(-15).TupleRad(), HTuple(30).TupleRad(), 0.6, 1, 0.5, least_squares, 0, 0.8, hv_Row, hv_Column, hv_Angle, hv_Score); QueryPerformanceCounter(t1); sumMs (t1.QuadPart - t0.QuadPart) * 1000.0 / freq.QuadPart; if (hv_Score.Length() 0) { nOk; minScore min(minScore, hv_Score[0].D()); vRow.push_back(hv_Row[0].D()); // 重復(fù)性用固定圖另外跑 } else { nNg; } ho_Image.ClearObj(); } // 結(jié)果直接彈個(gè) AfxMessageBox或者寫日志別只在調(diào)試器里看 CString strMsg; strMsg.Format(_T(通過 %d / 失敗 %d / 最低分 %.3f / 平均耗時(shí) %.1f ms), nOk, nNg, minScore, sumMs / 50.0); AfxMessageBox(strMsg); }計(jì)時(shí)的位置很講究QueryPerformanceCounter要把FindShapeModel單獨(dú)包起來別把取圖和繪制也算進(jìn)去否則測出來的是整個(gè)流程的耗時(shí)優(yōu)化的時(shí)候找不到重點(diǎn)。hv_Score[0]取第一個(gè)是因?yàn)榻Y(jié)果已經(jīng)按分?jǐn)?shù)降序這里只關(guān)心最優(yōu)的那個(gè)。重復(fù)性那項(xiàng)要單獨(dú)做拿同一張圖重復(fù)查 100 次把Row、Column存進(jìn)std::vector算標(biāo)準(zhǔn)差。如果標(biāo)準(zhǔn)差跑到 0.3 像素以上說明模板的邊緣特征不夠銳利或者Greediness設(shè)太高導(dǎo)致每次走的搜索路徑不同。這個(gè)指標(biāo)比 score 更能反映系統(tǒng)的真實(shí)精度因?yàn)?score 是相對(duì)的重復(fù)性是絕對(duì)的。還有個(gè)小技巧把五十張圖的 score 全部打到日志里畫個(gè)折線看一眼。如果是一條平線說明模板很穩(wěn)如果中間有個(gè) V 形谷那幾張圖就是薄弱環(huán)節(jié)單獨(dú)拎出來分析光照或者遮擋比現(xiàn)場出了問題再回頭查高效得多。我現(xiàn)在的習(xí)慣是只要這個(gè) demo 要交給別人用不管對(duì)方說得多急批量驗(yàn)證這一輪必須強(qiáng)制走完日志文件跟 exe 一起打包。不是為了證明什么是因?yàn)楝F(xiàn)場那臺(tái)機(jī)器和那張圖永遠(yuǎn)比實(shí)驗(yàn)室里多一個(gè)你想不到的變量。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷丁香社区| 99热老网站| 99精品网| 在线观看免费狠狠色丁香香综合| 九九色网| 婷婷丁香色五月天| 综合激情视频| 色色色国产| 99久久婷婷五月天| 婷婷五月丁香狠狠| 色婷婷基地在线| 丁香六月成人网| 国产精品美女| 欧美日韩aaa| 天天操天天爱天天玩| 色色色色色色色色五月先| 久久曰9| 国产精品成人在线| 中文无码婷婷| 色5月婷婷色| 黄网在线免费观| 国产精品美女| 天天爽天天日| 一起草av| 久久久国产精品黄毛片| 免费AV播放| 久久99热免费最新版| 五月天婷婷自拍图片在线观看| 激情九九综合网| 久九色| 9热久久在线| www.婷婷六月天| 亚洲啪啪啪啪| 九色视频91疯狂| 五月天婷网| 五月丁香婷婷AV天堂| 久操热线| 婷婷丁香六月综合激情站| 超碰中文字幕在线| www.婷婷,com| 9色在线视频| 99综合99| 98色花堂98t.R| 91丨九色熟女丨首页| 婷婷丁香中文字幕| 久久色吧| 婷婷五月丁香综合激情| 婷婷的99视频网站| 99区视频| 99亚洲无码| 人妻videos人妻高清| 日韩人妻无码一区二区| 精品九九视频| 激情图片五月天| 精品国产va久久久| 日本久久精品18| 五月丁香六月天| 五月丁香黄色视频| www.99热在线观看| 欧美S码亚洲码精品M码| 亚洲激情| 久99| 大香蕉院线| 婷婷丁香五月天小说| 婷婷婷色五月| 色播播五月| 婷婷激情综合| 日韩人妻无码专区| 色九九九综合| 五月婷色| 五月天婷网| 婷婷色av| 婷婷五月六月丁香| 五月天色色色网| 99er热精品视频| 性生活视频98791| 日本3级片偷拍网站| 中文字幕av在线| 性色播| 热久久66| 99精品久久久久久久婷婷| 色色色色五月| 久久日曰| jiujiu无码五区| 精品色色网| 玖玖资源站蜜臀| 婷婷五月天小说网| 色婷婷激情| 婷婷99狠狠躁天天久久久九九九| 大香蕉天堂| 熟女色专区| 成人婷婷深爱综合网| 婷婷五月天首页| 九九婷婷网五月天| 婷婷五月天97干| 色婷大香蕉| 色婷婷免费视频| 婷婷五月天受日本法律保护| 丁香五月在线| 久久五月婷天天干| 亚洲性爱99| www.色五月.com| 九九re精品视频在线观看| 色情五月丁香| 99日韩| 3www激情| 少妇搡BBBB搡BBB搡毛茸茸| 青青草原爱爱网| 亚洲国产婷婷色五月| 色五婷婷| 激情性爱五月天网页| 天天综合 99久久婷婷| 婷婷激情鹿城五月天| 精品色| 天天综合网站| 五月久久婷婷| 婷婷丁香宗合888| 少妇真实被内射视频三四区| 91色涩| 丁香六月色| 五月色婷婷夜色| 熟女人妻视频| 色色色色色色色综合| 婷婷五月天天天| 全部老头和老太XXXXX| 色99色| 视频这里只有精品16| 精品人妻在线| www.99日本| 婷婷激情五月天小说校园| 六月丁香五月天| 日本九九网| 五月婷婷影视| 丁香五月婷婷综合啪啪| 五月丁香六月婷婷a v| 色五月婷婷久久| 视频1区2区| 成年人99热| 五月丁香色婷婷| jiujiu热在线视频| 丁香婷婷激情| 五月天第四色开心色播| 久久久久久人妻| 国产精品久久..4399| 99热在线观看免费精品| 99热精品99| 人妻啪啪啪| 最新无码专区| 日韩十国产极品久久| 99国产精品久久久久久久久久久 | 婷婷丁香在线播放| 亚洲色频| 久久久五月五丁香| 天天久久66xxx| 色色五月天丁香| 五月天伊人久久久久| 激情色色| 成人va在线播放| av五月丁香| 五月丁香婷婷激激激综合网色播| 婷婷五月天电影网| 啪精品| 久久婷婷五月综合色和| 国产44页| 丁香五月综合婷婷| 激情美女五月天| 色播五月婷婷| 森林影视大全,最好看的2019年视频| 中文字幕成人| 婷婷色欧美激情| 丁香五月激情五月| www,超碰| 狠狠色丁婷婷日日,伊人激情综合网 | 另类少妇人与禽zOZZ0性伦| 丁香六月激情综合| 超碰人人插| 激情九九综合网| 91久久人人操| 极品人妻VideOssS人妻| 激情久久综合网| 深爱激情网噜噜色| 99热www| 人人操av| 五月天婷婷色播| 五月婷婷亚洲天堂97色婷婷| 99九九精品视频| 亚洲综人色综网| 九九热超碰| 九九久久视频| 亚洲午夜精品久久久久久人妖| 久久五月婷| 五月天色网站| 亚州精品色情在线观看| 国产精品国产| 精品热九九| 9有码中文| 青草青草久热这里只有精品| www. 五月. com| 91日本在线| 都市激情蜜桃婷婷五月天| 久久婷婷丁香花综合网| 性爱综合网| 五月天婷婷色小说| 99热精品在线播放| 停停综合色色| 五月丁香花成人社区| 久久视频婷婷| 99爱免费视频| 深爱激情五月天婷婷网| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 亚洲AV无码成人精品区电影网| 欧美色图天堂网| WWW.桔色成人.COM| 丁香五月激情宗合网| 欧美精品狠狠色丁香婷婷| 久久色五月| 色婷婷伦理| 五月丁香婷婷激情影院欧美| 超碰99成人在线| www99热| 丁香婷婷视频一区二区| 五月丁香天天| 一起草无码视频| 亚洲成人九九九| 久色成人| 丁香五月停停av| 第四色网婷婷| 婷综合六月| 综合色色色色色色| 天天干天天日日| 影音先锋91| 久9热视频在线| 91久热| 99久精品视频| 五月丁香婷婷六月天| 网站免费一站二站| 99国产在线| 停停五月色宗合| 激情综合五月色丁香婷婷| 色色婷婷五月| 久久女婷| 九九热99re8热免费观看| 97碰在线免费观看| 51XX嘿嘿午夜无码| 丁香天堂夜| 极品嫩草| 五月亭亭色| 九九热内射| 欧美成人猛片AAAAAAA| 婷婷五月天亚洲| 激情五月天啪啪| 五月六月丁香激情| 五月丁香激情综合久久| www.激情| 婷婷六月啪啪| 久久99久久99精品免视看婷婷| 91婷婷| 人人操AV| 久久XX| 9+1视频网址| 97色碰| 综合网色| 青草视频在线观看视频| 依人大香蕉在钱1| 色啦啦视频| 色婷婷伊人激情在线观看| 中文字幕在线免费看线人| 激情99| 九九这里只有精品| 九月丁香久久网| 九九操屄| 91婷婷在线观看| 美国不卡视频| 婷婷午夜| 国产高清RV综合aVa| 丁香五月亚洲无码| 99热色精品| 狠狠干综合| 久久久五月五丁香| 免费看欧美成人A片无码| 亚洲国产精品二二三三区| 日日噜噜夜夜狠狠久久丁香五月| 色五月婷婷天堂| 丁香五月婷婷五月| 五月丁香久久网| 五月丁香在线婷婷蜜桃| 激情综合五月开心狠狠| 免费看成人747474九号视频在线观看| 欧美婷婷综合| 色五月婷婷、老熟女| 99久久99热这里只有精品| 激情婷婷五月天在线观看| 五月综合婷婷久久在线| 色综合九九色综合88| 丁香五月在线| 久久天堂女人| WWW·天天操·视频?| 五月丁香激情综合网官网| 婷婷涩五月天综合| 另类图片色五月| AA片在线观看视频在线播放| WWW.久久久久久久| 人妻VideOssS人妻| 俺去也综合| 日比网免费国产| 激情五月婷婷视频一区二区三区| 丁香五月综合图片在线观看| 婷婷五月综合色拍| 五月丁香婷婷伊人| 再綫Av免费視品| A网在线欧洲| 黄色片区子| 97精品人人A片免费看| 玖玖激情网| 色五月无码| 日日夜夜爽| 日韩1区2区| 五月天婷婷激情四射综合| 伊九九三级区| 5五月综合网亚洲| 97精品人人A片免费看| 婷婷性爱视频在线| 婷婷色激情五月天| 亚洲日韩乱码一区二区三区四区| 超碰在线观看99| 婷婷色激情五月天| 热热色色五月天婷婷| 91狠狠综合久久久| 色99热| 国产精品 的国产| 五月婷婷六月奇米网丁香| 黄色AV日韩| 亚洲欧洲美女在线观| 激情五月天久久丁香| 国产激情综合五月久久| 丁香五月激情五月| 丁香五月停停av| 996热| 五月天婷婷基地综合网| 天天干,夜夜爽| 182无码| 亚洲婷婷婷| 五月激情啪啪| 婷婷在线免费| 我爱大香蕉| 欧美超碰人人| 久操97| 丁香花五月天社区| 丁香五月六月激情久久| 91九九九色在| 五月婷婷精品无在线| 色婷婷丁香五月| 影音先锋按摩| 亚洲激情网| 精品久热| 狠狠干综合| 丁香五月综合激情久久潮喷| 婷婷伊人綜合中文字幕| 99这里只有免费的小视频在线观看| 五月激情小说网| 在线视频另类| 97人人干| 6080av| 屁股翘好撅高迎合跪趴| 婷婷亚洲五| 在线看片av| 激情综合一| 丁香五月天亚洲视频| 夜夜夜夜夜骑撸| 91人人网| 99久久网站| 伊人婷婷大香蕉| 午夜婷婷久久| 亚州操人在线视频| 丁香五月婷婷丫| 中文字幕日产A片在线看| 久久视这里只有精品| 26uuu精品一区二区| 五月天无码| 五月激情综合网| 插少妇综合网| 五月婷久草| 开心深爱激情网| 精品久久婷婷| 97五月天| 色婷婷色五月天| 伊人九九综合| 丁香五月激情综合| 色五婷婷| 色九网| 思思热在线| 精品99爱免费视频在线观看| 欧美日韩国产一区二区| 激情综合五月| 丁香五月色欲| 久久久18| 久久久婷丁香五月| 亚洲精品成人| 99热在线观看这里只有精品| 婷婷涩五月| 九九这里有精品| 色婷丨日丨天丨综合久久| 啪啪日热| 热99这就是精品视频| 五月激情综合五月| 日韩欧美成人片| 六月丁丁香| 欧美性爱5月天天天看| 黄色一极大片| 亚洲亚洲人成综合网络| 丁XX 成人| 开心 五月 综合| 婷婷黄色网| 色综合区| 99热免| 大香蕉婷婷| 久久婷婷五月丁香蜜桃网| 国产精品色色| 99热成人在线观看| 无码一区二区三区四区五区| 丁香六月婷婷色播| 亚洲天堂婷婷| 亚洲综合五月天| 久久a热| 丁香五月天人体| 婷婷五月丁香A∨| 五月天激情四射| 丁香五月婷婷影院| 人人色AV| 日日色五月天| 九九这里只有精品在线视频| 色婷六月| 激情色情五月天| 九九99久久| 丁香九月综合激情| 五月天 无码| 精品99网站| 91操碰| 国产成人亚洲综合亚洲| 色色色九九九五月婷婷| 色偷偷AV亚洲男人的天堂| 99re免费精品视频| www久久艹| 日夜夜久久| 日韩狠狠色婷婷| 丁香五月婷婷激情四射| 99热插| 婷婷丁香五月综合久久| 免费在线观看AV网站| 久久激情网| 九九九九国产| 亚洲精品成人| 91一起操| 色欲色香综合网| 婷婷少妇激情| 婷婷午夜精品久久久| 久久怕怕视频| 色综合天天| 岛国AV网| 91精品久久久久、久五月天| 丁香五月天亚洲视频| 另类小说激情五月天| 日本在线噜噜| 巴基斯坦粉嫩无码视频| 五月天婷婷高清无码| 亚洲综合婷婷| 人妻久久久久久久久久| 五月丁香天堂网| 亚洲色无码| 婷婷色网站| 天天爽夜夜爽天天爽夜夜爽| 色爱五月天| www.婷婷五月| 婷婷五月大香蕉| 丝袜激情网| 五月丁香色| 久久伊人婷婷| 久久五月婷| 人妻熟人中文字幕一区二区| 99热8在线| 欧美,日韩成人在线| 丁香五月 性爱| 婷婷久久婷婷色五月| 99在线播放| 99热九九在线| 成人在线日韩| 很操日本7| 六月丁香婷婷天堂| 野战毛片三一3| 丁香婷婷性久久| 欧日韩成人| 亚洲日日操| 99婷婷| 日本91在线播放| 免费观看日韩成人av| 狠狠色狠狠爱| 快乐激情五月色婷婷| 婷婷五月天成人动漫| 色播丁香婷婷五月激情| 激情图片久久| 天天色情站| 日韩啪图| 再次出发二| 久久A区B区| 婷婷99狠狠躁天天躁中| 欧美叉叉叉BBB网站| 日韩AV成人电影| 欧美丁香五月97色| www.狠狠干com| 五月天激情综合| 99碰碰| 超碰啪啪网| 大香蕉五月天婷婷| 丁香五月五月婷婷五月天激情四射| 丁香五月开心亚洲| 日日做A爰片久久毛片A片英语 | 欧美日韩中国| 热热久久精品视频| 另类激情五月在线视频欧美| 中字幕视频在线永久在线观看免费| 久久久久久9热不雅视频| 五月激情综合网| 激情www.98com| 99精品热视频| 久久亭亭电影| 情五月亚洲婷婷| 天天干天天做| 午夜微拍福利| 婷婷综合五月天激情| 97碰碰在线观看视频| 国产在线网| 日韩欧美颜射| 五月天另类激情在线| 风流少妇A片一区二区蜜桃| 久久总和99| 激情综合色婷婷啪啪六月天| 久久精品国产一区二区三区四区| 色久女| 亚洲第79页| 黑人糟蹋人妻HD中文字幕| 人人性久久| 影音先锋人妻出差| 国产精品天天狠天天看| 秋霞午夜理论| 狠狠五月天| 97视频.干com| 五月婷激情影院| 特黄三级又爽又粗又大| 99热这里只有精品一区| 九九99九九精品免费| 婷香五月网在线| 国产免费AV在线| 欧美婷婷九月| 丁香五月天激情免费在线观看AV777| 99热久久这里只有精品| 色另类五月天| 人妻熟人中文字幕一区二区| 99综合婷婷五月| 五月丁香婷婷六月| 玖玖视频福利| 开心五月深爱五月| 国产日批视频免费播放| 深爱激情六月天| 91vip在线观看| 丁香婷婷91在线观看视频| 久久国产AV| 99精品小视频| WWW·色色色·COM| 六月丁香婷婷综合狠狠爱夜夜爱| 九月婷婷激情| 欧美日韩成人| 九九热只有精品6| 99无码| aaaaaa片| 久99999热视频在线观看免费| 亚洲久久视频| 苗黎美女四级成人版一级二级毛片| 五月激激网w'w'w| 99视频| 丁香六月激情蜜桃| 日韩性爱无码| 啪啪激情综合| 五月丁香六月婷婷,婷| 97干在线| 蜜桃婷婷丁香| 亚洲av无码精品色午夜| 中美日韩成人在线| 色之综合网| 少妇性按摩无码中文A片| 激情综合网亚洲色图| 99天天操夜夜操| 天天天天天天操| 欧美色99| 亚洲精品久久久无码| 丁香色情五月综合网站| 91日韩美女被插视频| 五月天啪啪视频| 激情五月天婷婷久久久久久久久久久| 8050一级网| 新激情五月天天在线网| 五月丁香激情片| www久久久久久久久久久| 丁香五月五月婷婷五月天激情四射| 狠狠草网| 啪啪啪综合网| 99热6色| 91精品国产91久久久久青草| 黄色国久久| 五月天婷婷丁香导航| 五月婷婷另类| 日韩精品在线观看9| 99久.| 亚洲XX日本| 色情五月婷| 专区无日本视频高清8| 强伦轩人妻一区二区电影| 日韩性视频| 在线18av | 91婷婷丁香五月| 婷婷激情六月综合| 99网址在线看| 67194线路二在线观看| 99玖玖免费视频| 伊人久久婷婷五月天激情四射| 99热一本久道| 极品人妻VIDEOSSS人妻| 99精品在线观看视频| 性爱电影科技贸易有限公司| 91精品国产99久久久久久天美| 国产精品久久久久9999小说| 99久久99九九99九九九| 色情综合网| 97色色色色色色色| 五月婷婷草| 丁香五月天成人| 99精色| 日日爽夜夜爽| 婷婷色五月综合| 激情综合综合综合| 亲子乱AV一区二区三区下载| 婷婷六月天| 夜夜爽77777妓女免费下载| 91丨九色丨熟女|老版| 婷婷五月色亚洲| 丁香色五月直播| 日本乱论99| 五月天婷婷Av| 99婷婷精品推荐在线视频| 五月天综合在线| 天天干夜夜想| 丁香五月区| 大狠狠在线| 中文字幕丰满乱孑伦无码专区| 插逼综合网| 亚洲国产网站| 禁片二区| 996黄色片| 婷婷五月综合性爱| 国产精品成人AV在线观看春天| 狠狠色综合网| 99热精品在线播放| 99超级碰免费视频| 91热爆在线| 激情五月天啪啪| 丁香六月婷婷综合缴| 天天色域综合网| 六月天丁婷婷| 丁香婷婷色情社区成人小说| 久久久精品人妻录| 亚洲欧州色情在线观看| 天堂草在线观| 996日日爱| 日本熟女内射| 婷婷播5月| 97色色色色色| 激情五月丁香亭亭| 五月天狠狠色| 丁香六月啪| 成人午夜无码视频| 99热成人| 草草女人亚洲| yw.av| 久久大香蕉伊人| 九九九九九九毛片| 欧美精产国品一二三区| 丁香六月啪| 亚洲激情亚洲激情 | 影音先锋AV资源男人站| 中文字幕精品推荐免费在线观| 亚洲情欲久久| 天天干天天曰天天射| 丁香九月综合激情| 天天舔天天插天天爱| 第二色AⅤ| 思思热热久久| 九九热最新视频| 久久婷婷成人| 三男玩一女三A片| 影音先锋 萱萱| 日笨久久网| 超碰9| 全网最新网黄大秀直播高清,主播国产录屏在线 | 色综合久久久无码中文字幕999| 色婷婷av综合网| 天天肏高清在线| site:xiongshengzz.com| 色欲五月天| 狠狠色综合精品视频在线| 五月丁香激情综合啪啪| 99精品热| 天天肏天天肏| 亚洲VA欧美VA| 五月天综合影院| 99九九在线精品热动漫| 六月丁丁香| 久久网址99热| 亭亭丁香aV| www夜夜操com| 亚洲操B| 丁香婷婷久| 欧美久久婷婷| 这里只有精品9| 色五月天激情| 亚洲精级| 五月婷婷在线短视频| 亚洲婷婷成人五月天| 99色中文| 精品99*| 婷婷啪啪| 五月开心久久| 亚洲V国产V欧美V久久久久久| 中文AV在线观看| 五月丁香六月婷婷综合免| 五月丁香六月激情视频| 51精品国自产在线| 超碰成人电影| 五月丁香中文| 国产免费性爱| 九九色综合| 婷婷五月天视频亚洲| 国自产拍偷拍精品啪啪一区二区| 色五月婷婷91| 久久丁香久久| 少妇人妻丰满做爰XXX| 肏屄色播伊人97婷婷| 综合色综合| 亚洲成人综合在线| 99精品一二三四视频| www色中色综合| 亚洲综合九九| 色色色色色色色色五月先| 丁香五月婷婷在线观看| 婷婷五月花| 综合亚洲色色| 成人国产综合| 丁香久久五月婷综合| 久久久精品色| 婷婷香蕉精品| 日日婷婷不卡| 涩五月婷婷| 99超级碰免费视频| 九九九九精品精| 激情婷婷| 丁香五月激情综合| 六月婷婷av| 伊人色综合久久久| 婷婷五月中文字幕| 六月婷婷在线| 久久男人网婷婷| WWW.开心五月天.COM| 北京熟妇搡BBBB搡BBBB| 激情com| 另类图片五月天| 久久免费精品小视频| 99热国产精品| 亚洲操逼网| 超碰99在线观看| 日韩在线视频中文字幕| 九九精品综合| 激情久久五月天| 人妻精品在线| 东京热免费视频| 色五月六月| 久久99久久99精品免视看婷婷| 五月激情啪啪啪| 婷婷永久在线| 日日夜夜狠狠| 玖玖资源部在线播放| 超碰碰碰碰| 五月婷婷久久内射| 五月婷婷影视| 色播五月婷婷五月| 日本毛片内射| 久久久精品AV| 九九99在线免费在线观看视频| 色色亚洲五月天| 天堂婷婷五月在线| 丁香六月AV| 亚洲色五月天| 色 丁香婷婷| 91夫妻网站九色| 日日操夜夜骑| 婷婷欧美激情综合| 五月天色丁香| 99色视频在线观看| 婷婷日韩| 亚洲AV网站在线观看| 婷婷五月综合在线| 国产毛片精品一区二区色欲黄A片| 久久在这里有精品| 五月丁香综合色婷婷| 国产性爱亚洲是图| 婷婷在线免费| 欧美日本免费一道免费视频 | 五月天激情综合10p| 丁J香六月首页| 中文字幕,综合,91| 婷婷偷拍网| 婷婷五月天99综合网站| 色五月五月天色婷婷色五月| 激情图片亚洲| 五月停亭久久电影| 97九色| 97色五月天| 亚洲精品成人片在线播| 日本婷婷| 97色色色色色| 五月丁香日本一抹本| 91干婷婷| 亚洲综合色婷婷| www.久久爱| 婷婷五月天成人小说| 国产成人+综合亚洲+天堂| 狠狠爱青青草| 高清不卡一区| 日日日影院| 色人久久| 日韩啪图| 日本色婷婷| 99热精品中文字幕| 九九99视频精品| 91操在线| A片试看120分钟做受视频红杏| 色婷婷的五月天| 另类综合激情| 大香蕉99| 久久久久视剧HD| 人妻22p| 激情都市丁香婷婷| 天天拍夜夜爽日日| 日日干天天射| 伊人久久大香线蕉AV最新午夜| 婷婷综合久久| 玖玖在线| 五月亚洲| 伊人婷婷五月| 色婷婷手机在线| 六月婷基地| 岛囯综合激情网| 五月激情天| 99热偷拍| 色婷婷激情| 人人看人人草人人摸| 婷婷五月丁香综合亚洲| 久热超碰91| 另类图片五月天激情| 欧美日韩精品人妻狠狠躁免费视频| 成人在线网址| 99激情| 婷婷五月av| 99热这里只有精品 搜| 五月天激情播播网| 久久久久久综合88| 色九月欧美| 亚洲综合成人网站| 禁片二区| 色婷婷亚洲综合天堂| 51精品国自产在线| 天天日天天舔| 亚洲VA在线| 五月婷婷啪啪| 色停停五月天| 婷婷五月色亚洲| www.五月婷婷久久.com| 五月天快乐开心激情网| 婷婷激情中文综合| 任你爽视频| 色婷婷综合久久久久| 五月天婷婷色色网| 九九干视频| 天天综合网~91| 九色PORNY在线精品酒店| 9l视频自拍九色9l黑人| 丁香婷婷五月激情四射网| 亚洲婷婷性爱| 99视频综合| 在线不卡AC| 一区=区操屄高清大全av| 79成人网| 久久狠狠色| 亚州日本欧州韩美高青高潮一| 五月丁香激情综合六月涩涩爱| 免费AV黄在线播放| 婷婷五月天激情偷拍| 激情网站综合五月天| 色国产五月| 婷婷免费无视频| 99色爱| 婷婷狠狠色| 激情中文在线| 五月激情视频| 五月丁香啪啪啪| 亚洲精品无AMM毛片| 久草丁香婷婷1024| 亚洲在线播放| 97久久草草超级碰碰碰| 六月99天天婷婷激情综合| 狠狠干天天内射| 婷婷天天综合| 五月婷婷中文字幕| 日本三级中文字幕| 丁香五月激情啪啪| 91夫妻网站九色| 色欧美日| 国产成人综合网| 无码中文一区二区三区| 丁香婷婷视频一区二区| 五月婷婷丁香六月| 亚洲激情另类| 婷婷五月天淫荡| 日韩淑女人妻luan伦激情精品一区二| 香蕉综合在线| 五月丁香六月婷婷中文版| 婷婷丁香五月亚洲综合网在线视频观看| 五月亭亭性| 亚洲操b| 成人无码髙潮喷水A片| 丁香五月婷婷亚洲天堂| 一区二区三区视频| 婷婷五月天日日日干干干| 丁香五月婷婷日本| 色99在线| 色综合播放| 久久婷婷六月综合| 99视频一区| 91热在线| 色五月丁香A欧美com| 五月丁香六月激情综合| 天天色综合色| 久久综合影院 | 五月天婷婷黄色| www.婷婷亚洲基地| 99热99艹在线观看| 97人人搞| 五月网网站| 五月天.com| 91窝窝| 99在线观看免费精品视频| 99re这里只有| 国产又色又爽又黄又免费| 五月婷婷丁香大陆免费| 亚洲激情综合五月婷婷啪啪| 精品激情| 丁香五月 无码| 久久这里只有精品07| 色综合五月| 搡BBBB搡BBB搡18 | 超碰人人射| 激情五月丁香六月综合AVXXXX| 天天干天天干天天干天天干天天干| 超碰五月婷婷五月天| 九九热视频网站| 婷婷欧美激情综合| 91九九九九九九| 开心婷婷五月激情网小说| 婷婷色五月婷| 99@久久@99精品视频| 久久九九怡红院| 九九大香蕉黄色影院| 日本综合99| 热无码A∨| 久久婷婷精品| 亚洲色图81p| 99热成人在线| 国产AV熟妇人震精品一品二区| 欧美精品999| 欧美日韩成人高清在线| 免费日本aⅴ中文字幕| 五月丁香WWW| 色色a| 狠狠色噜噜狠狠狠狠综合| 色婷婷亚洲六月婷婷中文字幕| 黄网在线免费观| 欧美色骚婷婷五月天| 色五月激情婷婷| 九艹在线| 丁香激情五月| 伊人色五月| 久久精品只有这| 国成人网| 五月婷婷丁香色播网| 亚洲成人AV高清字幕| 99久久这里只有精品免费官网| 婷婷激情五月| 另类专区在线| 大香蕉久久久久| 色噜噜狠狠色综合网| 色婷婷综合影院| 美欧成人视频| 狠狠色大香蕉| 六月婷婷香蕉| 欧美超级视频97| 五月丁香激情综合啪啪| 日韩在线99| 六月婷婷香蕉| 996er热| 婷婷伊人网| 色婷婷狠狠| 热的国产99热| 婷婷五月天av| 五月婷婷五月天天| 久久久天堂国产精品女人| 五月天婷婷深深爱| 婷婷五月综合中文字幕| 色噜噜狠狠插综合| 婷婷久久图片| 婷婷久久丁香五月| 色99在线视频| 天天操综合网| 99久久思思| 久久精99| 一区二区免费看| 丁香婷婷啪啪| 思思99热| 亚洲激情免费视频| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 99精彩视频| 亚洲婷婷月丁香五月| 婷婷影院A成人| 国产成人99久久亚洲综合精品| 日韩色色一区| 五月天激情国产综合婷婷| 国产阿姨日皮艹逼内射视频| 激情婷婷丁香| 综合噜噜| 天天日天天做天天舔| 亚洲精品久久久无码| 久久婷婷五月综合色丁香| 五月天婷婷丁香花| 天天爽天天干| 国产在线另类五月婷婷| 黑人无码一区| 久热9| 天天视频亚洲| 五月丁香无码| 亚洲九N| 类似婷婷激情综合网站| 丁香五月婷婷啪| 丁香五月天日韩无码| 午夜成人天堂久久无码日韩久久| 天天AV导航网| 亚洲免费av观看| 婷婷五月天福利| 热热久久99| 色婷婷丁香五月| 超碰人人摸人人操| 99色色| 色婷婷丁香特级性爱视频| av无码电影| 最近中文字幕2019视频1| 激情五月天网| 狠狠另类视频| 久草狼人| 日韩一级一片内射视频4K| 综合久久高清| 99在线看片| 玖玖综合色| 狠狠狠狠草草| 爱射综合| 丁香六月婷婷| 九九九午夜影院成人| 91人操| 天天日色情| 9久热| 爽天天天天天天天| 青青草护士中出内射-欧美电影在线天堂新版 | 欧美综合激情五月| 九九久久五月天| 狠狠色综合图片| 婷婷中文字幕| 久操综合| 人草人人| 日本特黄aaaaa| 99热在线观看| 无码橾| 91碰免费视频| 久99| www.色婷婷| 五月天天天天天天天天天天天天天天天婷婷婷 | 真实亲子乱子伦高清在线观看| 久久精品在线| 激情小说五月天| 久9精品| 国产人人操| 99ER热精品视频| 成人va在线播放| 五月激情网站| 噜噜吧天天爱| 亚洲色情网站| 五月丁香婷庭在线| 婷婷六月丁香1| 天堂AV三级| 色香蕉影院| 91成人电影| 五月婷婷九九热| 超碰京东热av男人的天堂| 五月丁香色停停啪啪啪| 疯狂做受XXXX高潮A片| 激情五月丁香五月| 五月婷亚洲精品AV天堂| 婷婷五月天网址| 五月婷婷丁香五月| 丁香婷婷基地| 开心激情五月天网| 婷婷五月亚洲一本在线丁香| 丁香六月婷婷姐网| 26uuu亚洲精品国产| 五月天激情图| 日本熟女一区二区| 99视频热| 性日本精品| 婷婷久久亚洲| 人人爱人人摸人人澡| 天天色综网| 色五婷婷开心缴| 亚洲成人五月| 五月丁香婷婷欧美| 99精品网| 99九无网码| 色色色婷婷五月天| 九九五月天| 九九99久久| 激情五月天视频| 五月婷婷激情| av高清无码| 99热最新国内| 五月婷婷,六月婷婷| 丁香五月综合久久| 色噜噜狠狠色综合成人网| 五月丁香 啪啪| 丁香六月激| 五月天堂婷婷| 日本成人噜噜| 久久五月天婷婷| 秋霞AV淫| 26UUU欧美| 香蕉AV777XXX色综合一区| 91九色超碰| 玖玖婷婷视频| 色婷婷在线播放| 99在线免费视| 99热这里只有在线| 婷婷五月丁香超碰| 激情綜合W W W,激情五月天| 99这里只有精品| 伊人狼人干| 婷婷丁香五月91| 激情婷婷丁香五月天小说| 五月婷婷co.m| 深情五月天| 久久婷婷网| 大地9中文在线观看免费高清| 婷婷碰碰| 超碰人人91| 99激| 操骚货在线| 人人播| 丁香五月色情av| 性欧美日本| 思思综合热| www热久久yy9| 成人精品视频99在线观看免费| 亚洲视频另类| 婷婷色色五月| 久久五月激情| 99热婷婷| 欧美性爱专区| 九九99久久| 天天日天天爱天天噪| 色色五月天婷婷| 国产亚洲AV人片在线| 中文字幕不卡网站| 久久久国产精品黄毛片| 丁香五月婷婷亚洲激情四射| 激情五月综合色| 99性视频| 99re久久| 天堂五月婷婷| 五月激情视频网| 亚洲婷婷丁香| 婷婷丁香六月天| 91精品久久久久久综合五月天| 1010日日无码| 亚洲日日日| 天堂亚洲 在线| 婷婷激情鹿城五月天| www.久久久久久久| 热99视频精品在线| 天天激情5月天亚洲| 天天综合在线网| 性做久久久久久久免费看| 久久草中文日韩欧美| 草做免费在线观看| 婷婷丁香成人| 丝袜激情网| 噜噜噜久久亚洲精品国产品91 | 国产成人精品一区二三区熟女在线| 99色五月| 可以免费看AV网站| 婷婷综合久久| 婷婷色丁香五月| 五月婷激情| 五月婷婷久草| 亚洲激情免费久久| 99久在线观看| ady狠狠入| 婷婷五月综合在线视频| 五月婷婷六月色| 激情五月天综合网| 激情五月小说婷婷| 五月天婷a在线| 欧洲亚洲免费视频区| 四色99久久| 五月丁香六月婷婷啪啪| 538在线精品| 爱iii做iiii日日| 99色热视频| 国产又粗又大又爽又黄| 天天开心天天色| 欧洲亚洲免费视频9| 玖玖五月丁香| 五月婷婷亚洲| 色五月婷婷91在线| 天天夜夜操| 亚洲精品一二三| 97婷婷丁香五月| 亚洲亚洲人成综合网络| 玖玖伦理电影| 婷婷五月色| 精品视频这里只有精品| 色中色综合| 亚洲天堂久久| 日韩九九| 欧美极品999| 婷婷另类小说| 看黄的网站18禁| 五月天激情综合网| 桃色Av色哟哟| 人妻av在线| 热热久久精品视频| 欧美成人精品A片免费一区99| 日本本土色网第一区| 99国产精品白浆在线观看免费| 丁香久色| 97五月婷| 俺也去在线视频|