久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

Halcon形狀匹配+MFC上位機(jī):可雙擊exe模板匹配Demo實戰(zhàn) 簡介面向機(jī)器視覺初學(xué)者與C桌面開發(fā)者的halconmfc模板匹配demo聚焦在Windows界面中完成基于形狀、形狀縮放與灰度的模板匹配驗證。工程把Halcon圖像處理能力嵌入MFC對話框提供圖像加載、匹配模式選擇、參數(shù)設(shè)置、執(zhí)行匹配及位置與相似度結(jié)果展示等交互適合學(xué)習(xí)工業(yè)視覺定位、目標(biāo)識別與GUI集成的基礎(chǔ)流程。壓縮包共27個文件以8個h和6個cpp源碼為主配合ico、rc等界面資源vcxproj、sln等VS工程配置以及jpg預(yù)覽圖、exe可執(zhí)行程序和說明文檔rar整體約11.45MB。從目錄模塊看參數(shù)設(shè)置、形狀操作、結(jié)果封裝與主對話框邏輯劃分較清晰便于對照編譯、調(diào)試和二次修改。已有1246人學(xué)習(xí)可作為Halcon與MFC聯(lián)合開發(fā)模板匹配功能的入門參考。1. 一個能雙擊運(yùn)行的 exe這個 HalconMFC 模板匹配 demo 到底解決什么問題某五金件產(chǎn)線上工件在傳送帶上隨機(jī)偏轉(zhuǎn)角度大概在正負(fù)十五度之間晃機(jī)械手要過去抓。算法同事在 HDevelop 里半小時就調(diào)通了create_shape_model建模板、find_shape_model拿 Row/Column/Angle 一氣呵成??烧嬉桓兜焦の徊僮鞴げ豢赡艽蜷_ HDevelop 點運(yùn)行。問題于是從“怎么匹配”變成“怎么把匹配包成一個能雙擊的 exe”——這正是 Halcon MFC 模板匹配 demo 的位置。它做的事很具體把形狀匹配的建模、查找、結(jié)果顯示、參數(shù)調(diào)節(jié)塞進(jìn)一個 MFC 對話框程序里對外輸出一個四元組Row、Column、Angle、Score再把匹配到的輪廓疊畫在圖上。適合做課設(shè)畢設(shè)的、剛從腳本過渡到上位機(jī)的、以及要給現(xiàn)場交付獨(dú)立程序的人如果你只做純算法研究或者習(xí)慣 Python 調(diào)庫這套東西對你價值不大。2. 工程骨架把 Halcon 算子塞進(jìn) MFC 的三條路與一次編譯配置2.1 HDevEngine、導(dǎo)出 C、混合調(diào)用先選一條這一步選錯了后面全是返工。三種接法我都在項目里用過差別不在性能在“誰改算法”這件事上。接法做法優(yōu)點代價適合HDevEngine運(yùn)行時加載 .hdev用HDevEngine執(zhí)行過程算法同事改腳本不用重編 exe多帶一個引擎 dll報錯是腳本行號每次調(diào)用有解析開銷算法還在頻繁迭代、現(xiàn)場要臨時調(diào)參導(dǎo)出 CHDevelop 里“文件→導(dǎo)出 C”生成 .cpp執(zhí)行最快無額外依賴改一行腳本就要重新編譯整個工程算法已經(jīng)凍結(jié)、追求穩(wěn)定交付混合建模和調(diào)參走腳本查找和結(jié)果顯示走 C兼顧兩邊接口要自己設(shè)計狀態(tài)要管好我一般會選這個Demo 這種體量直接導(dǎo)出 C 最省事因為模板匹配的調(diào)用鏈很短沒必要為它背一個腳本引擎。但如果你要做“現(xiàn)場工程師拿著 hdev 自己調(diào)對比度”的功能那就得走 HDevEngine并且把腳本里的過程名、輸入輸出參數(shù)用SetProcedure、SetInputIconicParamObject這類接口約定死否則腳本一改接口exe 直接報找不到過程。2.2 VS 工程配置位數(shù)、運(yùn)行時庫、頭文件順序Halcon 的庫和你的工程必須位數(shù)一致這一條沒有例外。新版本基本只提供 64 位所以 MFC 工程從新建那一刻就該選 x64別等編譯報一堆LNK2019再回頭改。屬性頁里要落的東西位置項值C/C → 常規(guī)附加包含目錄$(HALCONROOT)\include、$(HALCONROOT)\include\halconcpp鏈接器 → 常規(guī)附加庫目錄$(HALCONROOT)\lib\$(HALCONARCH)鏈接器 → 輸入附加依賴項halconcpp.libC/C → 代碼生成運(yùn)行時庫與 Halcon 保持一致一般/MDRelease、/MDdDebugMFC 使用方式—在共享 DLL 中使用 MFCHALCONROOT和HALCONARCH這兩個環(huán)境變量是安裝時寫進(jìn)系統(tǒng)的用$(HALCONROOT)引用比自己寫死路徑靠譜換機(jī)器不用改工程。頭文件包含順序上有一個老坑windows.h里的min/max宏會和標(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)用會莫名其妙編譯不過using namespace寫進(jìn)頭文件則會讓所有包含它的 cpp 都被拖進(jìn) Halcon 的命名空間后面和 MFC 的CRect、CPoint撞名是遲早的事。部署時別忘了把運(yùn)行時 dll 拷到 exe 同級目錄halcon.dll、halconcpp.dll是必須的走 HDevEngine 還要加引擎那個 dll。我在項目里放了個拷貝腳本打包前一鍵執(zhí)行# 打包前把運(yùn)行時 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 才需要下面這兩個 # cp $HALCON_BIN/hdevenginecpp.dll $OUT/ # cp $HALCON_BIN/hdevengine.dll $OUT/腳本本身沒什么技術(shù)含量價值在于把“哪些 dll 是必需的”這件事固化下來?,F(xiàn)場機(jī)器往往裝的是運(yùn)行版而不是開發(fā)版多拷一個 dll 頂多占幾兆少拷一個就是啟動即崩。2.3 線程模型UI 線程只負(fù)責(zé)畫算子跑在工作線程MFC 的死穴是 UI 線程不能阻塞超過幾十毫秒而一次find_shape_model在高分辨率圖、多角度、多層金字塔的情況下跑到幾十甚至上百毫秒很常見。連續(xù)采圖時直接在OnBnClickedStart里循環(huán)調(diào)用界面必卡任務(wù)管理器里那個“未響應(yīng)”的標(biāo)題就是血淚經(jīng)驗。更麻煩的是 Halcon 窗口有線程親和性O(shè)penWindow在哪個線程開的就只能在哪個線程操作它。跨線程去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 是引用計數(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)鍵點有三個FindShapeModel的NumLevels傳 0 表示用建模時定好的層數(shù)不要在這里另設(shè)一個值SubPixel選least_squares比interpolation穩(wěn)代價是慢一點點HObject的賦值是淺拷貝加引用計數(shù)所以把圖像存到對話框成員上不會帶來一次完整的內(nèi)存拷貝但也意味著你在工作線程里對同一個ho_Image再ReadImage一次主線程正在顯示的那張會跟著變——想要每幀獨(dú)立就CopyObj一份。UI 線程那邊只做三件事接消息、DispObj、畫十字和矩形框。這樣即使匹配跑到 200 毫秒界面拖動、縮放依然跟手。3. 模板訓(xùn)練與查找參數(shù)八個建模參數(shù)和四個查找參數(shù)怎么定3.1create_shape_model的參數(shù)一個個說清楚形狀匹配的建模參數(shù)直接決定“能不能找到”查找參數(shù)只決定“找得多準(zhǔn)”。順序別搞反。參數(shù)含義常用取值調(diào)錯的表現(xiàn)NumLevels金字塔層數(shù)auto或 06太大丟小特征太小慢AngleStart起始角弧度按工件實際偏轉(zhuǎn)定范圍不夠直接找不到AngleExtent角度跨度弧度同上同上AngleStep角度步長弧度auto或按半徑算太粗定位抖太細(xì)建模慢Optimization模板點優(yōu)化方式auto、point_reduction_high高優(yōu)化會犧牲一點點精度Metric極性use_polarity光照反了就全丟Contrast邊緣對比度閾值auto或 2060太高模板點太少M(fèi)inContrast查找時最低對比度建模值的 1/21/3太高現(xiàn)場找不到Metric這個參數(shù)是最容易被忽略的。默認(rèn)use_polarity要求待查圖像里邊緣的明暗方向和模板一致如果現(xiàn)場打光方式變了或者工件翻面邊緣極性反了score 會直接掉到 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)場光照波動大就調(diào)小 hv_ModelID);ReduceDomain這一步不能省。整幅圖去建模板背景里的傳送帶紋路、料盤邊緣全會被當(dāng)成特征點模板點數(shù)暴漲建模慢、查找更慢而且容易在背景相似的地方誤匹配。ROI 盡量貼著工件外輪廓留 510 像素余量。MinContrast單列出來說是因為它決定了“現(xiàn)場能不能找到”。建模時的Contrast是按當(dāng)前這張圖的對比度自動算的換一批料、換一個班次的光照對比度可能掉三成。這時候MinContrast如果還等于建模值那些邊緣就被過濾掉模板點剩不下幾個。我一般把它壓到Contrast的三分之一左右寧可多留點噪聲點也別讓模板變成空殼。3.2 金字塔層數(shù)和角度步長不要讓auto替你做決定auto在大多數(shù)場景下是合理的但它有個隱含前提——你的模板 ROI 大小適中。ROI 特別大比如 800×600 的整塊鈑金時auto給出的層數(shù)會偏高最頂層只剩幾十個點粗定位直接飄ROI 特別小比如 30×30 的字符層數(shù)又會偏低查找慢得讓人懷疑人生。角度步長有個可以手算的經(jīng)驗公式模板上離中心最遠(yuǎn)的邊緣點半徑記作 r旋轉(zhuǎn) Δθ 后這個點的位移約等于 r·Δθ。要求這個位移不超過 1 個像素就得到 Δθ ≤ 1/r弧度。半徑 150 像素的模板Δθ 差不多 0.0067 弧度也就是 0.38 度。// 由模板 ROI 的等效半徑反推角度步長比 auto 更貼合實際尺寸 double w 260.0, h 160.0; // ROI 寬高像素 double r 0.5 * sqrt(w * w h * h); // 最遠(yuǎ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();算完之后可以反過來驗證把AngleStep設(shè)成這個值建一次模板再用同一張圖在角度范圍的邊界處比如 14.5 度去查score 應(yīng)該還在 0.8 以上。如果掉得厲害說明步長還是粗了。這個“邊界自測”是我每次建完模板必做的一步比看任何文檔都直觀。層數(shù)這邊我的習(xí)慣是建完模板后打印一下每層的點數(shù)// 檢查金字塔各層剩下多少模板點頂層太少就手動降層數(shù) HTuple hv_NumLevels, hv_Points; GetShapeModelContours(ho_ModelContours, hv_ModelID, 1); // 取第 1 層輪廓 // 更直接的辦法重建一次顯式指定層數(shù)對比匹配耗時和穩(wěn)定性頂層點數(shù)低于 20 個粗定位基本靠運(yùn)氣這時候要么把NumLevels手動減 12 層要么擴(kuò)大 ROI 讓特征更豐富。別嫌麻煩這一步省下的時間會在現(xiàn)場調(diào)試時十倍還回來。3.3find_shape_model分?jǐn)?shù)、重疊和貪心度查找參數(shù)里真正需要動的是四個MinScore、NumMatches、MaxOverlap、Greediness。MinScore是門檻低于它的候選直接丟棄。設(shè)太高光照一變就報“未找到”設(shè)太低背景里隨便一塊紋理都能湊到 0.4。經(jīng)驗值是 0.60.7 起步等批量驗證過 score 分布之后再收緊。MaxOverlap處理疊件。工件挨在一起時兩個匹配結(jié)果可能重疊 80% 以上其實是同一個目標(biāo)被重復(fù)報了。設(shè)成 0.30.5 能有效去重但設(shè)太小會把真正緊挨著的兩個工件誤殺。Greediness是搜索的“貪心程度”0 最徹底最慢1 最快但可能漏檢默認(rèn) 0.9。精密對位場景我一般降到 0.70.8多花 20% 時間換穩(wěn)定性值。// 查找并解析結(jié)果注意返回的是四個 HTuple長度等于匹配個數(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 個 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 個就是最優(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(); // 弧度順時針為正 double scr hv_Score[i].D(); // 這里做你的坐標(biāo)轉(zhuǎn)換、發(fā)給 PLC }亞像素模式選least_squares它在初步定位后用最小二乘擬合邊緣重復(fù)精度能到 0.02 像素級別interpolation快一些但精度差一檔none只在極端追求速度時用。這個參數(shù)和Greediness是速度與精度這組矛盾的兩個旋鈕別同時往快的那頭擰。4. 顯示與坐標(biāo)從 HObject 到 Picture Control 的像素對齊4.1 把 Halcon 窗口嵌進(jìn)控件父句柄別傳錯Halcon 的窗口本質(zhì)上是個子窗口OpenWindow的第五個參數(shù)就是父窗口句柄。傳對話框的m_hWnd圖像會蓋住所有控件傳 Picture Control 的句柄圖像才會老老實實待在框里。void CMatchDemoDlg::OpenHalconWindow() { // 重開前必須先關(guān)否則每切換一次分辨率就漏一個窗口句柄 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)對話框 visible, , m_hvWindowHandle); SetWindowAttr(flush, false); // 批量繪制時先不刷最后統(tǒng)一 FlushBuffer }flush設(shè)成false是個明顯的性能開關(guān)尤其在一幀里要畫幾十個輪廓的時候。設(shè)完之后記得在繪制結(jié)尾調(diào)一次FlushBuffer(m_hvWindowHandle)否則畫面不動你會以為程序死了。窗口大小變化時要重開或者用SetWindowExtents調(diào)整。重開更干脆但必須先把舊窗口關(guān)掉這一條我吃過虧——早期版本里每次OnSize都OpenWindow一次而不關(guān)舊的跑了一下午任務(wù)管理器里 GDI 對象數(shù)一路漲到幾萬最后整個界面變成一片白。4.2 三套坐標(biāo)圖像坐標(biāo)、控件坐標(biāo)、屏幕坐標(biāo)這是新手最容易翻車的地方也是我見過最多“匹配明明對了但框畫偏了”的原因。三套坐標(biāo)的換算方向必須記死Halcon 的Row對應(yīng)屏幕上的 Y豎直向下Column對應(yīng) X水平向右。寫代碼時row傳給了 X 參數(shù)結(jié)果就是整個框順時針轉(zhuǎn)了 90 度??丶鴺?biāo)的原點在控件左上角MFC 的OnLButtonDown給的point是相對對話框的得先ScreenToClient。圖像坐標(biāo)和控件坐標(biāo)之間隔著一個SetPart縮放比例和偏移都在里面。void CMatchDemoDlg::OnLButtonDown(UINT nFlags, CPoint point) { // MFC 給的 point 是相對對話框客戶區(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)驗偏移 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 自己算。它更省事但有個前提調(diào)用它的線程必須是開窗的那個線程工作線程里調(diào)會返回一堆 0 或者拋異常。所以我在跨線程的場合一律手算寧可多寫三行。還有一個隱蔽的坑SetPart傳的參數(shù)順序是(Row1, Column1, Row2, Column2)而GenRectangle1的順序是(Row1, Column1, Row2, Column2)看著一致但很多人順手把Column2寫成了Row2結(jié)果顯示區(qū)域變成一個細(xì)長條。這種錯誤編譯器不會報只能靠肉眼發(fā)現(xiàn)。4.3 句柄和內(nèi)存的生命周期別指望 GCHalcon 的HObject內(nèi)部是引用計數(shù)理論上離開作用域就釋放。但有兩類東西不在此列一是窗口句柄OpenWindow出來的必須CloseWindow二是HTuple里塞的數(shù)組如果在一個循環(huán)里不停TupleConcat內(nèi)存會一直漲。我的做法是給圖像加一個作用域守衛(wèi)避免在異常路徑上漏掉釋放// HObject 的作用域守衛(wèi)構(gòu)造時給個空對象析構(gòu)時強(qiáng)制 ClearObj class HObjScope { public: HObjScope() { m_obj.GenEmptyObj(); } ~HObjScope() { m_obj.ClearObj(); } // 引用計數(shù)歸零底層內(nèi)存立即回收 HObject* operator() { return m_obj; } // 支持 ReadImage(scope, ...) 這種寫法 HObject Get() { return m_obj; } private: HObjScope(const HObjScope); // 禁止拷貝防止引用計數(shù)被意外加一 HObjScope operator(const HObjScope); HObject m_obj; };ClearObj和讓它自然析構(gòu)的區(qū)別在于時機(jī)自然析構(gòu)要等棧展開異常路徑上如果被catch吞掉又沒重新拋出對象可能活到下一輪循環(huán)。顯式清一下內(nèi)存曲線會平得多。至于查看內(nèi)存任務(wù)管理器不夠用我一般掛個性能計數(shù)器看私有字節(jié)跑兩百幀不回落就是有泄漏。5. 避坑與排查模板匹配在 MFC 里翻車的五種現(xiàn)場5.1 Debug 能跑Release 一啟動就崩現(xiàn)象Debug 下匹配正常切到 Release 雙擊 exe要么閃退要么ReadImage返回空、后面一路空指針。原因九成是運(yùn)行時庫不匹配。工程用/MT靜態(tài)鏈接而halconcpp.lib是按/MD編的兩套 CRT 同時在進(jìn)程里堆的分配和釋放跨了邊界HObject析構(gòu)時就會踩到別人的堆。解決C/C → 代碼生成 → 運(yùn)行時庫Debug 用/MDd、Release 用/MD和 Halcon 保持一致。改完記得全量重編只做增量編譯的話舊的 obj 還帶著老設(shè)置。5.2 換個角度就找不到score 掉到 0.3 以下現(xiàn)象工件擺正的時候 score 0.9 穩(wěn)如老狗一轉(zhuǎn)到十幾度就報未找到或者匹配到一個明顯錯誤的位置。原因三個可能按概率排——AngleExtent沒覆蓋實際偏轉(zhuǎn)范圍AngleStep太粗邊界角度上模板和實際錯開了半個像素以上MinContrast設(shè)太高轉(zhuǎn)到側(cè)面時邊緣對比度下降模板點被大量過濾。解決先把AngleStart/AngleExtent放寬到實際范圍的兩倍做一次驗證能穩(wěn)定找到再收窄再按 3.2 的公式重算AngleStep最后把MinContrast降到建模Contrast的三分之一試試。三步做完還是不行那就是模板本身特征不足得換 ROI 或者加輔助特征。5.3 界面卡死匹配框畫在了按鈕上現(xiàn)象點開始之后界面卡住幾秒后圖像出來但畫在了對話框左上角蓋住了標(biāo)題欄和按鈕。原因算子在 UI 線程里同步跑消息泵被堵住同時OpenWindow的父句柄傳成了對話框的m_hWnd而不是 Picture Control 的句柄。解決算子挪到工作線程見 2.3結(jié)果通過PostMessage回主線程繪制父句柄改成控件句柄。改父句柄之后要檢查OnSize控件尺寸變了窗口得跟著調(diào)否則圖像會被裁掉一塊。5.4 跑一兩個小時內(nèi)存持續(xù)上漲現(xiàn)象剛啟動時幾十兆跑一下午漲到一兩個 G最后彈“內(nèi)存不足”。原因OpenWindow之后沒CloseWindow每次重開分辨率或切圖都漏一個循環(huán)里ReadImage出來的HObject掛在成員變量上沒清HTuple在循環(huán)里做TupleConcat累積。解決所有窗口操作成對出現(xiàn)寫一個ResetWindow()統(tǒng)一管圖像用 4.3 的守衛(wèi)HTuple在循環(huán)開頭hv_Result HTuple()重置。掛性能計數(shù)器觀察私有字節(jié)跑兩百幀不回落就是還有漏。5.5 中文路徑的圖讀不進(jìn)來現(xiàn)象ReadImage拋異常說文件不存在但資源管理器里明明有或者路徑里的中文變成一堆問號。原因MFC 工程默認(rèn) UnicodeHTuple接受const char*時按 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. 交付前的一次壓測用五十張圖驗證穩(wěn)定性與節(jié)拍模板匹配調(diào)通不等于能交付。我踩過最疼的一次是現(xiàn)場跑了兩小時才開始偶發(fā)漏檢——光照隨時間漂移上午十點以后太陽斜射進(jìn)車間工件的對比度整體往下掉了三成MinContrast那關(guān)就過不去了。從那以后交付前必須跑一輪批量驗證。驗證分三塊缺一不可驗證項做法判據(jù)覆蓋率五十張覆蓋全角度范圍的真實圖逐張跑漏檢 0 張誤匹配 0 張分?jǐn)?shù)分布統(tǒng)計所有 score 的最小值與均值最小值 MinScore× 1.3重復(fù)性同一張固定圖連查 100 次Row/Column 標(biāo)準(zhǔn)差 0.05 像素節(jié)拍連續(xù)跑 500 次取均值單幀耗時 產(chǎn)線節(jié)拍的 1/3最后一項留三倍余量不是保守是給現(xiàn)場的老工控機(jī)留的——開發(fā)機(jī)是 i7產(chǎn)線上那臺可能是十年前的雙核。批量腳本我一般直接寫在 demo 里加個隱藏的按鈕只在調(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); // 圖按序號命名覆蓋全角度 HTuple hv_File(CT2A(strPath)); HObject ho_Image; ReadImage(ho_Image, hv_File); LARGE_INTEGER t0, t1, freq; QueryPerformanceFrequency(freq); QueryPerformanceCounter(t0); // 計時只包住 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é)果直接彈個 AfxMessageBox或者寫日志別只在調(diào)試器里看 CString strMsg; strMsg.Format(_T(通過 %d / 失敗 %d / 最低分 %.3f / 平均耗時 %.1f ms), nOk, nNg, minScore, sumMs / 50.0); AfxMessageBox(strMsg); }計時的位置很講究QueryPerformanceCounter要把FindShapeModel單獨(dú)包起來別把取圖和繪制也算進(jìn)去否則測出來的是整個流程的耗時優(yōu)化的時候找不到重點。hv_Score[0]取第一個是因為結(jié)果已經(jīng)按分?jǐn)?shù)降序這里只關(guān)心最優(yōu)的那個。重復(fù)性那項要單獨(dú)做拿同一張圖重復(fù)查 100 次把Row、Column存進(jìn)std::vector算標(biāo)準(zhǔn)差。如果標(biāo)準(zhǔn)差跑到 0.3 像素以上說明模板的邊緣特征不夠銳利或者Greediness設(shè)太高導(dǎo)致每次走的搜索路徑不同。這個指標(biāo)比 score 更能反映系統(tǒng)的真實精度因為 score 是相對的重復(fù)性是絕對的。還有個小技巧把五十張圖的 score 全部打到日志里畫個折線看一眼。如果是一條平線說明模板很穩(wěn)如果中間有個 V 形谷那幾張圖就是薄弱環(huán)節(jié)單獨(dú)拎出來分析光照或者遮擋比現(xiàn)場出了問題再回頭查高效得多。我現(xiàn)在的習(xí)慣是只要這個 demo 要交給別人用不管對方說得多急批量驗證這一輪必須強(qiáng)制走完日志文件跟 exe 一起打包。不是為了證明什么是因為現(xiàn)場那臺機(jī)器和那張圖永遠(yuǎn)比實驗室里多一個你想不到的變量。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人操| 神马久久免费电影观看| 乱色老一区二区三区的观看方式| 日本韩国国产精品一区| 高树玛利亚无码流出| 亚洲九九视频| 精品无码一区二区| 欧美综合自拍| 少妇免费视频| 一级aaaaa欧美中文字幕录像片| 天天操女人| 欧美日韩制服| 久操不卡视频| 超碰人妻久久| 极品色社| 美女裸体无遮挡永久免费观看网站| 超碰人人色| 成人老鸭窝人人在线视频| 秋霞鲁丝午夜无码一区二区三| 亚洲精品九九九| 国产精品成人在线| 久热热| 91精品无码人妻系列| 亚洲欧美国产va在线| 国产日韩精品无码去免费专区国产| 人妻少妇精品一区二区三区| 国产丁香精品露脸视频| 综合网色| 日韩成人精品| 午夜啊啊啊| 久久性爱视频99| 性欧美体内射精| 国产综合日韩伦理| 福利天堂| 天美传媒国产原创中文字幕亚洲欧美另类| www.91视频网| 97日本超碰综合| 亚洲成人激情小说视频| 狠狠搞 亚洲91| 国产成人精品无码久久| 日韩成人人妻网站| 久久久精品国产亚洲伊人| 一本久久久精品| 蜜桃色色网站视频三区| 久久精品噜噜噜成人看免欧美大片| 欧美视频一| 蜜臀AV成人精品蜜臀AV久久| 日韩A优精品在线观看| 久久人妻无码毛片A片麻豆| 国产一区二区av综合| 97这里有精品| 另类av综合久久| 十八禁成人网站在线观看| 天天天做天天天爱天天天爽| 天天色悠悠激情| 男人午夜天堂| 日韩亚洲美州欧洲综三区一品在线| 久草视频分类在线| 女欧美一区二三区| 亚洲男人天堂av| 欧美伦乱爱| 国产伦精品一区二区三区在线观| 一区二区三区免费视频入口| 啊啊啊啊啊好舒服视频| 91九九九馒头| 在线看免费无码AV天堂的| 加勒比色99999| 午夜精品久久久久久久男人的天堂 | 高潮内射在线| 奇米狠999| 亚州黄站| 免费看污网址| 亚洲天堂女优在线| 自拍偷拍2025在线观看| 在线观看亚洲成人精品| 九九热精彩视频| 超碰97起碰| 国产特级毛片AAAAAA高潮流水| 天天天做天天天爱天天天爽| 91精品丝袜在线观看| 夜夜草我| 精品国产AV一区天美传媒| 欧美国产有色电影| 中文字暮97| 郑州宾馆老熟女露脸啪啪| 2017天天拍大香蕉| 自拍第一页| 插老姨肥穴| 日韩三级视频一区二区三区| 国产熟女免费观看久久| 国产精品久久aV| 国产一区二区精品久久久不卡蜜臀| 好吊色一区| 欧美婷婷| www.婷婷| 高清不卡一二三区视频......| 精品一区二区人妖| 天天视频综合在线观看视频| 尤物视频一区| 久久超碰国产一区二区三区| 97精品免费视频网站| 人妻无码视频一区二区三区久久| 欧美熟妇亚洲版| 图色综合网| 一本道综合色图| 色青青久久影视| 日韩人妻有码免费视频| 美国三级日本三级久久99| 97视频在线观看高清资源| 久久久草成人网站久久久草成人久久久草久久久| 岛国网址国产| 乱伦系列一区二区| 精品一二三区久久AAA片| 国内精品a| 可免费观看的av毛片中日美韩| 熟女91网站| 91亚洲最新在线| 黑人与人妻| 啊啊啊好大好湿| 91 丝袜在线观看| 色女免费在线观看视频网址| 夜夜高潮夜夜爽国产伦精品| 超碰在线日韩一区| 曰韩人妻中文字幕在线| 免费在线视频97| 黄页av| 东北女人高潮视频| 国产一级内射高清视频| 激情婷婷综合久久| 久久黄色视频一区二区三区 | 99re在线视频| 亚洲熟女乱色一区二区三区久久久| SS久久| 高清肉丝中文无码| 色悠悠伊人网五月天| 一本大道久| 99999亚洲另类| 啊啊啊操死我了| 男女国产精品| 亚洲色交| 操婢日韩| 久久草草亚洲蜜桃臀| 飘花国产午夜精品不卡| 国产1769在线| 97国产色综合| 久久久久96| 欧美,日韩,中文,另类| 久久粉色| 天天操夜夜操狠很操| 在线v中文字幕一区二区三区| 91久久久久久久久18| 日本一区二区成人在线| 嗯啊不要在线观看嗯啊| 蜜臀久久久| 综精品久久久aaaa| 日韩精品影视| 国产毛片片精品天天看视频| 久96热在线观看视频| 欧美日本国产日韩激情视频| 加勒比色99999| 国产AV无码AV| 人人操人人操人人人操| 99热线麻豆 | 日韩精品一区二区三区四虎影视| 色婷久久| 色噜噜综合在线| 777奇米影视777四色| 国产二区三区免费视频| 张柏芝国产一区在线观看| 蜜桃臀AV在线| 男女香蕉一区二区| 97久久精品国产| 亚洲综合有玛| 超碰人妻久久人妻中文97| 欧美老妇综合网| 五月综合激情| 中文字幕一区二区三区蜜臀| 综合色图亚洲欧美| 国产性感骚丝袜在线| 五月天色电影| 97超级久久| 96麻豆精品一区二区三区| 成人国产二区三区在线,男女精品。| 国产风韵犹存熟妇三区| 夜夜躁狠狠躁日日躁av| 国产超碰人人爽人人做| 99热这里只有精| 欧美综合第一| 亚洲男人天堂2017| 国产亚洲色停停久久99精品91| 久久久九| 无码国产Av| 丰满人妻无码一区二区三区| 丁香九月激情啪| 伊人青青一区成人视频在线观看区| 欧洲综合视频| 欧美午夜视频| 国产AV天美传媒一区二区三区 | 国产亚洲福利第一页丝袜| 无码最新| 女人天堂AV五区在线| 伊人久久大香蕉线AV五月天| 99精品高潮| 草草草草视频| 国产亚洲在线| 亚洲视频精选| 国产精品女生av| 天天爽天天爽| 日韩特一级久久| 亚洲丝袜少妇在线| www.99视频| 好看的91视频| 18禁看网站一区| 亚洲情色婷婷五月天| 另类av综合久久| 欧美线天码中字| 自拍大香蕉乱插| 欧美亚洲激情一二三| 亚州一区二区| 观看视频图片一区二区三区| 精品人妻视频入口| 欧美在线55555| 亚洲一区操| 国产噜噜噜噜噜久久久久久久久| 无遮挡猛进视频免费无限观看| 操曰本熟女| 午夜电影在线观看无码专区| 天天碰久久入| 少妇99成人麻豆| 人妻精品一区二区| 在线啊v一区| 国产超碰97| renqi久久久久久久久久久久| 97精品一区二区视频| 亚洲中文字幕三级在线| 亚洲图片激情小说| 婷婷三区| 国产曰批免费观看久久久| 无码欧美有限公司| 日本九九九九| 国产操操日韩三级黄| 五月天欧美色图| 国产67194| 亚洲一区二区在线观看91| 伊人操操| 91色女| 国产精品不卡一区二区三区av| 色婷婷导航| 久久免费9| 国产成人AV麻豆| 婷婷色综合| 国产亚洲精品久久久久小| WWW美腿丝袜香蕉中文| 亚洲综合一区二区| 亚洲情色中文字幕一区| 精品人妻中文字幕4399| 欧洲久久一二线| 伊色久人大在线| 少妇一区二区三区在线观看| 亚州宗合另类| 男人的天堂啪啪啪啪啪蜜桃不卡| 搞中出久久| a在线视频免费观看| A片大香蕉在线| 欧美激情一| 区一二区日韩亚洲乱码av电影| 九九探花视频在线观看| 国产麻豆福利av在线播放| 日韩在线性爱免费视频| 国产400孕妇孕交群| 天堂精品小草| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 天美传媒AV在线| 91女色| 91青青在线视频| 久久久少妇诱惑精品视频| 极品色电影院| 久久久九九| 色网在线| 91精品国| 韩国一级婬片A片无码天美| 巨爆乳一区二区爆乳区| 欧美日本中字另类在线| 国产 日韩 另类 视频一区爱| 思思热在线cao| 99re国产精品视频| 一本一道波多野毛片中文在线| 欧美91变态| 超碰诱惑| 国产精品激情久久久久久久| 人人操人人摸人| 夜夜肏2021| 91色伦综合| 96国产污污污丝袜| 熟女人妻一区二区三区免费看 | 曰韩成人免费视频| 激情综合久久| 2019午夜福利视频| 97视频在线播放| 欧美国产精品久久九九| 久久激情亚洲精品无码?V| 黄片无码在线制服| 在线观看十八禁| 天美传媒av在线| 欧美天天射| 51一区二区三区| 91麻豆va国产精品| 伦理弟一页| 欧美丝袜中文字幕07在线| 免费看A片毛毛片在线播| 亚洲欧美激情另类色图| 97超碰超欧美。| 无码丰满熟妇一区二区浪潮AV| 婷婷激情四射| 999熟女精品| 91社操逼| 欧美大干日韩| 思思热在线cao| 9热9热综合网| 公司1区2区3区精产精| 20cm女自慰在线日韩欧美| 欧美成人午夜免费福利785| 偷拍片久久| 久久夜黄色无码A级大片| 欧美一二在线| 91亚洲欧洲| 丁香激情网| 亚州综合网| 久久曰曰| 欧美熟妇精品黑人巨大91| 肉嘟嘟www视频在线观看高清| 蜜桃香蕉久草精品在线| 91在线页| 免费作爱一级视频| 欧美论理片| 黄人人操人人操| 天天干天天日天天射黄色| 校园春色AV天堂| 涩爱AV在线| 国产第25页在线观看| 五月天亚洲网| 亚洲激情AV| 超碰天天去日穴| 亚洲一区二区三区四区视频| 91狠狠综| 99黄页网站| 99爱爱| 久久久久久久9999| 你草精品在线视频| 久久人妻视频| 五月丁香拍拍激情综合三级| 久9无限国产| 亚洲日韩少妇一道本视频| 亚洲午夜福利在线影院| 97草草| 久草网站免费在线观看| 久草热制服丝袜在线观看| 久久免费精品视频免一| 色在线综合| 黄色成年| 久久精品无码熟妇一区二区三区视频导航 | 久久熟妇五十路一区| 国产中文字幕曰本毛片| 免费超碰97在线观看| 国产成人在线观看网址| 日本幼女18+| 第45页一区二区| 精品少妇一区二区三区在线视频| 日韩成人午夜精品久久高潮| 97干色天堂| 中文字幕成人| 国产精品久久久视频| 国产亚洲精品自在线亚洲情侣| 免费精品人妻一区二区三| 97在线免费观看| 日韩操啪| 18禁免费视频| 国产在线视视频有精品| 国产性爱乱伦AV| 乱伦Av网| 人人插人人搞人人操| wwwcaobibi| 久久无码电影| 成人av在线播放| 绯色一区二区三区不卡少妇| 福利视频合集| 日本中文字幕不卡视频| 秋霞 色色| 亚洲另类小说卡通动漫| 在线岛国新天堂8| 少妇久久久久久久| 亚洲成人在线乱码色午夜| 婷婷五月天av| 久插综合| 一区二区视频在看| 成人性爱av| 亚洲精品久久久久久久久豆丁网| 久碰视频| 丝袜狠狠草尤物 91| 综合色91| 影音先锋少妇| 欧美日本中字另类在线| 久久成人国产| A久久| 啊啊啊啊啊啊好湿好爽视频| 99re在线视频国产| 亚洲美女AV无码| 亚洲成人免费中文字幕| 深爱五月天| 亚洲中文电影| 91免费看一区二区三区| 草莓精品视频| 精品一国2| 亚洲国产天堂| 高清不卡国产| 中国一级αV| 欧美十八禁网站| 另类av天堂| 亚洲天堂在线怕怕视频| 操一区| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲熟女诱惑| 天堂蜜桃无码视频一区二区| 中国一级操逼视频| 91美女視頻| 婷婷五月天激情网| 久久东京热久久| 久久超碰久| 欧美日韩大香蕉| 亚洲视频,小说| 国产美女mm131爽爽爽爽| 熟人人妻少妇精品久久| 午夜色婷婷| av激情亚洲五月天| 嗯嗯啊啊好大好爽| 夜夜免费视频| 五月天综合网| a一区二区三区乱码在线| 丝袜色综合| 手机看片1024你懂的国产| 久久亚洲一区二区色婷婷| 欧美日不卡| 欧美性爱免费短视频| 日韩综合第八区国产精品| 视频二区美腿丝袜制服人妻欧美| 久久精品毛片免费不卡| 色97欧美| 九九英色视频| 天天干天天拍| 国产成人亚洲精品无码古代早漏男 | 久久久不卡区一区二区三区久久久| 人人爱人人操人人性| 蜜臀久久99精品久久久久久无删减 | 最新9久久久9免费视频| 久久精品欧美一区蜜桃| 成人美女av| 超碰成人人人爽人人爽| 亚洲图片偷拍欧美| 美女高潮视频91| 亚洲欧美经典一区二区| 国产精品点击进入在线影院| 久久这里只精品| 在线亚洲丝袜视频网站| 懂色AV一区二区三区| 欧美经典一区二区三区| 9久在线视频只有精品| 久欲AV| 超碰在线人妻不卡| 亚洲夜色在线| 成人三一级一片aaa| 精品人妻一区二区三区免费视频| 久久夜夜夜夜| 免费看毛片操穴| 天天色天天干天天射| 国产精品视屏| 欧美亚洲中文| 色汉综合| 无码一区免费在线不卡| 麻豆国产97在线| 男人天堂2017| 久久午夜色播影院免费高清| 78精品| 啊啊啊啊在线播放| 亚洲文学偷乱拍啪啪啪啪| 神马午夜久久久| 1024亚洲中文字幕久在线看片你懂的| 五月天社区| 大香蕉丝袜一级片| 人人干人人搞人人摸| 密乳AV免费观看| 自拍第一页| 免费亚洲国产精品久久一区| 日韩久草| 91天美免费| 天干天干天干天天做| 亚洲综合有码| 亚洲国产精品无码AV久久| av影片在线观看不卡| 久久AV无码AV| 国产一区二区三区久久久精品| 午夜国产乱伦视频| 国产精品视频白浆免费| 99热精品在线观看| 久久9亚洲| 人人澡人人弄| 后入式999| 97免费视频在线| a级免费在线观看| 一区操逼| 免费观看啪视频| 国产精品女同| 亚洲欧美日韩电影网站一区| 久久久久幕乱码| 操熟女91| 国产二区视频在线观看电影| 美国一区二区免费视频| 青青草日韩无码| 欧美熟女激情| 国产自偷| 中日韩免费看男女操逼大全| 18禁中文字幕| 天天综合色电影| 国产乱弄免费在线视频。| 中文字幕无码不卡啪啪| 国产精品久久久啊| 大香蕉免费乱伦视频| 欧美色五月| 久久夜嗨| 亚洲高清综合网| 久久亚州精品成人Av无| 欧美成人性爱视频大全| 性色高清在线| 4虎在线观看| 加勒比在线观看一区二区| 亚洲综合九九| 98精品国产乱码久久久久久| 日夜伊人网| 欧美成人AⅤ大片在线观看| 99热婷婷| 青青草无码视频| 亚洲无992tv| av日韩在线观看电影| 99国产天美| 日韩欧美三级| 97人人操人人摸| 97人肏| 久久成人精品| 综合av社区| 亚洲男人天堂Av| 久湿久久| 无码丰满熟妇一区二区浪潮AV| 长长久久88视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 超碰97中文| 国产成人精品日本视频| 成人五月天色网| 欧美色亚洲| 久久久婷婷| 欧美激色| 国产女乱淫真高清免费视频| AV丝袜少妇| 欧美牲| 五月色网| 国产后入式在线观看| 亚洲最新av无码成人精品区| 打av高清| 国产精品日本无码A片| 欧美亚州手机在线| 欧美色性情| 91久久久久久久| 熟妇无码视频三区| 91麻豆va国产精品| 老鸭窝在线视频播放| 全免费a敌肛交毛片免费| 成人精品一区二区三区| 26UUU欧美激情一区二区| 亚欧中文字幕在线视频| 国产Av超碰| 欧美性,色九九| 性videos欧美熟妇hdx| 18精品一区| 国产无码精品久久久久久| 国产少妇与亚洲av| 日韩av无码网站| 天天弄欧美| 欧美探花网| 美性中文综合网| 无码丰满熟妇一区二区浪潮AV| 亚洲天堂自拍| 久久成人国产| 啊啊啊 在线| 狠狠色婷婷7777久| 久久男人的天堂| caopeng97| 蜜乳AV免费观看| 久久色一区二区| 日本色色色视频| 国产尤物在线三区| 校园春色制服丝袜中文字亚洲| 精品视频在线观看| 成人网欧美风情| 91午夜无码| 91精品操美女| 久久五月份| 十八禁啪啪视频| 国产青青美女玩逼视频| 91精品大奶人妻| 少妇一区二区三区| 超碰人妻中文在线| 亚洲国产一区二区三区四区国产| 国产精品农村妇女| 欧美老妇综合网| 亚洲精品人妻吞精av| 97碰碰色| 性爱AV天堂| 99日韩| 欧亚无码视频| 亚洲色图片区| 一区麻豆 高清中文字幕| AV网站高清无码在线观看| 男生通女生屁股| 日本天堂网| 伊欧美综合视频| 探花精品 一区二区| 日本中文字幕一区| 伊人久久青青草| 91精品人妻电影| 99久久精品国产系列| 国产视频第2页| 日韩另类色图| 国产精品自在自拍视频| 亚洲成人黄色在线观看| 国产又粗又长的视频| 蜜臀亚洲中文| 国产精品一区二区黄片| 99久国产精品午夜性色福利| 日日躁夜夜躁狠狠躁超爽| 日本不卡二三区| 思思99热| 久久人人爽人人爽人人片Ⅴ| 国产精品爆乳懂色蜜乳| 久久宗合97| 色欲色香天天天综合网www-亚洲综合国| 久久久精品成人国产| 91精品微拍福利| 欧美精品97| 人人九九精| 美女诱惑在线一区| 国产suv精品一区二区四区999| 欧美日韩中文亚洲v在线综合| 精品人妻中文字幕高清| 欧美热图99| 91成人久久| 国产青视频| 精品久久久久瑟瑟| 亚洲丝袜色| 全球成人中文在线| 殴美在线AⅤ| 色色网91| 久久透逼视频| 天天做天天爱夜夜爽毛片试看| 亚洲高清91| 日日日日做夜夜夜夜做无码97| 欧美天堂超碰97| 欧美精品丝袜久久久中文字幕| 日本天天操| 我爱大香蕉| 国产无马av| 秋霞曰韩R级| 日本精品不卡一二三区| 国产 亚洲 丝袜 制服| 小视频国产| 收看日本人日bb| 中文字幕一区二区三区四区在线视频| 思思热一热婷婷热一热| 国产又大又粗又长视频在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 青青草成人视频在线观看二区| 久久久久久久久久久97| 男人的天堂2018东京热啪啪啪| 最新欧洲欧美日本激情网站| 日韩精品一区二区三区四虎影视| 五月丁香啪| 亚洲欧洲偷拍一区| 男人的天堂2018东京热啪啪啪| 久久香蕉国产传媒一区剧情天美| 婷婷久草一区二区三区| 玖玖97综合 | 99精品无码| 久久久久久十| 欧美性天天| 中国AAAAAA黄色片| 免费少妇一区二区| 黄页视频网站野外| 国产97色在线| 看日韩美女二区三区免费操逼视频 | 色九九综合| 夜夜爽77777| 黑人天8A∨高清网站| 亚洲男人的天堂AV| 欧美在线中M| 97 国产精品| 色香综合| www.yeyecao| 丁香五月综合| 丁香五月婷婷基地| 91 国产丝袜在线放观看| 啊啊啊啊二区好大| 亚洲极品| 99精品国产户外露出| 正在播放国产精品一区| 国产一区二区三区导航| 亚洲中文字幕噜噜噜久久久| 欧美一二在线| 夜夜春夜夜操| 欧美中文字幕日韩在线| 婷婷视频在线免费观看| 嗯啊不要啊在线 | 久久九七| 漂亮人妻被强中文字幕hd| 欧美一区二区男人天堂| 久热香蕉精品在线视频| 日本 欧美 亚中文字幕| 97在线青| 校园春色 欧美| 久久国产乱子伦精品免费女人| 97人人操人人干| 天天综合香 ld视频| 精品人妻视频一区二区在线播放 | 亚洲av国产av综合av卡| 成视频在线观看免费看| 日本精品国产视频| 国产精品一区在线播放| 黄色激情电影在线观看| 免费观看的av| 亚洲青青草| 欧美第一页| 亚欧高清v| 麻豆一区二区三区精品| 日本不卡在线二区三区| 国产三级日产三级韩国三级| 精品久久久久瑟瑟| 九久久精| 午夜影美女日鸡鸡天天视频国产| 黄页18禁| 日韩欧美中文字幕搭讪巨乳美人妻视频| 亚洲熟女乱色一区二区三区| 五月婷婷六月色| 一区二区亚州激情久婷婷欧美| 国产二区三区免费视频| 日本久久网| 亚洲中亚日激情视频| 操逼视频色| 久久久9品一区二区三区| 欧亚 另类 久| 日本一级二级三级网站| 欧美日韩国产电影| 国产精品一区二区手机看片| 久久国产视频性吧| 成人区人妻精品一| 日韩中文字幕在线视频观看| 97在线无精品| 九九精品无码专区免费| 久久嫩草国产成人一区| 亚洲av性爱电影| 欧美不卡在线美女| 色九久| 东京热亚洲一区二区| 国产在线激情| 91站街按摩店老熟女熟女| www.acm成人黄色毛片| A V视频日本| 加勒比伊人综合| 啪啪啪东京| 色综和网| 东京热男人的天堂精品| 人人爽人人精品乱人伦AV| 日本免费人成视频播放120秒| 欧美老妇综合网| 亚洲av无码国产精品字幕| 久久久久中出| 欧美18 在线观看| 爱爱动态试试看6 0秒| 国产超碰AV在线精品| av情色影音| 伊人丁香五月婷婷| 天堂亚洲精品久久老牛| 欧美日韩香蕉| 日本高清视频在线观看黄已三辽| 亚欧国产无码精品在线| 91M一社| 欧美一级三级| 在线视频亚洲无码| 色天使大香蕉| 最新中文字幕在线亚洲| 人妻少妇无码| 熟妇人妻精品一区二区视频色欲| 超碰免费人妻在线| 99热精品国产| 日本视频在线观看污污污| 啊啊啊轻点在线观看| 丁香五月影院| 好色综合| 日韩精品人妻中文字有码在线| 亚洲色图日韩精品| 97这里有精品| 一区二区三区四区五区高清无码永久视频| 黑人精品XXX一区一二区| s片在线观看| 91精品久久久久久综合五月天| 超碰在线人人射| 伊人 俄罗斯 a v| 亚洲超碰在线| 国产无码久久高清| 亚洲综合校园春色| 欧美精品第3页| se吧提供国产乱老熟视频胖女人 | 熟妇一区二区三区| 人人插人人摸人人| 亚洲在线91| juliaann丝袜大战黑鬼| 岛国精品视频在线观看| 91综合色噜噜| 亚洲熟女乱色一区二区三区久久久 | 日韩亚洲Av人人夜夜澡人人爽| 97操b| 乱码熟妇人妻久久久| 蜜桃av综合网发布| 日韩三级在线观看网站| 欧美天天综合站| 日韩国产品视频中文字| 操逼逼中文字幕| 啪啪啪亚欧美视频| 经典丝袜一区| 草b在线| 国产无马av| 国内毛片无遮挡国产| 久久久久久久久9| 蜜臀99999| 91黑丝露脚| 人人爱人人操人人性| 91欧洲国产成人久久精品网站| 久艹99| 日韩精品人妻系列无码天堂| 国产农村一一级特黄毛片| 欧美性爱91| 白丝一区| 91中文字幕制服丝袜免费视频| 日韩美女高潮喷水视频| 欧美黑人猛交春色影视大全| 99热这里只有精品地址| 天天色黄色影院天天操| 国产农村妇女精品| 南澳成人一级片在线播放| 色网综合网| 男人的天堂色偷偷青青草视频婷婷网| 五月婷婷六月色| 人成午夜免费大片| www..com操老师| 亚洲欧洲中文日韩女优乱码| 国内一区二区免费| 久久久久久久9999| 91热色| 99精品高潮| 97超碰久久色| 青青操在线亚洲视频观看欧美在线 | 亚洲爱爱视频一区二区| 成人综合网 欧美| 中文字幕视频一区视频二区| 亚洲中文字幕97久久精品少妇| 婬女免费一二三区A片| 淫荡熟女乱伦网| 一级@啪啪视频| 日韩免费三级黄片电影| 国语av狠狠色丁香婷婷综合激情| 久久区| 啪啪自拍九九综合| 诱惑网综合| 午夜精品久久久久久久久久久久久| 一卡二卡三卡| 超碰偷拍| 强乱老妇中文字幕| 国产精品禁久久久精品| 激情婷婷黑人91| 国产日韩美女小穴视频网站不卡| 天操天操夜操夜月月年年操操| 欧美偷偷网| 国产AV线| 中国和日本人色哪个不下载能放| 女同性恋中文字幕| 亚洲色图 91| 午夜美女诱惑电源网| 东北女人高潮视频| …亚洲黄色厕厕女女在线播…| 欧美性暴力猛交| 国产熟女无套内射| 中文一区二区三区影院| A级国产欧美激情在线| 超碰日韩人妻| 国产一级137片内射麻豆| www.久久最新地址| 亚洲精品一区二区三区在线播放| 久久草在线综合视频| www99热| 亚洲中文制服诱惑| 伊人久久久日韩一区| 骚人妻少妇视频| 偷拍导航视频网站| 尤物视频视频官网| 国产精品成人久久一区二区三区| 国产精品免费日韩| 乱色视频中文字幕| 97超碰色五月| 都市激情人妻一区二区青青操视频| 色网综合网| 无套后入双马尾| 色欲Av人妻精品一区二| 93人人操人人| 国产成人综合网| 91在线限制级| 色悠久久久av| 青草综合| 伦伦成年午夜免费视频| 色爱综合网| 330Dv国产女人终合视频极品人与兽 | 95人妻爽爽人人做人人澡| 久久久9品一区二区三区| 久久人爽| 九九九九九精品视频| A一区片| 婷婷久久五月| 亚洲一区二区三区麻豆传媒| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 日本视频在线中文字幕| 国产女人和拘做爰视频 | 日韩av影片在线观看| 视频二区美腿丝袜制服人妻欧美| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久免费老司机精品| 91路www| 久久男人的天堂| 色综合av男人天堂| 亚洲。日韩。欧美| 青青草华人在线欧美在线| 91啦人妻| 欧美日韩成人在线| 99国内熟女露脸视频| 九七超碰| 日本熟女中文| 九九九九九九九九九五码| 精品国产乱码久久久久久蜜臀| 色综合天天| 亚洲人成色9999精品久久| 加勒比久久av| 国产福利视频精品视频| 天天爽天天| 啊啊啊啊啊好舒服视频| 91一区二区三区蜜桃| 99视频内射三四| 91艹| 妇女性内射冈站HDWWWCOM| 五月丁香| 色综九九九一区| 国产成人手机视频激情| 国产性刺激| site:sinbotex.com| 日本 欧美 国产一区| 亚洲精品一区二区免费在线观看| 热99这里有精品综合久久| 免费亚洲黄色视频在线观看| 日韩一卡二卡三卡| 视频二区美腿制服人妻欧美| 大香蕉啪啪啪| 97日韩欧美亚洲| 久久久久亚洲?V片无码V| 伊人欧美大香蕉视频| 天天综合网久久ww| 日韩一级免费性爱| 精品无码欧美三级| 97天天插| 日韩影片中文字幕一区二区三区| 综合操逼| 亚洲巨爆乳一区二区三区四季网| 丝袜高跟澳门91视频| 性色avv| 国产午夜无码片在线观看影视| 97超碰站| 久久久久久人| 美骚妇av高清在线| 亚洲一级性爱视频免费看| 久久永久无码人妻视频| 国产一区二区三区白丝| 欧美视频边做饭边橾| 99亚洲精品| 青青伊人久久| 我想要 啊 啊 啊| 超97在线精品视频| 男人天堂久久日韩| 久草加勒比一区在线| 婷婷尹人大香蕉免费| 国产成年免费大片黄在线观看| 亚洲久9| 亚洲人人夜夜澡人人爽| 久久国产视频专区一二三| 丁香六月综合激情| 无码免费精品高清| 一区二区三区高清天码| 99国产精品| 欧美 色 亚洲| 91美女国产在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美呦呦性爱| 久久78| 日本黄色精品| 丰满熟女人妻一区二区三五十一路| 69人妻精品丰满熟女区| 亚洲精品819| 天色综合网| 福利五区| 自慰白浆在线观看| 成人三级片一区二区三区视频| 亚洲无限观看| 热久日综合| 久草婷婷| 97久久精品亚洲中六字幕| 91天天看| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 97WW精品| 欧美男人一区| 色五月综合| 亚洲AV无码久久久国产精品| 国产偷拍自拍在线视频| 天堂无码精品国产久| 色在线亚洲视频www| 成人av福利在线观看| 亚洲av无码国产精品字幕| V A在线| 97爱爱爱| 精品久久久av无码免费| 国产精品999aaa| 狠狠婷婷亚洲中文综合久久| 天天综合网日韩| 男人天堂网站| 美女被啪到深处抽搐视频| 啪啪视频免费在线观看| 操逼操2| A级在线视频| 26uuu成人影片| 少妇厨房愉情理伦片bd在线观看| 五月丁香黄色网| 偷拍偷窥与盗摄视频专区| 高清有码一区二区| 日本中文字幕不卡视频 | www.91人妻.com| 精品视频免费在线一区| 美女写真| 桃花色涩综合影院| 99无码视频| 人人爽天天爽| 超碰在线人妻不卡| 亚洲色入欧美| 91n.欧美| 超碰在线91| 日韩欧美性吧婷婷乱伦大香蕉| 免费观看网黄| 91艹B视频| 天天肏夜夜肏| 2011国产精品| 330Dv国产女人终合视频极品人与兽| 熟妇人妻一区二区三在线| 免费99精品国产自在在线| 狠狠色五月亚洲91| 日韩兔费看黄片| 人妻啪| 亚洲午夜福利视频| 色97| 久噜噜| 色97欧美| 在线免费观看高清无码视频| a片自拍直播视频| 国产不卡片| 国产盗摄美女如厕大神作品在线观看| 午夜天堂啪啪| 国产毛片片精品天天看视频 | 久久黄色网址| 五月天成人综合| 日本伦理一区二区| 久久精品视频一区三区小泽玛利亚| 五月天人妻综合| 搡老女人老91妇女老熟女| av天堂精品久久| 欧美色五月| 麻豆影音天美视频| 夜夜精品视频一区二区| 欧美色狠| 国产大学生口爆吞精合集| 午夜免费视频1000| 久婷婷一区| 超碰诱惑| 欧美黄色大片在线观看 | 韩国女主播青草福利视频| AV99热18这里只有精品| 日韩有码中文字幕女同性恋| a片 xxxx受爽视频| 操逼网站视频漫画国产| 强上我不卡卡| 亚洲,欧美,综合网| 高清有码一区二区| 国产精品亚洲免费| 东北女人的毛片| 上床啊啊啊| 口爆吞精在线观看| 丝袜六区| 国产三级中文字幕粉嫩| 久久久久久久久久久免费精品| 国产又爽又黄| 老司机免费视频在线91| 97免费视频在线| 18禁网站在线播放| 国产13区| 久久粉色| 91人妻尻屄视频| 大香蕉欧美伊| 亚洲男人天堂AV| 日韩精品区二区三区不卡| 91欧美| 99热这里只有精| 天天操熟妇| 中文字幕日韩电影人妻| 亚洲丝袜色| 亚洲男人天堂视频| 1000部熟女视频在线观看| 丁香色五月 97干| 91 亚洲情侣偷拍 久久| 国产60页| 激情五月天网| 黄片视频观看| 97色97好| 97 国产精品| 四虎影视永久在线免费| 丰满人妻一区二区三区四| 安微少妇操BBB| 久草视频在线视频在线视频在线观看 | 性爱边摸边日免费AV| 熟妇人妻一区二区 | 亚洲不卡一| 日韩乱中文| 超碰99在线| 亚洲天堂久| 伊人激情五月天一区二区| 天堂精品小草| 人人人摸人人| 强上我不卡卡| 欧美少妇人妻| 在线黄页看毛片| 国内精品99999| 综合色99| 欧美熟妇色| 五月丁香色色网| 国产日韩美女小穴视频网站不卡|