国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

C#與OpenCV實(shí)現(xiàn)工業(yè)級(jí)雙目立體視覺:從標(biāo)定到三維重建全流程

C#與OpenCV實(shí)現(xiàn)工業(yè)級(jí)雙目立體視覺:從標(biāo)定到三維重建全流程 簡(jiǎn)介本資源是一套基于Emgu CV.NET版OpenCV實(shí)現(xiàn)雙目視覺標(biāo)定與3D重建的完整C#工程實(shí)踐方案面向具備基礎(chǔ)圖像處理知識(shí)的.NET開發(fā)者、機(jī)器視覺初學(xué)者及高校課程設(shè)計(jì)者解決雙相機(jī)系統(tǒng)參數(shù)標(biāo)定、視差計(jì)算與三維點(diǎn)云生成等核心問題。壓縮包共50個(gè)文件包含10個(gè)核心C#源碼文件如Form1.cs、Program.cs、3個(gè)可執(zhí)行exe程序、6個(gè)動(dòng)態(tài)鏈接庫dll含Emgu.CV相關(guān)依賴、4個(gè)XML配置與文檔文件以及sln解決方案和csproj項(xiàng)目文件結(jié)構(gòu)清晰開箱即用整體大小僅999KB。已有396人學(xué)習(xí)下載適合快速理解SGBM立體匹配原理、掌握OpenCV在C#中的實(shí)際調(diào)用流程并復(fù)現(xiàn)從單目校準(zhǔn)、雙目標(biāo)定到3D點(diǎn)云可視化的一整套技術(shù)鏈路。1. 項(xiàng)目概述與核心價(jià)值最近在做一個(gè)工業(yè)質(zhì)檢的小項(xiàng)目客戶要求能精確測(cè)量零件上幾個(gè)關(guān)鍵孔的深度和間距誤差得控制在0.1毫米以內(nèi)。用單目相機(jī)加激光測(cè)距的方案試了試發(fā)現(xiàn)對(duì)于復(fù)雜曲面和遮擋部分精度和穩(wěn)定性總是不盡如人意。折騰了一圈最后還是回到了雙目立體視覺這條經(jīng)典且可靠的路子上。所謂雙目就是模仿人的兩只眼睛用兩個(gè)攝像頭從不同角度拍攝同一場(chǎng)景通過計(jì)算視差來獲取深度信息從而重建出物體的三維輪廓。這個(gè)項(xiàng)目的核心就是基于OpenCV和C#來實(shí)現(xiàn)一套完整的雙目標(biāo)定和3D視覺流程。選擇C#是因?yàn)榭蛻舻纳衔粰C(jī)軟件是基于.NET Framework開發(fā)的需要無縫集成而OpenCV則是計(jì)算機(jī)視覺領(lǐng)域的“瑞士軍刀”其calib3d模塊提供了非常成熟的雙目標(biāo)定和三維重建算法。網(wǎng)上關(guān)于PythonOpenCV做雙目標(biāo)定的教程很多但C#版本的、尤其是能深入到生產(chǎn)環(huán)境細(xì)節(jié)的完整分享卻比較零散。這次我就把自己從環(huán)境搭建、相機(jī)標(biāo)定、立體匹配到三維點(diǎn)云生成的全過程以及踩過的那些坑系統(tǒng)地梳理出來。這套方法的價(jià)值在于它不只是一個(gè)實(shí)驗(yàn)室里的算法演示而是一個(gè)可以直接應(yīng)用于工業(yè)現(xiàn)場(chǎng)、嵌入式設(shè)備或科研項(xiàng)目的工程化解決方案。無論是用于機(jī)器人抓取時(shí)的定位、自動(dòng)駕駛中的障礙物檢測(cè)還是像我遇到的精密測(cè)量場(chǎng)景這套基于OpenCV和C#的技術(shù)棧都能提供一個(gè)穩(wěn)定、高效且可定制化的基礎(chǔ)框架。2. 環(huán)境搭建與工具選型解析工欲善其事必先利其器。在開始寫代碼之前搭建一個(gè)穩(wěn)定高效的開發(fā)環(huán)境是第一步這里面的門道不少。2.1 OpenCV的C#綁定選擇Emgu CV vs OpenCvSharp這是C#開發(fā)者接觸OpenCV時(shí)面臨的第一個(gè)抉擇。主流的有兩個(gè)庫Emgu CV和OpenCvSharp。Emgu CV歷史更悠久封裝相對(duì)更“厚重”提供了與.NET框架更深入的集成比如可以直接和Bitmap、Image等.NET原生類型互轉(zhuǎn)。它的API設(shè)計(jì)試圖更貼近.NET風(fēng)格。但它的更新速度有時(shí)會(huì)稍慢于OpenCV主版本且某些高級(jí)或最新添加的OpenCV功能可能支持不及時(shí)。OpenCvSharp這是我最終選擇的方案。它是一個(gè)更“輕量”的封裝其API幾乎與OpenCV C原生API一一對(duì)應(yīng)。這意味著你在查閱OpenCV官方文檔或C代碼示例時(shí)可以幾乎無腦地翻譯成C#代碼學(xué)習(xí)成本和遷移成本極低。它的更新非常活躍能很快跟進(jìn)OpenCV的新特性。通過NuGet安裝極其方便。注意OpenCvSharp有多個(gè)NuGet包。對(duì)于大多數(shù)應(yīng)用安裝OpenCvSharp4和OpenCvSharp4.runtime.win根據(jù)你的系統(tǒng)選擇win、ubuntu等即可。后者包含了OpenCV本地的動(dòng)態(tài)鏈接庫DLL省去了自己編譯和配置環(huán)境變量的麻煩。我選擇OpenCvSharp的核心理由是**“所見即所得”**。做計(jì)算機(jī)視覺項(xiàng)目我們絕大部分時(shí)間是在和OpenCV的算法、參數(shù)打交道。一個(gè)與官方API高度一致的封裝能讓我把精力完全集中在視覺邏輯本身而不是庫的封裝差異上。例如C里的cv::stereoCalibrate在OpenCvSharp里就是Cv2.StereoCalibrate參數(shù)順序和含義完全一致。2.2 開發(fā)環(huán)境與項(xiàng)目配置我使用的是Visual Studio 2022和.NET 6長(zhǎng)期支持版本。創(chuàng)建一個(gè)控制臺(tái)應(yīng)用或WPF/WinForms項(xiàng)目均可。安裝NuGet包通過NuGet包管理器控制臺(tái)執(zhí)行以下命令I(lǐng)nstall-Package OpenCvSharp4 Install-Package OpenCvSharp4.runtime.win如果你目標(biāo)平臺(tái)是x64建議在項(xiàng)目屬性中將“目標(biāo)平臺(tái)”也設(shè)置為x64以避免可能的位數(shù)不匹配問題。準(zhǔn)備標(biāo)定板這是雙目標(biāo)定中最關(guān)鍵的物理工具。通常使用棋盤格Checkerboard或圓點(diǎn)網(wǎng)格Circle Grid。OpenCV對(duì)棋盤格的支持最完善所以我們用它。你需要高精度打印一張棋盤格圖并貼在平整的剛性板如亞克力板、鋁板上。棋盤格每個(gè)方格的實(shí)際物理尺寸例如25.0毫米必須精確測(cè)量這個(gè)值將作為標(biāo)定的已知尺度輸入。技巧打印后最好用游標(biāo)卡尺多次測(cè)量多個(gè)方格的平均尺寸而不是相信打印機(jī)的標(biāo)注。平整度也很關(guān)鍵翹曲的標(biāo)定板會(huì)引入誤差。雙目相機(jī)硬件你可以使用兩個(gè)獨(dú)立的USB相機(jī)組裝需固定相對(duì)位置也可以直接購買集成好的雙目相機(jī)模組。前者靈活便宜但需要自己設(shè)計(jì)機(jī)械結(jié)構(gòu)來固定后者出廠已標(biāo)定但可能更貴。對(duì)于高精度要求建議選擇全局快門的工業(yè)相機(jī)以減少運(yùn)動(dòng)模糊。3. 雙目標(biāo)定原理與實(shí)操全解標(biāo)定的目的是確定相機(jī)的內(nèi)參焦距、光心、畸變系數(shù)和兩個(gè)相機(jī)之間的外參旋轉(zhuǎn)矩陣R和平移向量T。只有知道了這些參數(shù)我們才能將二維圖像點(diǎn)正確地映射到三維空間。3.1 單目標(biāo)定為每只“眼睛”做體檢在進(jìn)行雙目標(biāo)定前必須先對(duì)左右兩個(gè)相機(jī)分別進(jìn)行單目標(biāo)定。這個(gè)過程可以理解為給每個(gè)相機(jī)建立一份“身份證”記錄它自身的成像特性。// 偽代碼流程示意 Size patternSize new Size(9, 6); // 棋盤格內(nèi)角點(diǎn)數(shù)量寬9高6 float squareSize 25.0f; // 每個(gè)方格的實(shí)際尺寸單位毫米 ListPoint3f objectPoints new ListPoint3f(); // 世界坐標(biāo)系中的三維點(diǎn) for (int i 0; i patternSize.Height; i) for (int j 0; j patternSize.Width; j) objectPoints.Add(new Point3f(j * squareSize, i * squareSize, 0)); ListListPoint2f leftImagePoints new ListListPoint2f(); ListListPoint2f rightImagePoints new ListListPoint2f(); // 假設(shè)我們有N組左右相機(jī)同時(shí)拍攝的棋盤格圖片 for (int i 0; i N; i) { Mat leftImg Cv2.ImRead($left_{i}.jpg, ImreadModes.Grayscale); Mat rightImg Cv2.ImRead($right_{i}.jpg, ImreadModes.Grayscale); bool leftFound Cv2.FindChessboardCorners(leftImg, patternSize, out Point2f[] leftCorners); bool rightFound Cv2.FindChessboardCorners(rightImg, patternSize, out Point2f[] rightCorners); if (leftFound rightFound) { // 亞像素級(jí)角點(diǎn)精確化顯著提升標(biāo)定精度 TermCriteria criteria new TermCriteria(CriteriaTypes.Eps | CriteriaTypes.MaxIter, 30, 0.001); Cv2.CornerSubPix(leftImg, leftCorners, new Size(11, 11), new Size(-1, -1), criteria); Cv2.CornerSubPix(rightImg, rightCorners, new Size(11, 11), new Size(-1, -1), criteria); leftImagePoints.Add(leftCorners.ToList()); rightImagePoints.Add(rightCorners.ToList()); // 注意每一組圖片對(duì)應(yīng)的 objectPoints 是相同的 // 通常我們會(huì)維護(hù)一個(gè) objectPointsList每次添加 objectPoints 的副本 } } // 單目標(biāo)定左相機(jī) Mat leftCameraMatrix new Mat(); Mat leftDistCoeffs new Mat(); Cv2.CalibrateCamera(objectPointsList, leftImagePoints, imageSize, leftCameraMatrix, leftDistCoeffs, out Mat[] rvecs, out Mat[] tvecs); // 單目標(biāo)定右相機(jī)同理 Mat rightCameraMatrix new Mat(); Mat rightDistCoeffs new Mat(); Cv2.CalibrateCamera(objectPointsList, rightImagePoints, imageSize, rightCameraMatrix, rightDistCoeffs, out rvecs, out tvecs);關(guān)鍵操作與避坑指南拍攝技巧拍攝15-20組不同方位、不同角度、不同距離的棋盤格圖像。要確保棋盤格在圖像中清晰且盡量布滿整個(gè)視野。左右相機(jī)必須同步拍攝硬件觸發(fā)或軟件同步保證拍攝的是同一時(shí)刻的標(biāo)定板姿態(tài)。角點(diǎn)查找FindChessboardCorners有時(shí)會(huì)失敗尤其是在圖像邊緣或光照不均時(shí)。確保棋盤格對(duì)比度足夠高。打印的棋盤格邊緣最好有留白避免與背景混淆。亞像素優(yōu)化CornerSubPix這一步絕不能省。它將角點(diǎn)定位精度從像素級(jí)提升到亞像素級(jí)對(duì)標(biāo)定精度有決定性影響。標(biāo)定結(jié)果評(píng)估CalibrateCamera會(huì)返回重投影誤差。這個(gè)值反映了標(biāo)定精度一般要小于0.5像素對(duì)于百萬像素相機(jī)。如果誤差過大需要檢查標(biāo)定板平整度、圖片質(zhì)量或角點(diǎn)提取是否正確。3.2 立體標(biāo)定確定“雙眼”的相對(duì)位置在獲得左右相機(jī)的內(nèi)參和畸變系數(shù)后就可以進(jìn)行立體標(biāo)定求解兩個(gè)相機(jī)之間的空間關(guān)系。Mat R new Mat(); // 旋轉(zhuǎn)矩陣 Mat T new Mat(); // 平移向量 Mat E new Mat(); // 本質(zhì)矩陣 Mat F new Mat(); // 基礎(chǔ)矩陣 // 使用之前單目標(biāo)定得到的圖像角點(diǎn)對(duì)和對(duì)象點(diǎn) Cv2.StereoCalibrate( objectPointsList, // 三維世界點(diǎn) leftImagePoints, // 左圖像點(diǎn) rightImagePoints, // 右圖像點(diǎn) leftCameraMatrix, // 左相機(jī)內(nèi)參 leftDistCoeffs, // 左相機(jī)畸變 rightCameraMatrix, // 右相機(jī)內(nèi)參 rightDistCoeffs, // 右相機(jī)畸變 imageSize, // 圖像尺寸 R, T, E, F, // 輸出外參和矩陣 CalibrationFlags.FixIntrinsic, // 標(biāo)志固定已標(biāo)定的內(nèi)參 TermCriteria.Criteria(30, 1e-6) ); Console.WriteLine($旋轉(zhuǎn)矩陣 R:\n{R}); Console.WriteLine($平移向量 T:\n{T}); // T的第一個(gè)分量通常是基線距離兩個(gè)相機(jī)光心的距離核心參數(shù)解讀旋轉(zhuǎn)矩陣 R描述了如何將右相機(jī)的坐標(biāo)系旋轉(zhuǎn)到與左相機(jī)坐標(biāo)系對(duì)齊。平移向量 T描述了右相機(jī)原點(diǎn)相對(duì)于左相機(jī)原點(diǎn)的位置。其中T[0]第一個(gè)元素的絕對(duì)值就是基線距離它是后續(xù)計(jì)算深度的關(guān)鍵。這個(gè)距離的測(cè)量單位與你提供的squareSize一致例如毫米。標(biāo)志位CalibrationFlags.FixIntrinsic這是關(guān)鍵因?yàn)槲覀円堰M(jìn)行了高精度的單目標(biāo)定所以在立體標(biāo)定時(shí)應(yīng)固定內(nèi)參只優(yōu)化外參(R, T)。如果不固定算法會(huì)同時(shí)優(yōu)化內(nèi)外參可能反而會(huì)破壞已標(biāo)定好的內(nèi)參引入額外誤差。3.3 立體校正讓圖像行對(duì)齊標(biāo)定完成后我們得到了兩個(gè)相機(jī)的關(guān)系。但原始拍攝的左右圖像是存在旋轉(zhuǎn)和偏移的。立體校正的目的就是通過數(shù)學(xué)變換將左右圖像“投影”到同一個(gè)平面上使得左右圖像中的對(duì)應(yīng)點(diǎn)只在水平方向x軸有差異即視差而在垂直方向y軸完全對(duì)齊。這極大簡(jiǎn)化了后續(xù)尋找匹配點(diǎn)的搜索過程從二維搜索變?yōu)橐痪S搜索。Mat R1 new Mat(), R2 new Mat(); Mat P1 new Mat(), P2 new Mat(); Mat Q new Mat(); // 視差轉(zhuǎn)深度矩陣是后續(xù)3D重建的關(guān)鍵 Rect validRoi1, validRoi2; Cv2.StereoRectify( leftCameraMatrix, leftDistCoeffs, rightCameraMatrix, rightDistCoeffs, imageSize, R, T, out R1, out R2, out P1, out P2, out Q, StereoRectificationFlags.ZeroDisparity, // 讓校正后的圖像主點(diǎn)對(duì)齊 -1, // alpha值-1表示自動(dòng)裁剪0表示保留所有黑邊1表示不保留黑邊但損失部分圖像 new Size(0, 0), out validRoi1, out validRoi2 ); // 計(jì)算校正映射表 Mat leftMap1 new Mat(), leftMap2 new Mat(); Mat rightMap1 new Mat(), rightMap2 new Mat(); Cv2.InitUndistortRectifyMap(leftCameraMatrix, leftDistCoeffs, R1, P1, imageSize, MatType.CV_32FC1, leftMap1, leftMap2); Cv2.InitUndistortRectifyMap(rightCameraMatrix, rightDistCoeffs, R2, P2, imageSize, MatType.CV_32FC1, rightMap1, rightMap2); // 對(duì)任意新圖像進(jìn)行校正 Mat leftRectified new Mat(); Mat rightRectified new Mat(); Cv2.Remap(leftOriginal, leftRectified, leftMap1, leftMap2, InterpolationFlags.Linear); Cv2.Remap(rightOriginal, rightRectified, rightMap1, rightMap2, InterpolationFlags.Linear);校正效果驗(yàn)證校正后你可以畫一些水平線貫穿左右圖像觀察同一場(chǎng)景特征點(diǎn)是否基本落在同一水平線上。這是判斷校正是否成功最直觀的方法。實(shí)操心得StereoRectify中的alpha參數(shù)是個(gè)平衡藝術(shù)。設(shè)為-1自動(dòng)或0比較穩(wěn)妥會(huì)保留有效區(qū)域但可能有黑邊。如果你需要最大化利用圖像區(qū)域可以嘗試調(diào)整alpha0~1但務(wù)必檢查validRoi確保后續(xù)處理只使用兩個(gè)ROI的交集部分否則邊緣區(qū)域會(huì)因缺少對(duì)應(yīng)點(diǎn)而產(chǎn)生錯(cuò)誤。4. 立體匹配與視差圖計(jì)算這是雙目視覺中最核心、最耗計(jì)算資源的步驟。目標(biāo)為左圖的每一個(gè)像素在右圖上找到其對(duì)應(yīng)的匹配點(diǎn)并計(jì)算它們?cè)谒椒较蛏系南袼刈鴺?biāo)差這個(gè)差值就是視差。4.1 匹配算法選擇BM、SGBM與深度學(xué)習(xí)OpenCV主要提供了兩種傳統(tǒng)算法BMBlock Matching塊匹配StereoBM bm StereoBM.Create(numDisparities, blockSize); bm.Compute(leftGray, rightGray, disparityMap);原理對(duì)左圖一個(gè)像素塊在右圖同一水平線上滑動(dòng)搜索最相似的塊。簡(jiǎn)單快速。缺點(diǎn)對(duì)紋理稀疏區(qū)域、重復(fù)紋理和光照變化敏感容易產(chǎn)生“條紋狀”噪聲。適用對(duì)實(shí)時(shí)性要求極高且場(chǎng)景紋理豐富的場(chǎng)合。SGBMSemi-Global Block Matching半全局塊匹配StereoSGBM sgbm StereoSGBM.Create( minDisparity, // 最小視差 numDisparities, // 視差搜索范圍 numDisparities / 16 blockSize, // 匹配塊大小必須為奇數(shù) P1 8 * channels * blockSize * blockSize, // 懲罰系數(shù)1 P2 32 * channels * blockSize * blockSize, // 懲罰系數(shù)2 disp12MaxDiff 1, // 左右一致性檢查最大容差 preFilterCap 63, // 預(yù)濾波圖像像素的截?cái)嘀?uniquenessRatio 10, // 唯一性檢測(cè)比例 speckleWindowSize 100, // 視差連通區(qū)域斑點(diǎn)濾波窗口大小 speckleRange 32, // 視差斑點(diǎn)濾波范圍 mode StereoSGBM.Mode.SGBM ); sgbm.Compute(leftGray, rightGray, disparityMap);原理在BM的基礎(chǔ)上引入了一維路徑代價(jià)聚合和動(dòng)態(tài)規(guī)劃通過多個(gè)方向的一維約束來近似二維的全局能量最小化。效果比BM好很多。優(yōu)點(diǎn)能較好地處理弱紋理區(qū)域視差圖更平滑、完整。缺點(diǎn)計(jì)算量比BM大。適用絕大多數(shù)對(duì)精度有要求的應(yīng)用場(chǎng)景是默認(rèn)推薦選擇。參數(shù)調(diào)優(yōu)經(jīng)驗(yàn)numDisparities必須是16的整數(shù)倍。它決定了可探測(cè)的最近距離。設(shè)得越大能看到的物體越近但計(jì)算量也越大且可能引入噪聲。一般根據(jù)基線距離和相機(jī)焦距估算一個(gè)最大值。blockSize匹配窗口的邊長(zhǎng)奇數(shù)。越大抗噪聲能力越強(qiáng)但邊緣會(huì)越模糊。通常在3~21之間奇數(shù)嘗試。紋理豐富的場(chǎng)景用小窗口如5紋理弱的用大窗口如11。P1, P2懲罰系數(shù)控制視差平滑度。P2P1。通常按上述公式設(shè)置是個(gè)不錯(cuò)的起點(diǎn)。uniquenessRatio唯一性檢測(cè)。值越大匹配要求越嚴(yán)格能過濾錯(cuò)誤匹配但也可能增加無效點(diǎn)視差為0。通常5-15。speckleWindowSize和speckleRange用于過濾視差圖中小的孤立斑點(diǎn)噪聲。對(duì)于有紋理的場(chǎng)景非常有效。4.2 視差圖后處理直接由SGBM計(jì)算出的視差圖disparityMap是16位有符號(hào)整數(shù)CV_16S格式其中每個(gè)像素的值是真實(shí)視差值乘以16。并且包含大量噪聲和無效值通常為負(fù)數(shù)或0。// 1. 轉(zhuǎn)換為浮點(diǎn)視差圖并除以16 Mat disparityVis new Mat(); disparityMap.ConvertTo(disparityVis, MatType.CV_32F, 1.0 / 16.0); // 2. 過濾無效視差例如SGBM中最小視差以下的區(qū)域 Mat mask disparityVis minDisparity; disparityVis.SetTo(0, ~mask); // 將無效區(qū)域設(shè)為0 // 3. 可選中值濾波或雙邊濾波平滑視差圖并保持邊緣 Mat filteredDisparity new Mat(); Cv2.MedianBlur(disparityVis, filteredDisparity, 5); // 或 Cv2.BilateralFilter(disparityVis, filteredDisparity, 5, 50, 50); // 4. 可視化將視差范圍歸一化到0-255以便顯示 Mat disparityDisplay new Mat(); Cv2.Normalize(filteredDisparity, disparityDisplay, 0, 255, NormTypes.MinMax, MatType.CV_8U);處理后的disparityVis才是每個(gè)像素點(diǎn)真實(shí)的視差值單位像素。5. 三維點(diǎn)云重建與深度計(jì)算有了校正后的圖像對(duì)、精確的視差圖以及立體校正生成的重投影矩陣Q我們就可以將二維圖像坐標(biāo)(x, y)和其對(duì)應(yīng)的視差d通過一個(gè)簡(jiǎn)單的矩陣乘法變換到三維世界坐標(biāo)(X, Y, Z)。5.1 使用重投影矩陣QQ矩陣在StereoRectify中已經(jīng)得到。它的作用是將(x, y, d, 1)齊次坐標(biāo)映射到(X, Y, Z, W)。// 假設(shè) disparityVis 是 CV_32F 類型的有效視差圖 Mat xyz new Mat(); // 輸出將是 CV_32FC4 的Mat每個(gè)像素有4個(gè)通道 (X, Y, Z, W) Cv2.ReprojectImageTo3D(disparityVis, xyz, Q, handleMissingValues: true, ddepth: MatType.CV_32F); // 訪問某個(gè)像素的三維坐標(biāo) int row 300, col 400; Vec4f point xyz.AtVec4f(row, col); float X point[0] / point[3]; // X X / W float Y point[1] / point[3]; // Y Y / W float Z point[2] / point[3]; // Z Z / W 這就是深度 if (point[3] 0) // W為0表示無效點(diǎn)如視差為0 { // 該點(diǎn)三維坐標(biāo)無效 } else { Console.WriteLine($3D Coordinate at ({col}, {row}): X{X:F2}mm, Y{Y:F2}mm, Z{Z:F2}mm); }深度Z的計(jì)算原理 根據(jù)三角形相似原理深度Z f * B / d。 其中f是相機(jī)焦距像素單位已包含在Q矩陣中。B是基線距離兩個(gè)相機(jī)光心的距離單位毫米也已包含在Q矩陣中來自平移向量T。d是視差像素。ReprojectImageTo3D函數(shù)內(nèi)部就是利用Q矩陣高效地完成了這個(gè)計(jì)算。5.2 點(diǎn)云的可視化與處理得到的xyz矩陣就是一個(gè)密集的點(diǎn)云。你可以將其導(dǎo)出為PLY或PCD等格式用CloudCompare、MeshLab等軟件查看。// 簡(jiǎn)單示例將有效點(diǎn)云導(dǎo)出為PLY格式ASCII using (StreamWriter sw new StreamWriter(pointcloud.ply)) { sw.WriteLine(ply); sw.WriteLine(format ascii 1.0); sw.WriteLine($element vertex {validPointCount}); sw.WriteLine(property float x); sw.WriteLine(property float y); sw.WriteLine(property float z); sw.WriteLine(end_header); for (int i 0; i xyz.Rows; i) { for (int j 0; j xyz.Cols; j) { Vec4f pt xyz.AtVec4f(i, j); if (pt[3] ! 0) // 有效點(diǎn) { float x pt[0] / pt[3]; float y pt[1] / pt[3]; float z pt[2] / pt[3]; sw.WriteLine(${x} {y} {z}); } } } }在C#中你也可以集成像HelixToolkit這樣的3D渲染庫在WPF應(yīng)用中實(shí)時(shí)顯示點(diǎn)云。6. 工程實(shí)踐中的常見問題與深度優(yōu)化理論跑通只是第一步讓系統(tǒng)在實(shí)際環(huán)境中穩(wěn)定、精確地工作才是挑戰(zhàn)。6.1 標(biāo)定精度提升技巧多姿態(tài)、全覆蓋拍攝標(biāo)定板時(shí)不僅要左右上下移動(dòng)還要有繞X、Y、Z軸的旋轉(zhuǎn)讓標(biāo)定板出現(xiàn)在圖像的所有區(qū)域特別是四個(gè)角落。這能幫助相機(jī)模型更好地?cái)M合整個(gè)成像平面。光照均勻避免反光和陰影。均勻的漫射光是最理想的。棋盤格黑白對(duì)比要鮮明。延遲與同步如果使用兩個(gè)USB相機(jī)務(wù)必確保軟件觸發(fā)同步或者使用硬件觸發(fā)。異步拍攝會(huì)導(dǎo)致左右圖像不對(duì)應(yīng)標(biāo)定必然失敗。標(biāo)定板質(zhì)量使用玻璃或金屬基底的高精度標(biāo)定板。紙質(zhì)打印受溫濕度影響會(huì)變形。6.2 立體匹配的“老大難”問題無紋理區(qū)域如白墻、純色物體傳統(tǒng)算法BM/SGBM在此完全失效視差圖會(huì)出現(xiàn)大面積空洞。解決方案增加紋理工業(yè)上常用投影結(jié)構(gòu)光如激光線、光柵來主動(dòng)創(chuàng)造紋理。算法上可以嘗試更大的blockSize或采用代價(jià)濾波如cv::ximgproc模塊中的DisparityWLSFilter來引導(dǎo)匹配。后處理使用圖像修復(fù)Inpainting或基于鄰域的有效視差插值來填充空洞但這會(huì)損失精度。遮擋區(qū)域由于視角不同某些區(qū)域只在其中一個(gè)相機(jī)中可見。SGBM的disp12MaxDiff參數(shù)和左右一致性檢查L(zhǎng)eft-Right Consistency Check可以部分檢測(cè)并剔除這些區(qū)域的錯(cuò)誤匹配。深度不連續(xù)處物體邊緣這里視差會(huì)發(fā)生跳變匹配容易出錯(cuò)導(dǎo)致邊緣“膨脹”或“鋸齒”。使用較小的blockSize和更精細(xì)的代價(jià)聚合方法如SGM的變種可以改善。6.3 性能優(yōu)化與實(shí)時(shí)性考慮SGBM計(jì)算量較大。在C#中處理高分辨率圖像如1280x720可能無法達(dá)到實(shí)時(shí)30fps。降低分辨率在對(duì)深度范圍要求不極端的情況下先將圖像下采樣再計(jì)算視差然后上采樣回去速度提升顯著。ROI限制如果只關(guān)心圖像中特定區(qū)域的深度只對(duì)該區(qū)域進(jìn)行立體匹配。參數(shù)調(diào)整減小numDisparities和blockSize能直接提速但會(huì)犧牲精度和深度范圍。硬件加速OpenCV的某些算法如cv::cuda::StereoBM、cv::cuda::StereoSGM有CUDA加速版本。但這需要NVIDIA GPU和編譯了CUDA支持的OpenCV。在C#中調(diào)用這些需要更復(fù)雜的封裝或考慮使用C編寫核心算法模塊通過DLL供C#調(diào)用。并行處理利用C#的Parallel.For或Task并行處理圖像的不同行需注意OpenCV對(duì)象線程安全。6.4 系統(tǒng)集成與測(cè)量應(yīng)用在我的工業(yè)測(cè)量項(xiàng)目中最終流程如下初始化加載預(yù)先標(biāo)定并保存好的相機(jī)參數(shù)cameraMatrix,distCoeffs,R,T,Q,mapx/y。采集通過AForge.NET或OpenCvSharp的VideoCapture同步采集左右圖像。預(yù)處理校正Remap- 去噪GaussianBlur- 增強(qiáng)對(duì)比度CLAHE。立體匹配使用調(diào)優(yōu)后的SGBM參數(shù)計(jì)算視差圖。后處理視差濾波、空洞填充。三維重建ReprojectImageTo3D得到點(diǎn)云。測(cè)量在左圖校正后上通過鼠標(biāo)點(diǎn)擊選擇兩個(gè)點(diǎn)根據(jù)這兩點(diǎn)對(duì)應(yīng)的三維坐標(biāo)計(jì)算歐氏距離。// 簡(jiǎn)化的距離測(cè)量邏輯 Point2d pixelPoint1 new Point2d(100, 200); // 圖像點(diǎn)1 Point2d pixelPoint2 new Point2d(300, 250); // 圖像點(diǎn)2 // 獲取視差值注意坐標(biāo)轉(zhuǎn)換 float disp1 disparityVis.Atfloat((int)pixelPoint1.Y, (int)pixelPoint1.X); float disp2 disparityVis.Atfloat((int)pixelPoint2.Y, (int)pixelPoint2.X); if (disp1 minValidDisparity disp2 minValidDisparity) { // 反投影到3D Vec4f pt1 xyz.AtVec4f((int)pixelPoint1.Y, (int)pixelPoint1.X); Vec4f pt2 xyz.AtVec4f((int)pixelPoint2.Y, (int)pixelPoint2.X); Vec3f worldPt1 new Vec3f(pt1[0]/pt1[3], pt1[1]/pt1[3], pt1[2]/pt1[3]); Vec3f worldPt2 new Vec3f(pt2[0]/pt2[3], pt2[1]/pt2[3], pt2[2]/pt2[3]); // 計(jì)算歐氏距離 double distance Math.Sqrt( Math.Pow(worldPt2.Item0 - worldPt1.Item0, 2) Math.Pow(worldPt2.Item1 - worldPt1.Item1, 2) Math.Pow(worldPt2.Item2 - worldPt1.Item2, 2) ); Console.WriteLine($Measured Distance: {distance:F3} mm); }精度驗(yàn)證我使用高精度量塊作為基準(zhǔn)反復(fù)測(cè)試。發(fā)現(xiàn)影響最終測(cè)量精度的關(guān)鍵按重要性排序依次是標(biāo)定板物理尺寸精度 標(biāo)定板平整度 相機(jī)同步性 立體匹配算法參數(shù) 圖像分辨率。在良好條件下在1米工作距離上達(dá)到0.1%的相對(duì)測(cè)量精度即1米誤差1毫米是可行的。這套基于OpenCvSharp和C#的雙目視覺系統(tǒng)從原型到穩(wěn)定運(yùn)行花了近兩個(gè)月時(shí)間大部分時(shí)間都耗在標(biāo)定流程的標(biāo)準(zhǔn)化、匹配參數(shù)的精細(xì)調(diào)優(yōu)以及異常情況的處理上。它現(xiàn)在安靜地運(yùn)行在客戶的車間里替代了原來的人工抽檢??粗€(wěn)定地輸出一個(gè)個(gè)精確的測(cè)量數(shù)據(jù)感覺那些熬夜調(diào)參、對(duì)著滿是噪聲的視差圖發(fā)呆的日子都值了。如果你也在嘗試類似的項(xiàng)目我的建議是耐心做好標(biāo)定它是所有精度的基石理解每一個(gè)算法參數(shù)背后的物理意義而不是盲目試錯(cuò)最后用真實(shí)場(chǎng)景的數(shù)據(jù)去驗(yàn)證和迭代你的系統(tǒng)。視覺項(xiàng)目一半是算法一半是工程。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九九国产| 美女诱惑一区| 久久精品国产精品一区 | 日本高清有码网址视频| 乱码熟妇人妻久久久| 亚洲骚男同com| 乱伦色图网址是多少| 国产自产91区13区| 激情小说在线视频| 97超碰色五月| 无码精品啪啪啪一区二区三区三州 | 99自拍视频在线| 人妻人人澡人人爽人人| 思思热一热婷婷热一热| 99国内精品| 欲色综合| 超碰调教97| 美女十八禁| 377p欧洲日本亚洲大胆| 亚州色图狠狠干| 国产精品诱惑| 麻豆60秒| av三级电影在线播放| 亚洲色五月| 四虎影视国产精品| 伊人网av| 久久 精品| 激情小说五月天| 欧美成人精品一区二区男人蜜臀| 综合色图区| 久久人妻少妇| 91亚洲不卡一区| 好爽视频在线观看视频| 欧美超碰人妻97| 人妻一区视频| 激情文学小说一区二区| 天天操天天舔| 欧美精品三级黄片| 色偷偷色偷偷欧美日韩| 国产午夜无码片在线观看影视| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 操屄日韩| 欧天美中出| 久久社区一区二区三区| 夜夜久久久| 五月婷婷丁香六月| 亚洲一区二区三区在线激情| 欧美影音在线| 极品五月天噜噜| 在线免费观看高清无码视频| 天天色踪合| 人妻熟女av国产网站| 天堂亚洲精品| 中文字幕一区 二 区 三 四 五 区日 日 骚| 亚洲日韩精品一区二区| 青青草国产一区二区三区| 日韩人妻制服丝袜av| 91视频女生| 丰满人妻一区| 男人的天堂免费| 久久啊哟| 亚洲欧美日韩精品久| 日韩人人精品| 国产精品乱人伊人网| 日韩精品字幕| 日韩肏逼视频| 狠狠躁日日躁夜夜躁A| 久久亚洲AV成人精品无码| 208天天久久九九九| 小少妇| A级在线视频| 新视频sss国产| 久久精品国产亚洲AV无码电影| 91久久国产精品| 亚洲官网在线| 任你艹| 一级岛国大片| 91亚洲情色| 男人的天堂欧美| 国产免费一区在线观看| av在线观看不卡网站| 久久亚洲一区女同性恋中文字幕| 淫乱图区 | 久操大香蕉手机视频在线看| 人妻中文字幕精品无码| 加勒比色99999| 欧美亚洲一区二区久久久婷精品大包诱| 亚洲九月丁香| 国产精品永久免费10000| 人人澡人人澡人人| 亚州春色| 亚州综合色图| 亚洲熟妇熟在线电影视频| 99热这里只有精| 岛国激情视频在线观看| 天美精品原创av片国产| 96精品久久| 人妻少妇色综合| 99少妇精品视频| 天天干夜夜一操| 91老熟妇| 9999久久久| 天天舔天天日天天射| 精品超碰中文在线| aⅴ日韩成人电影av在线免费看av大全| 吻戏激情性巴克| 91热情品| 97超碰色五月| 国产伦精品一区二区三区视频女| 亚洲AV成人在线| 欧美强奸乱能| 欧美日韩性爱无码| 亚洲一卡2卡3卡4卡乱码网站| 丰满人妻一区二区三区性色| 久艹日日日| 青青操国产夫妻| 久久久久久免费电影| 国产中文福利| 精品人妻夜夜草| 五月天婷婷基地| 久久AV无码网址| 女欧美一区二三区| 日韩精品人妻一区二区| 九九九草| 人人妻人人色一区二区三区| 欧美手机在线综合| 久草综合网| 久久国产精品视频| 精品人妻久久久| 免费视频观看60秒| 天天看天天干| 免费看黄视频亚洲网站| 亚洲色图A| 夜夜嗨av午夜成人| 一二区在线观看视频| 久久av无码| 日本乱人伦片中文三区| 淫荡少妇免费| 国产 v乱码一区二| 久久久com| 欧美啪啪女女| 黑人中出21连凳花野真衣| 中文一区二区婷婷视频| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 99精品网| 欧美激情视频一区二区三区不卡| 猛交交| 国产精品久久久视频| 欧美精品双插| 欧美偷| 中日韩一区二区三区欧美| 午夜一级免费毛片| 久久99久久99久久99人受| 爱媛媛久久国产福利| 91oumei| julia在线观看久久| 成人欧美日超碰| 欧洲色综合| 一区AV| 日本操嫩b网| 东京热亚洲一区二区| 德国一二三不卡| 9ⅰ久久久天天| 日韩人妻无码不卡网站| 国产白嫩漂亮KTV在线| 日韩九区| 男人的天堂在线| 日日骚中文字幕| 五码视频在线观看| 久久五月份| 九九九久久久久| 久久久久9999精品九九九| 精品久久久久成人码免| 欧美区亚洲区偷拍区| 图片区小说区| 97精品国产精品免费观看| 欧美se综合| 黄人人操人人操| 色优久久| 91久久久久久久久18| 国产成年免费大片黄在线观看| 国产九月婷婷| 97超色| 九九综合九九综合| 人妻丝袜无 码视频专区| 大香蕉综合久久| 老司机免费视频在线91| 97国产|免费| 理论久久婷婷网8| 91精品久久久久久77777| 香蕉一区二区三区在线视频| 丁香六月综合激情| 亚洲电影91| 久九色| 日韩人妻播放| 1024午夜激情男人的天堂| 亚洲黄色a级片| 青青操轻轻| 毛片麻豆91糖心精品毛情片| 天天干天天燥| 97精品在线| 久久久久亚洲?V片无码V| 骚逼一区二区| 亚洲成?V人片在线观看福利| 亚洲国产蜜臀系列在线观看| 久久久夜夜嗨免费视频| 中文字幕精品亚洲熟女| 曰韩av中文字幕专区| 人妻素股| 欧美亚洲玖玖玖| 中国一级αV| 天堂日本亚洲欧美| 日韩乱伦AⅤ| 丁香婷婷激情五月天无毒不卡| 91成人久久| 久久这里只精品| 亚洲精品无码久久AV| 激情婷婷丁香网| 蜜臀av在线播放一区二区三区| 97在线视频免费| 9超碰免费| 人妻aa| 老熟女综合| 久久专区| 日韩97超碰| 色女综合| 亚洲精品视频在线| a天堂视频| 九九碰九九爱97超| 青青草原av| 粉嫩AV一区夜夜嗨| 青青草在线成人视频| 人人摸人人叼| 日韩Va亚洲va欧美Ⅴa久久| 亚洲欧美另类图片| 欧洲亚洲人人爽爽视频| 色好看av| 色老汉色| 久久久9视频| 黄色电影在线播放综合网站| 91美女小视频| 综合 亚洲 欧美| 精品999999| 亚洲图片欧美另类综合免费视频大大香| 五月丁香综合激情| 欧美日韩免费性爱| 人妻少妇无码| 啪啪啪东京| 欧美最婬乱婬爆婬牲视频| 亚州色阁| 亚洲好色人妻| 欧洲综合色| 亚洲美腿丝袜香蕉影视欧美成人| 天堂亚洲欧美| 秋霞色色影院| 看免费的黄片| 插穴性爱视频在线观看| 淫荡熟女乱伦网| 九九色婷婷| 91丨九色丨东北熟女| 大鸡巴久久久| 亚洲国产中文字幕| 麻豆天美在线| 欧美综合娱乐久久| 熟女突然公开看18禁影片| 色情成人五月天| 日本精品人妻少妇一区二区| 97精品在线| 欧美草草高清日韩视频| 天天射天天操天天干天天吃2018| 久久久久久一日韩字幕无码| 五月天色图| 男人下部插入女人下部| 内射中国少妇高清视频免费视频 | 9丨久久九九九| 欧美丝袜美女电影一二三四区| 欧美玖玖爱免费玖玖| 国产日韩区| 97色色色综合网站| 男人天堂无码| 正在播放国产精品一区| 精品国产网站| 成人片视频| 国产成人自拍视频视频| 日本不卡二三区| 永久免费观看的毛片的网站| 91Chinese在线| 97就爱干| 国产精品老师| 九九热午夜欧亚国产视频| 久久国产AⅤ| 色嘟嘟人妻天堂网| 97免费在线观看| 婷婷尹人大香蕉免费| 99精品无码| 成人亚欧免费视频| 97久久天天综合色天天综合色电影| 欧美天天弄| 日本色婷婷| AV中文字幕三四五| 亚洲天堂综合AV| 日日夜夜摸| 天美传媒国产原创中文字幕亚洲欧美另类 | 欧美线天码中字| 欧美日韩不卡a片| 99蜜桃臀久久久欧美精品网站| 国产资源中文字幕在线| 日本999精品视频| 久久av一级av少妇av高潮| wwe 天天干.com| 一区二区乱码福利| 99热 按摩 日韩| 看日韩美女二区三区免费操逼视频| A级国产欧美激情在线| av麻豆啪啪| aaaa少妇高潮大片| 色97干| 亚洲欧洲无码97久久精品| 久久久一级| 97超碰色色| 精品二区三四区五电影 | 97人人爱人人做人人乐| 国模精品娜娜一二三区| www黄片免费看com| 岛国激情视频软件| AV一区观看| 肏逼福利网站| 97在线观看免费视频| 久久久96| 欧美一级黄色免费专区| 欧美高清无码免费视频高清版| 爱爱动态60秒| 淫荡网址| 午夜操逼不卡| 国产浮力影院第1页| 日韩国产成人自拍视频| 中日韩熟女| 国产情侣自拍在线播放| 一区二区 韩日AV| 97色伦欧美| 狠狠操一区二区| 日韩精品三级片长长久久| 亚州欧美综合| 久久一区二区加油站| 日本人人操人人操| 亚洲夜夜欢无码一区二区| 久久五十路熟女人妻| 中文?日韩?免费?精品| 国产精品白丝AV| 啊啊啊啊啊啊啊啊要喷了| 麻豆一区在线| 激情人妻另类| 国产av色网| 夜夜免费视频| 久操免费电影| 欧美91变态| 9国产超碰| 一块操欧美性爱| 国产老熟女| 精品国产乱码久久久影院| jizz啪啪| 又大又白奶子| 99re在线视频国产| 人人性爱视频免费| 色999五月色| 人妻少妇色综合| 国产辣妈在线视频福利| 久久老子无码午夜伦不卡| 天天综合有色网| 超碰97国产欧美| www亚洲免费| 久久发布国产伦子伦精品| 99热国产| 丝袜熟女一区二区三区| 亚洲限制级| 精品无码一区二区三区| 欧美成人都市人妻| 97精品一区| 九月丁香综合网| 麻豆一区二区三区精品| 中文一区二区婷婷视频| 精品九九| 国产400孕妇孕交群| 久久久久亚洲Aⅴ无码| 99精品久久久久久| 三级AV入口| 啊操爽品善一区二区三区| 九九九久久久| 激情亚洲天堂| 2017人人操,人人摸| 久久伊人青青草| 蜜乳中文字幕a在线| av婷婷色网| 亚洲最新Av| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 熟妇女伦乱视频视频| 盗摄女人妻在线| AV男人天堂网| 色色五月婷婷| 国内毛片热久久思思热| 欧美亚洲丝袜美女电影| se吧提供91精品国产91久久久久久 | 97欧美日韩综合| 婷婷六月天| 超碰精品日韩欧美国产| 婷婷香网站| 日韩国产中文字幕| 无码精品久久久久久亚洲| 久久视网78| 日韩性爱网址| 91性色| 亚洲人码13| 日韩人妻操B| 爽极品影院| 日本2020一区二区| 欧美内射少妇| 欧美日韩91| 国产一区二区免费福利片| 青娱乐亚洲自拍| 六十路日本| 亚州黄站| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 中亚av| 人妻熟女字幕一区二区| 亚洲欧洲色情高清| 青春草莓视频在线观看网址| 免费一级特黄特色大片在线观看看| 成人午夜高潮av猛片| 色乱二区| 黄色性爱网网| 久久五月综合| 尤物网址| 高潮的A片激情扒开一区| 在线看免费无码AV天堂的| 99ri视频| 久久黄色性爱视频| av网站免费线看| 五月综合婷婷久久网站| 大黄片做爱的大的| 婷婷丁香五月天亚洲天堂网| 激情四射五月天| 天天夜躁日日躁狠狠2002| 啪啪啪男女亚洲中文字幕99| 人人妻人人爱人人玩| 免费少妇一区二区| 正在播放国产精品一区| 韩国嫰模上门援交视频| 天天看,天天做| 少妇三p| 亚洲天堂色图| 男人的天堂啪啪| 人妻天天操天天爽视频免费| 青娱乐 成人娱乐在线| 一区二区激情国产熟女| 夜夜操2028| 婷婷六月色| 欧美色色人| 超碰激情808| 亚洲欧美伦综合| 99re6国产精品99re在线| 少妇精品| 性爱Av免费| 啊啊啊好多水| 三四中文字幕| 97视频一区| 九九九九精品一区| 春色校园综合网| 日韩精品99999| 精品一区二区综合熟妇| 国产又黄又爽又刺激久久久久久| 91性色| 国产9熟妇视频网站| 中文字幕乱偷人妻久久艾草网| 天天天肏屄欧美| 黄色污污污污污污网站| 婷婷五月天补不补| 色哟哟的毛片| 理论久久婷婷网 8| 99久久无色码| 日韩熟女精品无码专区一区二区| ′ !γ}丶。。久久精品欧美一区二区三区| 精品玖九九久| 免费一级欧美片片线观看| 热热色国产一二区AV| 午夜久久无码1000合集| 色路综合| 青青草在线视频人人想人人上| 国产一级高清免费观看| 91丝袜美腿网站| se吧提供91精品国产91久久久久久| 欧美日韩电影一区二区| 亚欧Av| 成人性交免费视屏| 性色乱AV一区二区| 密乳AV免费观看| 九九九九97| 操99| 人人爱人人乐人人操| 天美欧美国产| 久久综合九九| 操婢日韩| 欧日韩一二三f区| 青青草在线成人视频| 亚洲图片色图欧美另类| 一本大道久| 亚洲城人男人的天堂| 高清无码一区二区三区| 欧美啪啪啪91| 蜜臀AV成人精品蜜臀| 在线观看av区| 另类亚洲一区二区三区| 久久视频,这里只有精品| 在线日韩视频| 一区不卡在线观看av| 天天综合网合集91| 国产女人高潮视频| 天天操天天射天天日| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美日韩第一页| 久久久久亚洲| 久久久草草精品| 五月激情综合网| 国产日韩欧美操逼视频| 欧美性爱超碰97| 九九热超碰97亚洲最新香蕉| 国产在线精品偷| 欧美组图日韩亚洲中文字幕| 208天天久久九九九| 一区二区三区 丝袜 高跟 美腿| 亚洲国产av中文字幕久久| 色香网| 少妇同性| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 3p国产欧美99热| 久久欲| 国产精品国产精品国产| 日本久久久久久久久久| 亚州欧美一区| 精产国品一区二三产品| 99热免费| 欧美毛片在线网| 蜜乳av首页| 亚洲欧综合另类无码一区| 久久精品国产亚洲AV清纯| 久久男人| 日本ZZ高免费A级视频| 精品小视频在线| 国产精品一区二区在钱播放| 五月开心网| 911粉嫩人妻| 精品成人动漫一区二区| 国产精品亚洲色婷婷久久久| 九九碰九九爱97超碰| 中国91AV| 久久东京热成人| 东北操逼| 懂色av中文字幕| 91视频女生| 亚洲清纯综合| 天天欲望网| 久久久久女教师免费一区| 青操影院| 97在线/亚洲| 狠狠入| 伊香蕉综合久久久久久久噜噜噜| 日日97| 欧美欧美少妇| 亚洲高清自拍| 精品欧美老熟女一二区| 午夜福利国产欧美日韩夜夜| 91啦人妻| 国产绿奴视频在线观看| 日韩欧美中文| 女人高潮大叫一级毛片| 人妻熟女一区在| 欧美性天天影视| 中文字幕乱碼在线| 亚洲日产专区婷婷| 亚洲欧美激情小说| 亚洲乱妇p22| 中文字幕日韩精品久久| 国产福利小视频高清在线观看| 18禁超污无遮挡无码免费网| 99性爱| 欧美日韩人人精品| 偷拍五区| 黄页| 日韩激情啪啪啪| 破苞ⅩXXX性无码动漫无码| 五月综合久久| 色情亚洲日本成人| 五月天日日操夜夜操| 日本一区不卡| 久久东京伊人一本到鬼色| 午夜免费福利视频一区| 一本正道久久熟女| 一区超碰一区| 免费观看成人www精品视频| h4610国产人妻| 日韩人妻资源在线看| 91黑丝美女| 精品国产乱码久久久久久久| 黄色免费一级在线毛片| 俺去俺来也在线www| 国产精品对白内射| 蜜臀99久久精品| 成人精品久久久午夜福利| 日韩av影片在线观看| 日韩精品三区四区| 国产三级中文字幕粉嫩| 手机午夜电影神马久久| 99热精品在线| 国产青青美女玩逼视频| 国产精品精品系列在线观看| 国产乱伦性爱AV| 欧美色图成人网一区二区| 日本二三四区| 黄色性爱网网| 少妇三P| 热热色中文无码| wwwcaobibi| 欧美 熟女 日韩| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 午夜无码精品免费看性色| 爽爽歪在线视频| 97草草| 天天懆天天日| 综精品久久久aaaa| 久久人妻熟女一区二区| 玖玖资源综合在线视频| 97色色色综合网站| 欧美性性性| 日韩成人性爱电影在线播放| 四虎国产成人精品免费一女五男| 91熟女网| 搡老熟女老女人老熟妇免费视频| 欧美色66| 免费精品无码一级毛片牛牛影视| 99色天堂| 人人操人人精品影片| 欧美特大AA级黄片| 天天爽爽爽爽| 少妇天堂| 超踫中文字幕| 欧美色图20p| 377p欧洲日本亚洲大胆| 能看的AV| 欧美综合亚洲综合| 大香蕉宗合网在线| 日日骚中文字幕| 人妻天堂综合网| 香蕉视频欧美一卡二卡| 亚洲影视综合网| 一级二级在线观看| 欧美爆操91| 亚洲激情综合另类男同| www.高清无码诱惑一区.com| 久操网视频| 亚洲色图 图片| 日本人人操人人操| 人妻另类| 久久久久精| 日本操逼aaaaa| 色九九九综合| 在线观看中文av字幕| 无码人妻丰满熟妇区毛片| 天天躁日日躁AAA片李宗瑞| 东京热,男人的天堂| 狠狠干综合| 九九综合九九综合| 99在线视频播放| 大香蕉一线视频| 欧美日韩色| 九九九综合精品| 久久五月天婷婷丁香中文字幕| 亚洲偷91色| 成人资源中文字幕在线观看天天| 乱性AV| 久久高清无码夜夜操| 色婷视频| 人人干黄色| 怡红院网站在线视频| 国产后入精品| 少妇xx精品| 熟妇一区二区| 欧美亚洲成人在线一区二区三区| 97人人模人人爽人人| 91综合色噜噜| 国产女主播视频在线观看| 98色网| 成人性爱视频在线看| 易易A毛视频| 色噜噜人妻丝袜AV资源| 91Chinese在线| 亚洲国产精品成人综合| 色97欧美| 欧美国产一区二区三区麻豆传媒| 色婷婷久久| av强奸乱轮| 2017天天拍大香蕉| 日韩久草| 裸模AV女优| 狠狠色色| 殴美在线AⅤ| 亚洲无码国产探花在线观看| 校园春色 亚洲| 亚洲第一色页夜| 91蜜臀熟女| 俺去俺来也在线www| 欧美性生活男人的天堂| 熟女熟妇一区二区三四区| 青青草玖玖爱| 日本999精品视频| 欧美男人一区| 美女自卫慰黄网站免费| 在线免费观看日韩一区| 欧差乱伦二三| 亚洲欧洲自拍| 欧美 亚洲精品首页| 手机看片91人妻| 一本一道久久综合久久| 999九九精品| 磁力99AV| 久久精品亚洲东京热色播| 日韩有码一区三区| 国产激情久久久| 亚洲精品乱码久久久久久蜜桃麻豆| 成人AV超碰免费在线| 国产高清自拍| 好爽免费视频| 91bbb| 久久超碰日韩精品| 日韩精品一二三| 亚洲中文丝袜美腿诱惑字幕| 欧美色图99| 亚洲久草AV色图| 亚洲啪啪啪啪视香蕉| av东京热男人的天堂| 神马久久久久久久久久| 91麻豆天美国产| 亚洲天堂另类小说男人| 偷窥自拍亚洲色图| 男人的天堂成人的社区| 亚洲男人天堂2012| 久久色一区二区| 中国黑人三级片网站上区| 色色99| 精品999日本| 色欲色香天天天综合网www-亚洲综合国| 78p欧美| 色情亚洲日本成人| 九九九九一级| 哑洲在线| 色妺妺AⅤ| 欧美97| 狠狠色伊人亚洲综合网站色| 国产v片在线免费观看| 日韩乱伦AⅤ| www国产天美久久久| 91麻豆va国产精品| 亚洲日韩AV视色| 国产视频一区二区三区久久亚洲天堂| 亚洲欧洲精品成人| 龙兴卡官方查询| 91 综合网| 亚洲欧美日韩制服另类| 亚洲国产奇米影视久久| 丁香五月激情综合国产| 亚州色交| 伊人操操| 超碰人人干天天射| 成人性爱免费播放| 婷婷影院入口| 久久麻豆一区二区| 大香蕉宅男伊人| 伊人嫩草| 欧美色图片| 久久五月天婷婷丁香中文字幕| 人人看人人摸人人色| 天美传媒国产原创中文字幕亚洲欧美另类| 看黑人AV不卡| 亚洲s色图| 碰碰97| 亚州操逼图| 久久国产三区| 天天干1区2区在线| 一级毛片电影免费看| 久久国内| 黑人中出21连凳花野真衣| 本道在线| 久久精品 六十路 熟女 欧美| 围产精品一区二区三区视频播放| 丝袜夫妻自拍| 亚洲日本大香蕉1| 亚洲男人综合| 9久综合网| 亚洲情色综合网| 亚洲欧美国产中文视频| 91操人| 亚洲999综合| 2020久久免费视频| 五月天激情影院| 1000午夜黄色| 视频国产成人精品日本亚洲18| 91狠狠综合久久久| 校园春色宗合网| 另类图片欧美激情综合| 99在线免费观看| 欧美九一精品久久久熟妇| 岛国黄片网站| 天天欧美欧美亚洲网| 日本不卡中文| 国产乱人伦AVA麻豆软件.| 91网亚洲| 色色毛片| 日本亚洲vr欧美不卡高清专区| 蜜臀99久久精品| 久久久久国产精品喷潮免费观看臀| 啊啊啊好湿久久| 欧美少妇色图| 欧美另类色图片| 久久精品无码一区二区三区| 久久香蕉综合一本到3atv| 大香蕉之青青草原| 日本免费一级AAA大片器| 91暧暧| 东北少妇高潮zzzz| 九九无码久久精品视频| 亚洲乱熟女一区二区三区大香蕉| 久操在97| 日本免费人成视频播放120秒| 东京热一区二区三区四区五区六区| 超碰人妻久久| 日本超碰在线国产一区| 亚洲熟妇A V黑人| 婷婷五月丁香五月| 国色综合天| 久久久久成人蜜桃精品| 天天日夜干| 欧美嫩性色| 99热在线观看| 国产精品 午夜福利| A片大香蕉在线| 国产高清不卡视频| 无码人妻精品一区二区中文 | 天天日天天干天天操| 天美AV片| 啪啪性爱免费视频| 少妇人妻精品| 欧美性爱中文字幕无线码| 国偷自 一区二区| 久久精品色欧美aⅴ一区二区| 91久热| 国产精品色色| 久久精品一区二区一8| 欧美高清性猛交| 欧美精品成人在线播放| 免费99精品国产自在在线| 日亚韩精品视频二区三| 国产精品一区二区密臀| 91国产精品熟女| 国产亚洲精品久久久久小| 亚洲 综合 第一页| 99操碰| 日韩在线观看三级电影| 亚洲情色在线| 国产福利精品最新在线| 日韩欧美加勒比| 麻豆精品天美| 大香蕉久操| AV一起草在线| 九九九国产精品| 九九热免费国产视频婷婷伊人五月 | 91视频女生| 97香焦色区| 国产AV久久野战精品| 淫淫综合网| 欧美伦乱爱| 久久九九99| 天天谢天天干| 久久久久久久| 青青草五月天| 六月丁丁香| 国产一级不卡在线观看| 后入国产| 啊啊啊久久久视频| 最新一二三区视频| 久久东京国产精品视频| A一区片| 蜜臀久久99精品久久久久久成人小说| 精品人妻一区二区免费蜜桃| 一区二区三区激情在线观看| 呦呦影院| 久久久久久综合久久伊人蜜月| 日日噜噜夜夜久久亚洲一区二区| 夜夜操2028| 精品区国产区一区二区三区| 精品国产三级av韩国在线| 蜜臀在线网站| 97AV在线免费观看| 国产视频一区二区在线| 免费一级毛片在线视频观看| 操www| 91日韩国产欧美亚洲另类精盘州至城都| 亚洲性猛交| 中文久久一区| 91久久精品国产| 激情网五月天| 5278欧美一区二区三区| 大香蕉黄色一级片免费看| 超碰97精品| 欧美色综合网| 精品少妇一区二区三区| 鸥美极品| 怡红院成人av| 神马午夜久久久| 极品丝袜无码| 蜜臀少妇一区二区| 99精品久久久久久久婷婷蜜桃| 精品亚洲国产成人精品| 国产三级在线现体验区| 麻豆三极片| 97超碰中文在线| 2017天天插| 欧美综合色,www| 97伦综合| 亚洲欧美碰碰| 国产精品一区二区三区四区五区| 精品成人久久久人人亚洲| 91国产丝袜美女| 99精品人人爽| 日韩高清一二三| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 91天美免费| 美女上床网站| 蜜桃臀av一区二区| 91白嫩| 91n欧美| 天天综合网91| 男人的天堂 在线一区| 欧美精品宗合| 国产在线综合福利网站| 黄色免费一级在线毛片| 综合伊人激情| 涩涩涩综合| 中国zzijzzijzzwww精品| 91精品国产日韩欧美综合| 伊人黄色片| 午夜一区二区三区国产| 国产精品一二三在线看| 日本国产成人亚洲精品无码| 亚洲乱熟女一区二区三区大香蕉| 亚洲精品视频在线播放| 亚洲综合小说另类图欧美视频激情小说色五月天 | 久久久久久久久久久久久9999| 老女人日韩美91| 精品国产一区二区三区久久久蜜臀 | 91超碰碰在线| 骚日日av| 青草精品视频-日本久久久久网站| 欧美人妻少妇| 国产精品视频自拍在线| 日韩 欧美 另类 人妻| 黄网色一区二区三区四区精品| 欧洲色| 久艹伊人精品综合在线| 色阁阁AV综合网| 九t超碰| 手机午夜电影神马久久| 激情综合网五月婷婷五月天| 性爱视频久久| 国产精品亚洲四五区在线观看| 日日噜噜夜夜久久亚洲一区二区| 久久久久久人| 亚洲精品一二牛牛| 自拍大香蕉乱插| 久久超碰爱| 69久久久久久久久久久久久| 国产精品日日摸天天碰| 91香蕉国产尤物视频| 2017人人操,人人摸| 激情丁香婷婷| 久久天天躁日日躁狠狠躁 | 日本欧美一区二区三区免费| 婷婷五月天影院| 亚洲色图美腿丝袜| 欧美大的香蕉有线电视视频 | 九九九热精品| 伊人天天久久动态图| 亚洲乱码国产乱码精网站| 男人的天堂在线有码| 人妻无码一区二区三区久久99| 国产女人视频三四五区| 睡产熟女乱伦| 美女裸体麻豆天美蜜桃91| 97超碰精品图片| 在线欧美69V免费观看视频| 麻豆天美国美国产AV| 美女让帅哥通她小鸡鸡| 国产又黄又粗又猛大片| 激情综合色| 日产成人久久| 日本性爱欧美性爱| 蜜臀久久99精品久久久久久久久| 欧美第一页| 免费日韩黄片| 91天天日| 玖玖久久久| 亚洲欧美国产其他二区| 亚洲自拍一区夜夜操| 日本精品999| 六月丁香啪啪| 午夜福利一区二区三区四区五区色婷婷| 蜜臀一区二区三区在线| 99自拍视频| 中文字幕免费看| 啪啪免费| 欧美在线l亚洲| 尤物av网站免费在线播放| 色色色热| 国产丁香精品露脸视频| 无码WWW免费视频网站| 久久综合精品一区二区三区| 夜夜爽夜夜爽| 日本色婷婷| 老司机香蕉久久久久| 首页中文字幕中文字幕免费| 综合欧美日韩在线| 国产美女裸体秘 永久无遮挡| 亚洲综合春色| 欧美天天综合网| 天美传媒国产原创中文字幕亚洲欧美另类| 国内精品久9| 中文字幕狠狠玩| 人妻美腿丝袜日韩| 免费A V在线播放| 韩国毛片一区二区三区| 免费簧片在线观看| 日本熟妇色熟妇在线视频播放| 樱花蜜乳av| 91少妇香蕉久久精品| 性久久| 色眯眯av| 免费一级毛片在线视频观看| 91激情国产| 一块操欧美| 人妻丝袜二区| 日韩欧美视频青青| 婷婷精品| 先锋影音av先锋一区| 亚洲五月丁香花狠狠干一区二区三区 | 成人三一级一片aaa| 小草av不卡亚洲二区| 欧亚性爱啪啪| 人妻蜜桃臀| 亚洲熟妇自偷自拍另欧美| 97视频免费在线观看| 中文字幕在在线观看网站| 国产亚洲色停停久久99精品91| 日本精品国产视频| 亚州免费啪啪视频| 亚洲在线观看| 五月天婷婷小说| 精品人妻中文字幕高清| 亚洲日韩青青草色月| 亚洲精品官网在线观看| 婷婷探花久久精品一区| 久久麻豆一区二区| 欧美一区二区三区互相| 国产AB视频| 黑操B| 天天色天天干天天射| 亚洲色欧| 日韩欧亚太美不卡| 在线观看亚洲专区| 成人性交免费视频| 欧美精品偷拍| 欧洲熟妇xxXx欧美老妇裸体| 亚洲欧美另类图片| 伊人精品视频| 婷婷综合激情| 国内毛片热久久思思热| 国产高清在线自在拍69| 狠狠欧美| 国产无马视频| 欧美色图亚洲激情| 青青三级视频| 97精品国产97久久久久久免费| 热无码中文亚洲H一道本一区二区| 一区二区不卡免费| 99热这里只有精| 日韩激情啪啪| 欧美成熟性爱精品| aV中文麻| 免费成人在线熟妇网| 一起草AV| 99久久e免费热视| 久久精品| 色与欲影视天天看综合网| 国产性刺激| 成人精品在线观看| 能在线播放的国产三级| 啪啪综合网| 99热在线只有精品| 久噜噜| 夜夜操av亚洲一区二区| 日本福利二区视频| 超碰无码加勒比| 九九九九精品| 综合亚州欧美| 超碰97导航| 诱惑人妻欧美一区在线播放| 亚洲欧美大香蕉| 综合自拍| 日本成人电影资源网| 日韩无码视频黄色| 射久久| 91中文字幕制服丝袜免费视频| 啊啊啊啊啊啊啊在线| 成人天天看站长推荐| 天天日老熟妇| 日日日日日| 日本日逼视频网| 手机在线看片免费人成视频| 国产在线激情视频| 麻豆国产97在线| 中欧人妻丝袜中文字幕| 亚州免费啪啪视频| 97超碰人人操人人操| 国产97视频| 香蕉精品二区二区| 亚洲图片 欧美电影| 大屁股熟女一区二区三区| 国产成人天堂| 丝袜综合色图| 色哟哟-国产专区| 久久精品亚洲东京热色播| 蜜臀久久久久久999| 精品超碰中文在线| 日日干日日| 精品一区二区啪啪啪| 天天干美少妇一区| 激情五月天综合网| 亚洲五月丁香花狠狠干一区二区三区| 人人扣人人操| 国产亚洲色婷婷久久99精品91| 丁香五月综合| 亚洲人妻av| 大香蕉男女超碰精品在线| 国产精品不卡一区二区三区av| 污色区网站| 日va操| 96AV精品| 是还免费视频1727我| 高清无码91| 操人人| 久久婷婷热| 久超超碰| 在线二区不卡| 牛牛操视频逼|