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

ARTICLE DETAIL

資訊詳情

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

OpenCvSharp4.1例程實戰(zhàn):Mat、Canny與視頻鏈路調(diào)參排錯

OpenCvSharp4.1例程實戰(zhàn):Mat、Canny與視頻鏈路調(diào)參排錯 簡介面向 C# 開發(fā)者的 OpenCvSharp4.1 官方例程合集適合已具備一定 .NET 基礎(chǔ)、希望對照官方示例學(xué)習(xí) OpenCV 4.1 圖像處理與計算機視覺 API 的讀者。包內(nèi)共 176 個文件以 60 個 cs 源碼和少量 vb 示例為主體輔以 jpg、png、bmp 等示例圖像、mp4 演示視頻、項目配置、解決方案及 prototxt 等模型描述文件壓縮包約 37.25MB目錄按示例與工程文件組織便于檢索和直接運行調(diào)試。已有 13192 人學(xué)習(xí)下載說明其在 C# 視覺入門與示例查閱場景中具有一定參考價值。讀者可從中獲得圖像讀寫、二值化處理等基礎(chǔ)案例的完整工程結(jié)構(gòu)對照源碼理解 OpenCvSharp 的調(diào)用方式、參數(shù)設(shè)置與常見排錯思路也可將其作為課程實驗、項目原型或自有應(yīng)用的起步模板。1. OpenCvSharp4.1 例程包到底裝了什么先跑通再拆原理拿到 OpenCvSharp4.1 官方例程的第一晚我建議先別動代碼原樣跑一遍比讀十頁文檔管用。它是 OpenCV 4.1 的 C# 封裝配套示例集合覆蓋 Mat 讀寫與像素訪問、色彩空間轉(zhuǎn)換、濾波與邊緣檢測、輪廓分析、攝像頭取流和視頻寫出再往外一圈是 WinForms/WPF 的顯示封裝。適合兩類人想把手上 Python 視覺腳本遷到 C# 桌面端的開發(fā)者以及需要在 .NET 項目里嵌圖像處理、又不想自己寫 P/Invoke 的工程師。下面按「跑通—拆解—調(diào)參—排錯」的順序把拆包時的判斷和參數(shù)選擇寫清楚能照著復(fù)現(xiàn)。2. 環(huán)境搭起來四個包的職責(zé)邊界與第一個出圖的 Mat 程序例程包本身不帶運行環(huán)境能不能跑起來幾乎全看 NuGet 引用對不對。這一章先把包結(jié)構(gòu)講清楚再建一個最小工程驗證鏈路通不通最后講 Mat 的內(nèi)存模型——這塊不清楚后面所有例程都會以內(nèi)存暴漲的形式還回來。2.1 四個包的職責(zé)邊界與常見引錯OpenCvSharp 的包拆得很細(xì)職責(zé)基本是這樣的包名作用缺了它會怎樣OpenCvSharp4托管層 APIMat、Cv2、VideoCapture 等編譯期就報找不到類型OpenCvSharp4.runtime.win原生 OpenCvSharpExtern.dll 與 ffmpeg 視頻解碼庫編譯能過運行時 DllNotFoundExceptionOpenCvSharp4.ExtensionsMat 與 System.Drawing.Bitmap 互轉(zhuǎn)WinForms 顯示這一環(huán)斷掉OpenCvSharp4.WpfExtensionsMat 與 WPF BitmapSource 互轉(zhuǎn)WPF 下拿不到 WriteableBitmap關(guān)鍵點在于版本對齊托管包和 runtime 包必須是同一個 4.1 分支版本。C# 側(cè)調(diào)用的導(dǎo)出函數(shù)簽名跟著托管包走原生 OpenCvSharpExtern.dll 的導(dǎo)出表跟著 runtime 包走兩者錯位最典型的癥狀是EntryPointNotFoundException而且報錯信息指向一個看起來毫不相干的函數(shù)名第一次遇上會以為是包壞了。另一個硬約束是位數(shù)。原生 dll 分 x86 和 x64進程位數(shù)必須一致。C# 工程默認(rèn)是 AnyCPU在 64 位系統(tǒng)上跑成 64 位進程但一旦勾了「首選 32 位」進程變成 32 位加載 x64 的 dll 直接失敗。我一般做法是顯式把 PlatformTarget 釘死成 x64不給運行時留選擇余地。2.2 從零建工程三條命令加一個 csproj用命令行建工程最快避免在 IDE 里點來點去點到某個默認(rèn)選項上。# 建一個控制臺工程名字隨便起 dotnet new console -n MatDemo cd MatDemo # 托管包與原生運行庫包版本都跟 4.1 分支對齊 dotnet add package OpenCvSharp4 -v 4.1.* dotnet add package OpenCvSharp4.runtime.win -v 4.1.*版本號這里用4.1.*浮動寫法具體補丁號以包管理器里 4.1 分支實際的最新版為準(zhǔn)不要跨大版本混裝。工程文件里再補一行平臺目標(biāo)Project SdkMicrosoft.NET.Sdk PropertyGroup OutputTypeExe/OutputType TargetFrameworknetcoreapp3.1/TargetFramework PlatformTargetx64/PlatformTarget !-- 釘死位數(shù)避免 AnyCPU 在 32 位上翻車 -- AllowUnsafeBlockstrue/AllowUnsafeBlocks !-- 例程里有指針遍歷像素的寫法 -- /PropertyGroup /ProjectAllowUnsafeBlocks不是必須但例程里訪問像素有幾個地方用的是Mat.DataPointer加unsafe指針先開著能省一次重編譯。目標(biāo)框架方面4.1 這一代在 .NET Framework 4.6.1 以上和 .NET Core 3.x 上都能跑桌面端拿 WinForms/WPF 做殼的選前者也行邏輯基本不用改。2.3 第一個能出圖的程序Mat 從讀到顯示不要一上來就跑最復(fù)雜的那個例程先用二十行代碼確認(rèn)讀圖、處理、顯示、保存四條通路都通。using OpenCvSharp; // 讀圖flags 決定通道數(shù)Color 是 3 通道 BGR using var src Cv2.ImRead(sample.jpg, ImreadModes.Color); if (src.Empty()) { // 路徑錯、文件損壞、編碼不受支持都會走到這里提前退出比后面崩在 CvtColor 里好排查 Console.WriteLine(讀圖失敗檢查路徑或換個格式); return; } // 灰度與邊緣中間結(jié)果都放在獨立的 Mat 里方便單獨保存查看 using var gray new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); using var edges new Mat(); Cv2.Canny(gray, edges, 50, 150); // 顯示窗口名不要用中文部分平臺的 highgui 對寬字符支持不一致 Cv2.ImShow(src, src); Cv2.ImShow(edges, edges); Cv2.WaitKey(0); // 0 表示無限等待按鍵阻塞在這一行直到窗口有輸入 Cv2.DestroyAllWindows(); // 不調(diào)用的話后續(xù)循環(huán)里 ImShow 會不停新建窗口幾個參數(shù)值得記一下ImreadModes.Color強制三通道即使原圖是灰度或帶 alpha 也會被轉(zhuǎn)成 3 通道Canny的三個參數(shù)分別是輸入、輸出和兩個閾值后文會專門講怎么定這兩個數(shù)WaitKey(0)返回按鍵碼傳 0 是無限等傳 1 就是等 1 毫秒視頻播放循環(huán)里必須傳非零值這一點后面還會碰到。這段代碼能跑通說明托管包、原生 dll、highgui 三條鏈路都在位。跑不通的話問題基本就落在第 5 章那幾條上。2.4 Mat 的內(nèi)存模型為什么到處都在 usingMat 對象本身在托管堆上像素數(shù)據(jù)在非托管內(nèi)存里靠引用計數(shù)管理。GC 只管得到那個殼管不到像素緩沖區(qū)所以Dispose必須顯式調(diào)用using寫法是最省心的方式。更麻煩的是 Mat 支持視圖從一個 Mat 上切一塊 ROI新 Mat 和原 Mat 共享同一片像素內(nèi)存。using var src Cv2.ImRead(sample.jpg, ImreadModes.Color); // 這個 Mat 只是視圖不拷貝像素指向 src 內(nèi)部的一塊區(qū)域 using var roi new Mat(src, new Rect(100, 100, 200, 200)); // Clone 才是真正申請新內(nèi)存、復(fù)制像素 using var copy roi.Clone(); roi.SetTo(Scalar.All(0)); // src 上的對應(yīng)區(qū)域一起變黑 // copy 不受影響搞不清這一點常見后果是「我明明只改了縮略圖原圖也花了」。判斷方法很簡單構(gòu)造函數(shù)帶new Rect(...)或者new Range(...)的那種多半是視圖帶.Clone()、.CopyTo()的才是獨立內(nèi)存。寫循環(huán)處理時視圖的好處是省內(nèi)存壞處是生命周期互相牽連——視圖還沒釋放原 Mat 的引用計數(shù)就降不到零那片內(nèi)存就一直掛著。至于例程目錄怎么讀我的習(xí)慣是按依賴關(guān)系從簡到繁來而不是按字母序典型分組覆蓋內(nèi)容建議順序基礎(chǔ)圖像ImRead/ImWrite、像素訪問、Mat 運算第一圖像處理色彩空間、閾值、濾波、形態(tài)學(xué)、邊緣第二輪廓與幾何FindContours、包圍盒、多邊形擬合第三視頻與攝像頭VideoCapture、VideoWriter、幀循環(huán)第四界面與顯示W(wǎng)inForms/WPF 控件綁定、縮放與刷新第五檢測類級聯(lián)分類器、DNN 推理加載最后包內(nèi)實際目錄可能略有出入但依賴關(guān)系不會變。先把基礎(chǔ)圖像那組跑完能省掉后面大量「到底是 API 用錯還是環(huán)境沒通」的反復(fù)猜。3. 例程逐類拆解ImRead、CvtColor、Canny、FindContours 的參數(shù)怎么定這一章是例程包里最值錢的部分也是大多數(shù)人跑完就跳過、后面寫業(yè)務(wù)代碼時又回頭翻的部分。圖像處理的參數(shù)沒有萬能值但每一個都有可以量化的定法下面按調(diào)用鏈順序講。3.1 讀寫與色彩空間通道順序和 HSV 的取值范圍OpenCV 的默認(rèn)通道順序是 BGR不是 RGB。C# 里從 Bitmap 轉(zhuǎn)過來、或者從攝像頭抓幀色序都是 BGR直接送給 WPF 或 WinForms 顯示會和原圖對不上藍(lán)色發(fā)紅。轉(zhuǎn)換方式在顯示環(huán)節(jié)做不要在算法入口做。using var src Cv2.ImRead(sample.jpg, ImreadModes.Color); using var hsv new Mat(); Cv2.CvtColor(src, hsv, ColorConversionCodes.BGR2HSV); // HSV 里 H 在 OpenCV 中被壓到 0~179不是 0~360 // 所以要取「紅色」范圍得用 0~10 和 170~179 兩段而不是 0~30 和 330~360 using var mask1 new Mat(); using var mask2 new Mat(); Cv2.InRange(hsv, new Scalar(0, 80, 60), new Scalar(10, 255, 255), mask1); Cv2.InRange(hsv, new Scalar(170, 80, 60), new Scalar(179, 255, 255), mask2); using var redMask mask1 | mask2; // 兩段合并三個參數(shù)的含義H 是色相OpenCV 為了塞進 8 位無符號數(shù)除以了 2所以上限是 179S 是飽和度0 到 255低于 80 的基本是灰白區(qū)域V 是明度低于 60 接近純黑。這三個下限不是隨手寫的室內(nèi)弱光場景 V 要往下調(diào)到 40 左右否則暗部目標(biāo)全丟強光過曝場景 S 要往下調(diào)否則高光區(qū)域飽和度被壓扁。ImreadModes那幾個常用值也順便記一下Color強制三通道Grayscale單通道Unchanged保留原始通道和位深——讀 16 位 TIFF 或帶 alpha 的 PNG 時只有Unchanged不會丟數(shù)據(jù)其余模式都會做隱式轉(zhuǎn)換精度掉了自己都不知道。3.2 濾波與邊緣兩個閾值到底怎么定高斯模糊的核尺寸必須是奇數(shù)傳偶數(shù)會直接拋異常。sigma 傳 0 表示由核尺寸反推這是最常用的組合因為手動調(diào) sigma 和核尺寸兩個參數(shù)很容易互相打架。using var src Cv2.ImRead(sample.jpg, ImreadModes.Grayscale); // ksize 必須是奇數(shù)sigmaX 傳 0 由 ksize 推導(dǎo) using var blur new Mat(); Cv2.GaussianBlur(src, blur, new Size(5, 5), 0); // Canny 的雙閾值低于低閾值直接判非邊緣高于高閾值直接判邊緣中間地帶看連通性 using var edges new Mat(); Cv2.Canny(blur, edges, 50, 150);兩個閾值的經(jīng)典比例是 1:2 到 1:3問題在于絕對數(shù)值隨場景變化極大。一個可量化的定法是用灰度均值做基準(zhǔn)Cv2.MeanStdDev(blur, out Scalar mean, out Scalar stddev); // 以均值上下浮動 33% 作為雙閾值再夾到合法區(qū)間 double lower Math.Max(0, (1.0 - 0.33) * mean.Val0); double upper Math.Min(255, (1.0 0.33) * mean.Val0); using var autoEdges new Mat(); Cv2.Canny(blur, autoEdges, lower, upper); Console.WriteLine($lower{lower:F1}, upper{upper:F1});MeanStdDev輸出兩個 Scalar這里只取第一個通道的Val0灰度圖正好只有這一個通道有意義。0.33 這個系數(shù)來自經(jīng)驗偏低會把紋理噪聲都拉成邊緣偏高會丟掉弱對比輪廓。調(diào)試階段建議把算出來的兩個數(shù)打印出來下次遇到同類場景直接從這組數(shù)起步比盲調(diào)快得多。模糊核尺寸和 Canny 是聯(lián)動的。核太大細(xì)邊緣在模糊階段就沒了怎么調(diào)閾值都找不回來核太小噪聲進到 Canny 里閾值再高也會有零星碎邊。常見做法是先用 5×5 起步邊緣太碎把核加到 7×7邊緣太粗回到 3×3。3.3 形態(tài)學(xué)與輪廓hierarchy 和面積過濾形態(tài)學(xué)的兩個基本操作是開運算和閉運算前者去小噪點后者補小孔洞結(jié)構(gòu)元素尺寸決定能處理多大的缺陷。// 開運算先腐蝕后膨脹去掉細(xì)小噪點 using var kernel Cv2.GetStructuringElement(MorphShapes.Rect, new Size(3, 3)); using var opened new Mat(); Cv2.MorphologyEx(edges, opened, MorphTypes.Open, kernel); // 閉運算先膨脹后腐蝕填補輪廓內(nèi)部的小斷裂 using var closed new Mat(); Cv2.MorphologyEx(opened, closed, MorphTypes.Close, kernel);GetStructuringElement的形狀參數(shù)里Rect適合矩形目標(biāo)Ellipse適合圓形或自然目標(biāo)Cross適合細(xì)線狀結(jié)構(gòu)。尺寸必須是奇數(shù)3×3 是最常用的起點處理的是像素級的毛刺要到 7×7 以上才能填補肉眼可見的缺口但同時會把相鄰目標(biāo)粘在一起這一步要拿實際圖反復(fù)看。找輪廓的簽名里有三個容易記錯的點// 輸入圖建議傳 clone雖然 OpenCV 3.2 之后 FindContours 不再修改輸入但跨版本保險 using var input closed.Clone(); Cv2.FindContours( input, out Point[][] contours, out HierarchyIndex[] hierarchy, RetrievalModes.External, // 只要最外層輪廓 ContourApproximationModes.ApproxSimple); // 壓縮共線點只保留拐點 foreach (var contour in contours) { double area Cv2.ContourArea(contour); if (area 200) continue; // 面積過濾去掉噪點輪廓 Rect box Cv2.BoundingRect(contour); double perimeter Cv2.ArcLength(contour, true); // 面積與周長平方的比值可以粗略判斷形狀緊致程度接近圓的目標(biāo)這個值偏大 Console.WriteLine($area{area:F0} box{box} perimeter{perimeter:F0}); }RetrievalModes的選擇直接影響結(jié)果External只返回最外層適合數(shù)目標(biāo)個數(shù)Tree返回完整層級父子關(guān)系存在HierarchyIndex的Parent、FirstChild字段里適合做嵌套結(jié)構(gòu)分析比如找某個外框里面的小孔。ApproxSimple會把一條直線上的中間點全部壓縮掉點數(shù)能降一個數(shù)量級做面積和周長計算時精度損失可以忽略但如果你要拿點集做模板匹配就得換成ApproxNone。面積閾值 200 這個數(shù)不是固定的它和圖像分辨率強相關(guān)。判斷方法先把所有輪廓面積打印出來排序噪點通常集中在個位數(shù)到幾十真實目標(biāo)會有一兩個明顯的數(shù)量級跳躍閾值就取在跳躍中間。4. 攝像頭與視頻鏈路VideoCapture 打開失敗、幀循環(huán)與 WPF 渲染圖像處理是靜態(tài)的視頻鏈路是動態(tài)的問題類型完全不同。靜態(tài)圖調(diào)不通最多是結(jié)果不對視頻鏈路調(diào)不通就是黑屏、卡死、內(nèi)存一路漲。這一章把取流、幀循環(huán)、界面刷新、寫出四段拆開。4.1 VideoCapture 打開失敗的排查順序// 第二個參數(shù)指定后端Windows 上 DSHOW 兼容性最好MSMF 打開更快但設(shè)備兼容性略差 using var cap new VideoCapture(0, VideoCaptureAPIs.DSHOW); if (!cap.IsOpened()) { Console.WriteLine(打開攝像頭失敗); return; } // 分辨率要在打開之后、讀幀之前設(shè)置順序反了很多設(shè)備會靜默忽略 cap.Set(VideoCaptureProperties.FrameWidth, 1280); cap.Set(VideoCaptureProperties.FrameHeight, 720); cap.Set(VideoCaptureProperties.FPS, 30); // 設(shè)置不一定生效讀回來確認(rèn)實際值 Console.WriteLine($實際 {cap.FrameWidth}x{cap.FrameHeight} {cap.Fps});排查順序我一般是這樣先確認(rèn)設(shè)備索引0 是默認(rèn)攝像頭多設(shè)備時逐個試 0 到 3再看后端DSHOW和MSMF換著試某些采集卡只認(rèn)其中一個然后看是不是被別的程序占用攝像頭是獨占資源另一個進程開著預(yù)覽就搶不到最后看分辨率設(shè)了一個設(shè)備不支持的尺寸有的驅(qū)動會直接失敗而不是回退到最近的可用值。Set之后再Get一遍確認(rèn)這一步能省掉大量「代碼明明設(shè)了 1080p 為什么出來是 640」的困惑。4.2 幀循環(huán)的寫法與退出條件using var frame new Mat(); while (true) { // Read 內(nèi)部是 Grab Retrieve返回 false 表示流結(jié)束或取幀失敗 if (!cap.Read(frame) || frame.Empty()) { Console.WriteLine(取幀失敗可能是設(shè)備斷開或文件讀完); break; } // 處理放在這里注意不要在里面 new 大對象循環(huán)里每幀分配會觸發(fā)頻繁 GC Cv2.CvtColor(frame, frame, ColorConversionCodes.BGR2GRAY); Cv2.ImShow(live, frame); // 這里必須是 1 而不是 0傳 0 會阻塞到按鍵視頻就變成逐幀步進了 if (Cv2.WaitKey(1) 27) break; // 27 是 ESC }循環(huán)體里有三個細(xì)節(jié)Read復(fù)用了同一個frame對象不會每幀新建 Mat這是有意的避免每幀分配非托管內(nèi)存WaitKey(1)除了控制播放節(jié)奏還負(fù)責(zé)處理 highgui 的窗口消息不調(diào)用的話窗口會假死退出條件除了 ESC還要考慮流自然結(jié)束所以Read的返回值必須判斷不能只靠異常。文件播放時節(jié)奏控制另說。攝像頭是實時的WaitKey(1)就夠播本地視頻想按原速回放得按 FPS 算延時WaitKey((int)(1000 / fps))直接傳 1 會快放。4.3 在 WinForms 和 WPF 上刷新畫面Cv2.ImShow只適合調(diào)試真做工具得嵌到界面里。WinForms 用 PictureBox轉(zhuǎn)換靠 Extensions 包// WinForms每幀轉(zhuǎn)成 Bitmap 塞給 PictureBox var bmp OpenCvSharp.Extensions.BitmapConverter.ToBitmap(frame); // 上一幀的 Image 必須手動釋放否則 GDI 句柄會一路漲到系統(tǒng)上限 var old pictureBox1.Image; pictureBox1.Image bmp; old?.Dispose();WPF 走的是另一條路轉(zhuǎn)成WriteableBitmap直接綁到 Image 控件// WPF需要 OpenCvSharp4.WpfExtensions var wb OpenCvSharp.WpfExtensions.WriteableBitmapConverter.ToWriteableBitmap(frame); imageControl.Source wb;WPF 這里有個跨線程的坑取流通常放在后臺線程但給Image.Source賦值必須在 UI 線程。最省事的做法是后臺線程只負(fù)責(zé)處理和轉(zhuǎn)換轉(zhuǎn)好的WriteableBitmap通過Dispatcher.BeginInvoke拋回 UI 線程賦值。BeginInvoke而不是Invoke是因為同步等待在幀率高的時候會把后臺線程拖住反而掉幀。性能上還有一條BitmapConverter.ToBitmap每幀都會新建一個 Bitmap30fps 下每秒 30 次分配加釋放GC 壓力不小。分辨率上到 1080p 以后建議改成預(yù)分配一個固定尺寸的 Bitmap用LockBits直接寫像素雖然代碼多幾行但幀率會穩(wěn)很多。4.4 VideoWriter 的編碼與尺寸約束// 四字符編碼XVID 兼容性好MJPG 文件大但幾乎所有播放器都認(rèn) using var writer new VideoWriter( out.avi, FourCC.XVID, 25, // 幀率要和寫入節(jié)奏一致 new Size(1280, 720), // 必須與每幀尺寸完全一致 true); // 是否彩色 if (!writer.IsOpened()) { Console.WriteLine(VideoWriter 初始化失敗多半是編碼器不可用); return; } // 寫幀 writer.Write(frame); // 結(jié)束必須釋放否則文件尾索引不完整播放器打不開 writer.Release();三個硬約束幀尺寸必須和構(gòu)造時完全一致差一個像素都會靜默丟幀最后得到一個 0 字節(jié)或者時長對不上的文件幀率參數(shù)只寫進文件頭不影響實際寫入速度寫快了就是快放FourCC.XVID在部分精簡版系統(tǒng)上可能找不到對應(yīng)編碼器這時換FourCC.MJPG它是 Motion-JPEG幾乎不會失敗代價是文件體積大好幾倍。5. 避坑與排查五個把人勸退的現(xiàn)場例程跑不通的原因高度集中下面五條按我遇到的頻率排序每條都按現(xiàn)象、原因、解決三段寫。5.1 原生庫加載失敗與位數(shù)不匹配現(xiàn)象編譯通過一運行就拋DllNotFoundException: OpenCvSharpExtern或者BadImageFormatException。原因前者是 runtime 包沒裝或者原生 dll 沒被復(fù)制到輸出目錄后者是位數(shù)不匹配32 位進程去加載 64 位 dll。還有一種隱蔽情況機器上裝過別的 OpenCV 版本系統(tǒng) PATH 里有同名 dll加載到了錯誤的那份。解決先看輸出目錄下有沒有OpenCvSharpExtern.dll和opencv_videoio_ffmpeg*.dll沒有就重新裝 runtime 包并清理重建有的話用dumpbin /headers看一眼架構(gòu)把 PlatformTarget 顯式設(shè)成 x64不要依賴 AnyCPU 的默認(rèn)行為排查 PATH 污染必要時在代碼里顯式指定原生庫搜索目錄。5.2 讀視頻返回空幀與中文路徑現(xiàn)象VideoCapture的IsOpened()返回 true但Read一直返回 false或者ImRead對某些圖片一直返回空 Mat換個路徑就好了。原因視頻打不開多半是缺 ffmpeg 解碼庫runtime 包里帶的那份沒被復(fù)制過去圖片讀不到基本是路徑含非 ASCII 字符原生層的文件打開用的是窄字符接口編碼一錯就找不到文件。解決視頻先確認(rèn) ffmpeg 的 dll 在輸出目錄圖片路徑要么改成純英文要么用Cv2.ImDecode(File.ReadAllBytes(path), ImreadModes.Color)繞開原生文件接口——這個寫法把讀文件交給 .NET解碼交給 OpenCV中文路徑問題直接消失我在所有交付項目里都這么處理。5.3 Mat 未釋放導(dǎo)致內(nèi)存一路漲現(xiàn)象跑幾分鐘內(nèi)存從幾百兆漲到幾個 G任務(wù)管理器里非托管內(nèi)存持續(xù)增長GC 也壓不下去。原因Mat 的像素數(shù)據(jù)在非托管內(nèi)存里GC 只回收托管殼不回收像素緩沖區(qū)。循環(huán)里new Mat()而不Dispose或者用 ROI 視圖把原 Mat 的引用計數(shù)釘住都會造成泄漏。另一種常見情況是異常路徑跳過了Dispose。解決所有 Mat 一律用using包括臨時中間結(jié)果循環(huán)里復(fù)用同一個 Mat 而不是每幀新建用Cv2.GetTickCount之類的手段做壓力測試跑一千幀看內(nèi)存是否穩(wěn)定視圖用完立刻釋放需要保留就Clone出獨立內(nèi)存。5.4 WaitKey 不調(diào)用導(dǎo)致窗口假死現(xiàn)象ImShow的窗口白屏、拖動沒反應(yīng)、點關(guān)閉按鈕也關(guān)不掉整個進程像卡住了。原因highgui 的窗口消息要靠WaitKey驅(qū)動不調(diào)用它窗口只是創(chuàng)建了但不進消息循環(huán)。這一條在新手代碼里出現(xiàn)頻率極高屬于典型的「玄學(xué)」問題——代碼看不出錯就是不響應(yīng)。解決任何ImShow之后必須跟一個WaitKey靜態(tài)圖用WaitKey(0)視頻循環(huán)用WaitKey(1)程序退出前調(diào)DestroyAllWindows()如果是在后臺線程里顯示注意 highgui 的窗口操作要放在同一個線程里跨線程調(diào)用會出現(xiàn)更難查的問題。5.5 WPF 圖像不更新與跨線程異常現(xiàn)象后臺線程更新了 Mat界面上的圖一動不動或者直接拋「調(diào)用線程無法訪問此對象因為另一個線程擁有該對象」。原因WPF 的 UI 元素有線程親和性后臺線程不能直接賦值Image.Source另一種情況是每幀都賦了新的WriteableBitmap但 UI 線程被別的邏輯占滿渲染隊列積壓看上去就是不刷新。解決轉(zhuǎn)換在后臺做賦值用Dispatcher.BeginInvoke拋回 UI 線程WriteableBitmap可以復(fù)用同一個實例改內(nèi)容后調(diào)Lock/AddDirtyRect/Unlock比每幀新建省一大截如果幀率還是上不去檢查是不是把耗時處理放在了 UI 線程。6. 把例程改成自己的工具一條可復(fù)用的處理管線例程的價值不在代碼本身在它給出了每條調(diào)用鏈的標(biāo)準(zhǔn)寫法。真正落地時把這些散落的調(diào)用收成一個管線類參數(shù)從配置文件讀比每次復(fù)制粘貼強得多。我一般的組織方式是一個IImageStep接口加若干實現(xiàn)管線負(fù)責(zé)串聯(lián)每步的開關(guān)和參數(shù)寫在配置里public interface IImageStep { string Name { get; } Mat Process(Mat input); // 返回新 Mat調(diào)用方負(fù)責(zé)釋放 } public sealed class Pipeline { private readonly ListIImageStep _steps new(); public void Add(IImageStep step) _steps.Add(step); public Mat Run(Mat src) { var current src.Clone(); // 入口先 Clone避免改到調(diào)用方的圖 foreach (var step in _steps) { var next step.Process(current); current.Dispose(); // 上一步的中間結(jié)果立刻釋放 current next; } return current; } }這套寫法的好處是每步都能單獨開關(guān)、單獨計時。加一個Stopwatch包在Process外面跑一遍就知道瓶頸在哪一步多數(shù)時候是形態(tài)學(xué)或者大核模糊而不是看起來最復(fù)雜的輪廓分析。步驟關(guān)鍵參數(shù)調(diào)參依據(jù)灰度轉(zhuǎn)換通道順序 BGR2GRAY輸入若是 RGB 要先轉(zhuǎn)序高斯模糊ksize 奇數(shù)、sigma 為 0邊緣碎就加大核Canny高低閾值 1:21:3用灰度均值 ±33% 起步形態(tài)學(xué)開核 3×3 到 7×7噪點尺寸決定核大小輪廓過濾面積閾值按面積分布的數(shù)量級跳躍取驗證方法我固定用兩步一是拿一張標(biāo)準(zhǔn)圖跑全流程把每一步的中間結(jié)果ImWrite出來存成序列肉眼過一遍找出哪一步開始不對二是跑一千幀壓力測試看內(nèi)存曲線是否平穩(wěn)、單幀耗時是否在預(yù)算內(nèi)。這兩步走完參數(shù)才敢往業(yè)務(wù)里帶。血淚經(jīng)驗是別在管線里做隱式轉(zhuǎn)換。初期為了省事我在某一步里直接把 BGR 當(dāng) RGB 處理單測看不出來上線后所有顏色判定的閾值全偏排查了大半天。從那以后我每接一個 C# 視覺需求都會先把中間結(jié)果落盤、把每步耗時打出來再談?wù){(diào)參。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大香蕉婷婷丁香视频在线| 婷婷五月成人有| 日本99久久| 大波美女VA网站| 婷婷久久综合久| 天天成人五月天| 丁香激情五月天| 激情开心五月天| www色五月| 人妻丰满精品一区二区A片| 五月丁香六月婷婷久久| Se.婷婷五月天| 综合激情九月婷婷,激情综合婷婷中文字 | 成人中文网| 亚洲另类视频| 久久婷婷丁香六月天| 成人短视频免费| 只有精品在线观看| se.久久视频在线观看| 亚洲啪视频| 五月丁激情| 丁香五月综合久久综合| 久久久久思思热| 大香蕉婷婷| 美女久久天堂| 亚洲色综合| 青草久久五月婷伊人| 超色欲天天| 一本道在线电影| 日本五月天网站| 久热无码| 五夜婷婷| 99干视频| 91chinese 在线| 9久国产| 五月婷婷丁香在线视频| 欧洲亚洲欧洲99久久| 色色婷婷丁香| 亚洲AV成人片无码网站| 原琪琪色影院| 国产小网站| 怡红院AV亚洲一区二区三区H | 播播网色播播| 99人人干| 激情九月综合| 久99热| 久久久精品色| 久久婷婷人人| 国产六月婷婷| 激情综合婷婷五月| 99这里只有精品视频免费| 天天射网站| 婷婷午夜| 五月丁香色情| 99re8在这里只有精品| 色五月婷婷亚洲| 天天草天天日| 色综合综合网| www.深爱激情| 久热91| 免费看片操逼| 狠狠五月激情丁香六月| 五月天大香蕉AV| 天天舔天天| 91嫩草久久| 色婷婷AAA| 美日韩成人| 丁香六月婷婷缴情欧美| 婷婷五月天欧美图片在线播放电驴| 掩去也综合五月视频| 色九月欧美| 9热在线视频| 色综合久久8| 九九综合影音先锋 | 99色在线| 天天插天天爽| 日韩一本操| 国产精品久久久久久久久久免费| 97在线视频人妻九色| 天天天天天天天操| 深爱五月激情| 久久人人超| 亚洲天堂aaa| 国熟女视频| 99这里只有精品在线观看| 五月丁香婷婷久久| 亚洲亚洲亚洲AAAAAA| 亚洲亚洲永久无码777777| 婷婷丁香水多多视频| 夜夜天天久久婷婷| 婷婷九月丁香| 亭亭玉月丁香| 五月丁香婷婷伊人日韩| 久热久操久热久草国产91| 东京热人妻一区二区三区在线| 五月九九综合| 亚洲成人高清在线| 色网站99| 怡红院视频| 亚洲 六月 综合| 色丁香五月天射婷婷爱婷婷| 5月色亭亭视频| 久久这里只有国产| 色色射| 五月综合视频| 国产精品99久久久久久久女警 | 色婷婷丁香五月色综合网| 五月婷婷九| 亭亭五月天黑人2014| 99精品视频免费| 狠狠色五月天| 亚洲欧洲中文日韩久久AV乱码| 五月激情丁香啪啪| 亚洲五月天婷婷| 激情六月丁香综合| 思思热在线精品视频| 六月丁香婷婷在线波多| 91午夜激情| 九九这里是免费的视频5| 99视频这里有精品| 丁香六月激情毛片| 五月天性色| 亚洲成人五月天| 日日爱激情| 五月丁香婷婷啪啪| 超碰色人妾| 亚洲激情综合网| 天天粽合合合合| 激情婷婷五月天伊人在线观看| 婷婷五月丁香伊人| 99热这里有精品| 97操在线资源| 思思久久96热在精品国产,| 人人射人人高潮| 欧美成人A片AAA片在线播放 | 五月激情开心婷婷| 夜夜资源站| www.婷婷| 色色色婷婷五月天| 深爱激情av| 九九精品热播| 色情激情五月婷婷| 五月丁香婷婷在线综合蜜桃| 综合AV在线| 琪琪色五月婷婷老师| 九九亚洲综合| 五月婷婷丁香六月| 久久久久久婷| 国产一级婬片毛片| 大香蕉啪啪啪| 亚洲国产精品成人免费一区久久久在线观看AAAA| 狠狠狠狠狠操| 国产成人一区二区三区在线观看| 国产1区2区3区| 欧美丁香婷婷天天操| 久久538| 中文字幕人成乱码在线观看| 综合激情五月四射婷婷| 五月激情啪啪| 色五月激情网| 男人天堂99| 五月婷婷综合成人| 五月天婷婷永久免费视频| 这里只有精品视频| 人人玩人人橾| 来吧亚洲综合网| 日本色色网站| 丁香涩涩爱| 国产古装妇女野外A片 | 国产超碰在线| 91操人| 五月综合激情网| 久9久视频精品| 激情深爱综合| 99热官网| 天天噜天天爱| 国产人妻人伦精品一区二区| 伊人春天av| 五月天婷婷在线观看| 亚洲va欧美va国产综合久久久| 丁香激情网| 五月天堂色色| 91久久九九| 久久99大全| a久久| 天天摸色吧天天摸色吧| 亚洲在线免费成人| 毛片毛片毛片毛片| 六月婷在线| 丁香婷婷在线| 青青草99re| 六月香五月婷| www.ywav| 人人摸人人| 色九月婷婷丁香| 激情五月天com| 亚洲中文字幕在线电影| 九九99热久久精品66中文字幕| 美女91一起草| 91精品久久久久久| 丁香五月色播中文在线播放| 疯狂做受XXXX高潮A片| 五月天国产成人| 久草婷婷| 呦呦v线| 狠狠操狠狠色| 日本在线视频播放91| 操97免费超级视频| 久久这里只有精品99| 人人玩人人橾| 丁香六月婷婷操逼网| VA婷婷亚洲| 亚洲午夜国产成人电影VA国产欧…| 五月婷婷色吧!| 超碰天堂网| 色宗合久久五月婷婷| 五月丁香婷婷伊人| 亚洲 视频 导航 一区| 婷婷视频在线| 大香蕉久热| 九九Av| 色噜噜婷婷| 操逼福利视频| 婷婷成人AV| 99操视频| 久久这里有精品视频在线免费观看| 美女五月天| 五月色婷丁香| 91丨九色丨东北熟女| 欧洲激情五月天| 91色五月在线观看| 操骚货在线| 久久综合伊人综合在线| 久99精品视频| 色婷婷久久| 六月天丁婷婷| 另类小说五月天| 99ER热精品视频| 婷婷五月天欧美| 五月婷婷婷综合网| 99精品偷自拍| 日韩人妻无码精品| 国内精品玖玖| 亚洲五月天色| AVV黄| 五月丁香啪| 婷婷色情小说| 九九精品片一| 九九婷婷综合| 男人的天堂99| 精品久久久91久久影视网| 夜夜骑天天操| 亚洲综合婷婷五月天| 九九干视频| 激情深爱五月天| 热99AV网站| 亚洲激情AV| 在线sebiav精品视频| 亚洲操操操| 六月丁香久久| 在线视频激情网站| 亚洲成人av在线| 深爱激情四射| 婷婷99狠狠躁天天| 九九超日本| 久久伊人大香蕉| 色婷婷亚洲五月天| 精品怡红九九九| 91在线日| 99干视频| 99久精品视频| 欧美日韩五月婷婷| 99热色综合| 可以看的av| 婷婷5月开心6月| 99热天堂| 激情久久久久久久久| 激情内射人妻1区2区3区| 久久久久久97| 久久日婷婷| 五月色网| 久青草影院| 五月丁香婷婷爱| 伊人婷婷五月| 国产99精品免费视频| 久久九区| 超碰免费大香蕉| yirenjiqingshiping| 91婷婷丁香| 婷婷五月天电影网| www.99热视频| 亚洲六月婷| 久久亚洲网| 婷综合| 大香久久伊人网| 午夜丁香婷婷| 狠狠干综合| 九色自拍| 91久久久久久久| 久久92| 天天插天天插天天插天天插| 青草青青草| 色色网站免费| 色偷偷五月天| 婷婷五月天综合AV| 五月婷婷亚洲| 婷婷五月综合社区| 久久久久人妻精品| 国产精品色婷婷久久久精品| 久久久久亚洲AV无码网影音先锋| 久久婷婷五月综合激情国产| 天天搡日日搡aaaaⅩ| 婷婷五月天情色| 日本色天堂| 欧美丁香五月| 99久久久免费| 人妻少妇色综合| 五月天激情久久| 五月天另类激情在线| 99热精品在这里| 色婷婷丁香五月天| 啪啪91| 婷婷五月天激情网| 深夜婷婷 丁香| 99天堂在线观看免费视频| 九久久婷婷| 日日操夜夜操不卡| 综激情网| 天天日狠狠| 婷婷丁香五另类网站| 伊人久久婷婷五月天激情四射| 婷婷5月天激情综合| oVV4WIB3vFi8D| 五月婷婷在线观看| 亚洲综合无码| 99视频内射三四| 99国产精品久久久久久久久久久 | 成人做爰A片免费看视频| 国外亚洲成AV人片在线观看| 色婷婷精品视频在线播放| 婷婷香蕉香| 热996精品在线观看| 一区二区免费看| 久久精品爱爱| 成人综合伍月天| 色五月激情| 婷婷爱在线观看| 秋霞免费三级片| 五月婷婷色丁香| 婷婷五月天综合中文| 99热免| 国产精品爽爽久久久久久| 欧美日韩999| www.婷婷| 天堂网色色| 激情五月天在线观看婷婷| 九九免费精品在线视频| 日本五月婷| 五月丁香婷婷综合久久| 97精品人人A片免费看| 九 九九九AV| 久操激情| 激情激情激情网| 最新va在线播放| 婷婷六月色| 男人的天堂av俄罗斯热| 五月天综合久久| 一本道综合网| 五月婷婷综合久久| 风流少妇A片一区二区蜜桃| 婷婷五月天大香蕉在线视频观看| 五月丁香| 亚洲婷婷五月天激情| 日本三级黄色大片| 嫩草视频| 国产热精品| 五月天激情久久| 亚洲色无码A片一区二区麻豆| 久热伊人9| 丁香五月综合色婷婷| 久久精品视频在这里有| 精品无码99| 久操大香蕉| 狠狠一日| 伊人婷婷激情| 深爱五月激情| 天天操天天曰天天射| 激情99热| 久草热在线视频| 9一精品视频观看| 五月激情五月丁香| 热久久这里只有精品| 一起草AV入口| 激情综合播播| 91人人爽狠狠狠| 午夜福利成人AV91| 伊人色欲五月天| 色香欲综合| 日韩ac不卡无码| 五月天综合在线| 婷婷五月另类网站| 婷婷色五月色妇| 日本视频不卡123区| 五月色丁香综合| 综合AV在线| 五月婷精品| 99re99热| 色情婷婷| 五月丁香久人妻中文| 五月丁香九九| 天天色亚洲| 欧美色色色色色色色色色色影视| 五月婷亚洲精品AV天堂| 97超级碰碰碰| 五月天婷婷综合网| 久久一级片| 中文字幕色色色| 99在线免费观看| 9l视频自拍九色9l视频在线观看| 婷婷狠狠色| 91狼友视频在线观看| 激情五月综合ì香亚洲| 亚洲中文字幕在线观看| 中文不卡一二三区| 婷婷丁香中文字幕| 色色色色色色色色色999| 少妇被下春药玩弄A片| 热的国产99热| 超碰免费在线| 激情五婷精品网在线观看网址| 成人av免费观看| 五月天成人综合| 五月婷婷欧美| 九九熱最新視頻| 亚洲综合成人网| 婷婷色亚洲| 99综合网| 午夜理论片最新午夜理论剧| 最近中文字幕大全免费版在线| 香蕉婷婷色五月| 国产精产国品一二三在观看| 青青草深爱激情网| 日韩99无码| 五月丁香在线看| 丁香婷婷五月综合欧美另类| 狠狠五月天| 都市激情亚洲| 丁香六月啪| 一本色综合色| 天天婷婷色六月| 丁香五月www| 精品99在线| 色呦呦美女| 色婷婷久久| 天天做天天爱天天摸| 婷婷视频网| 狠狠色丁香综合| 色婷婷在线视频| 久久五月丁香综合17C| 丁香情色五月| 婷婷五月天视频免费在线观看| 无码髙清| 欧美顶级少妇做爰HD| 影音先锋 91工厂| 中文字幕网伦射乱中文| 婷婷香五月天| 色爱综合网| 日本色色色| 日韩人妻无码一区二区| 六月丁香婷婷爱| 天天爽夜夜操| 伍月婷丁香婷| 欲色人妻| 丁香婷婷大香蕉| 一区二区三区四区无码| 午夜爱插插| 思思热视频在线| 色狠狠色狠狠| 国产成人网站在线观看| 9999热在线| 99热精品99| 色插综合网| 亚洲欧洲一二| 婷婷天天色| 丁香婷婷伊人| AA久久| AV79| 色色激情网| 7EzOBIhNq85TO| 久久丁香五月天| 99亚洲综合| 丁香婷婷综合色五月激情国产基地| 影音先锋一区| 激情久久综合网| 美女激情综合| 色99xx| 玖玖资源在线视频| 人妻精品久久久久久| 五月丁香六月婷婷啪啪| 色狠狠婷婷| 99操碰| 99热只有这里才是精品| 九九热在线亚洲免费视频| 色色色色色色色五月| 91久久久久久久| Va另类视频| 99re免费精品视频| 日本少妇AA一级特黄大片| 在线综合网| 激情五月天 婷婷| 免费的日逼视频| 91丨九色丨丰满人妖| 五月婷婷性爱网| 色婷婷激情| 激情五月久久| 久狠日av| 五月激情开心婷婷| 超碰免费在线| 在线观看欧美3区| 亚洲综合五月天| 婷婷激情综合| 丁香婷婷六月在线资源观看| www.国产亚洲69ty.久久久久久久久久久久| 99热精品网| 五月丁香婷婷钟和色图| 少妇做爰免费视看片| 亚洲热综合| 狠狠色五月| 99思思| wwwxxx五月婷婷小说| 台湾综合丁香五月蜜桃| 久热这里只精品| 欧美在线视频9| 五月婷婷中文字幕| 另类视频丁香五月| 婷婷色五月天综合网| 丁香六月色婷婷欧美| 99热主页日本| 激情图片婷婷| 夜夜躁婷婷AV| 五月天婷婷AV| 婷婷99狠狠躁天天躁中文| 九色视频入口91| 五月婷婷色欲| 综合色、色综合| 777精品久无码人妻蜜桃| 久久五月天综合| 亚洲五月婷婷| 色情五月丁香| 熟妇无码乱子成人精品| 少妇高潮A片无套内谢麻豆传| 五月天激情小说| 亚洲另类电影| 人妻操逼视频| 天天日日夜夜| 日本精品人妻无码77777| 国产精品国产成人国产三级| 欧美丰满熟妇BBB久久久| 丁香五月手机在线| 大香蕉五月天| 日本欧美成人片AAAA| 五月综合激情婷婷六月色窝| 乱精品一区字幕二区| 久草热久草在线视频| 激情五月婷婷| 92久久久| 9l视频自拍九色9l视频自拍九色9l社区| 国产婷婷综合在线免费视频| 日本色天堂| 99精品热视频| 五月丁香综合啪啪啪啪啪| 五月丁香日本在线视频观看| 激情综合网激情五月网| 欧美激情凹凸丁香网| 人妻啪啪啪| 91丨九色丨熟女|老版| 伊久久婷婷| 丁香婷婷色五月| 国产精品99久久久久久久女警| 国产精品久久久久久妇女6080| 全部老头和老太XXXXX| 五月天开心色色网| 91天堂网综合| www.激情.com.| 99成人精品| 5月婷婷五月天| 特级西西4444www无码| 性天堂久久| 激情五月婷婷网| 无码日本精品XXXXXXXXX | 五婷婷综合网| 免费播放片大片| 性色播| 啪啪视频99| 婷婷久久爱| 99亚洲精美视频在线观看| 久久婷五月婷| 中出内射的人妻视频| 六月丁香婷婷综合在线| AV色婷婷| 九九九激情综合| 亚洲操B视频| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 亚洲av网站| 欧美综合丁香网| 婷婷伊人网| 在线播放成人网站| 伊人青涩网| 91精品无码| 色情五月天首页| 97性视频| 丁香五月欧美婷婷综合| 日韩久久色| 综合视频五月| PORNY九色9l自拍视频成人| 激情综合久久| 色色五月天com| 丁香五月天啪啪| 亚洲夜夜操| 天天色播| 色青五月天| 久久精品在线| 久久99精品视频| 九色视频入口91| 久久这里只有精品07| 婷婷五月天激情小说| 精品无码久久久久久久久| 人人搡人人| 五月丁香六月婷精品视频| 激情婷婷五月天| 色婷婷成人做爰A片免费看网站| 99热 在线播放| 天天爽天天爽夜夜爽| 99人人干| 五月婷婷色播| 99re思思久久| 日日夜夜干| 九九自拍网| 99性爱视频网站| 少妇熟女视频一区二区三区| 九九五月天| 狠狠干婷婷| 亚洲成人AV电影在线| 99热超碰在线| 在线中文字幕视频| 婷婷伊人綜合| 色五月婷婷五月天激情综合| 91综合在线观看首页| 久热婷婷| 九九综合图片网| 亚洲色精彩| 婷婷综合欧美| 成人做爰A片免费看视频| 秋霞影音91人妻久久| 久久久久久久久久久97| 美女精品一级不卡视频| www狠狠com| 婷色五月天| 欧美99热| 九九亚洲视频| 免费啪啪亚州视频| 99国产精品久久久久久久久久久| 激情五月天婷婷色色色色色色色色色色色 | 丁香五月熟女| 99热精品免费| 色婷婷综合五月| 强壮公让我夜夜高潮A片视频| 色综合激情| 26uuu成人网| 看国产探花操逼三级片| 亚洲99手机免费看视频| 日韩 欧美 国产 一区 二区| 中文字幕AV在线播放| avv在线| 亚洲超碰青涩| 97色五月婷婷在线| 蜜桃成语时李时珍 免费| 久久婷婷色| 激情五月天色色网| 亚洲色啪| 97视频.干com| 色婷婷综合综合网| 日韩在线99| 亚洲免费av观看| 成人午夜在线视频| 欧美三级视频下载| 婷婷综合一二三| 丁香色五月AV在线| 99热一本久道| 人妻操日日| 五月婷婷综合性爱噜噜| 97久操| 日日操夜夜操中国无码| 色婷婷丁香AV综合| 伊人影院久久网| 婷婷香草网| 中字幕视频在线永久在线观看免费| 八戒青柠影视剧在线观看| 五月婷丁香| 精品久热| 777影视理论片大全在线观看| 色情综合网| 欧美黑人巨大性生话| 亚洲亚洲人成综合网络| 久久丁香五月| 风流少妇A片一区二区蜜桃| 免费观看欧美成人AA片爱我多深| 九九综合影音先锋| 色九九九综合| 色玖玖玖| 9l视频自拍9l九色9l成人| 在线观看亚洲视频影院| 亚洲色色色色色色色色色| 五月天色色激情综合| 丁香六月婷婷综合激情欧美| 丁香五月宝贝激情网| 婷婷色爱| 99九九视频| 深爱激情六月天| 色色色999| 少妇高潮呻吟A片免费看软件 | 91Chinese在线| 五月丁香婷婷婷婷综合网| 国产日日夜夜操| 99色最新在线视频网站| 秋霞三及片| 九色啦蜜臀| 日本超碰在线| 久久精品99国产精品日本| 丁香五月综合网| 久热久操久热久草国产91| 操操国产| 琪琪理论片| 久热这里只有精品视频免费观看| 天天做天天爱| 日韩色色视频| 狠狠干五月| 九九综合图片网| 亚洲国产成人综合| 2025天天爽天天摸| 丁香五月天婷婷中文字幕| 成人日韩欧美| 大香焦啪啪啪| 色播五月综合网| 99热国内| 婷婷综合在线| 婷婷亚洲综合| 久久婷婷免费| 久久婷婷五月综合色奶水99啪| 精品久久婷婷五月天| 五月丁香花婷婷玉莉AV| 色啪网| 丁香六月婷婷色XXXX| 九九综舍久久| 五月激情丁香久久综合网| 深爱五月网| 五月综合色| 在线综合亚洲欧美65| 26UUU欧美激情一区二区| 色婷婷深爱五月| 亚洲成人AV在线播放| 久热这里只有精品在线观看| 色小说五月天| 五月天成人综合| 日韩有码一区| 激情五月天综合网站网站网站| 久久免费婷婷视频| 啪啪91| 91久久色| 狠狠另类视频| 久久总和99| 五月天婷婷综合色| 丁香九月激情| 婷婷五月激情视频在线| 日本久久精品| 九月婷婷综合网| 麻豆123区| 91精品久久久久| 五月天婷婷无码| 色五月xxx| 久久伦乱| 国色天香成人网| 五月丁香婷中文| 黑人巨粗进入警花疼哭A片| 99精品视频偷拍| 久久色五月天激情小说| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 大香蕉久久| 欧美色偷拍| 夜夜骑天天操| 思思热久热| 99精品在线下载| 久热AA| 国产看真人毛片爱做A片| 超碰免费观看| 五月婷婷视频在线观看| 色色色色色五月| 在线播放中文字幕| caop在线| 色色A| 欧美A级成人婬片免费看理论| 天天激情5月天亚洲| 六月婷婷综合| 五月婷婷黄网站大全| 操操碰| 亚洲乱码w在线观看| 亚洲精品白浆高清久久久久久| 欧美性二区| 丁香婷婷色色| 激情九九九九| 亚洲精色| 欧美性生交XXXXX无码小说| 色婷婷丁香五月天| 丝袜激情网| www.色情五月天.com| 婷婷色5月天在线。| 婷婷午夜天| 99热e| 五月欧美丁香在线观看| 丁香青青五月天| 久热这里只有精品66| 激情丁香五月婷婷| 色99视| 91超碰人人操| 婷婷激情性爱| 狠狠人人婷婷| 久热9热| 啪啪五月天啪啪| 噼里啪啦完整版中文在线观看| 激情五月,色五月| 久超超碰| 久久婷婷六月综合| 亚洲激情综| 丁香五月婷婷五月天| 1囯产午夜仑鲁鲁| 人妻久久久久久久 | 97碰人人操| www.97干视频| 婷婷五月天小说| 色色日本欧美| 欧美啪啪9| www,色婷婷| 亚洲av网站| 久热综合| 丁香婷婷网| 伊人干综合| 狠狠操狠狠爱| 日本三级日本三级99| 欧洲激情网站| 亚洲精品久久久久AV无码| 久久丁香五月综合六月激情红杏视频| 色婷婷丁香五月| 激情婷婷丁香五月天小说| AV性爱网| wwW天天干| 久久婷婷伊人| 婷婷五月天激情视频| 婷婷五月激情基地| 午夜做爱影院| 97色色综合| 欧美丁香婷婷五月| 九九色院| 色情丁香五月婷婷精品| 九九黄色网| 欧美色五月| 日日干干天天干| 一本大道嫩草AV无码专区| 99亚洲大片精品永久在线观看| 激情婷婷五月丁香啪啪啪| 色婷婷丁香五月天在线观看| 色婷婷色九月| 9l视频自拍9l九色成人| 色五月无码| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 天天干 夜夜爽| 51成人| 五月婷在线观看| 国产片天天爽夜夜爽| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 久色网五月| 久久久久久久久久久久久久久久一道本| 天天久久综合| 99九精品| 亚洲热热视频| 五月丁香色狠狠干大屄| 91精品国产色猫| 久久综合干| 色综合五月在线| 欧美69色| 五月天婷婷激情小说电影| 九九婷婷五月天影视| 99re资源在线视频导航| 日韩久久色| 亚洲五月天综合| 久久婷婷丁香视频网| 五月丁香777| 婷婷五月色丁香在线看| 涩九九九九| 婷婷亚洲色| 激情性五月天免费小说视频 | 婷婷五月天影院| 少妇丁香婷婷| 桃色成人网| 色五月丁香婷婷久草| 99久在线视频| 天久综合91综合首页| 激情网五月| 久热这里只精品| 亚洲丁香五冃97色| 91九色|疯狂|高潮|对白|| 色国产五月| 日韩在线观看亚洲| 色五月AV| 五月开心深爱激情网| 99久久精彩视频。| 大香蕉久久伊人网| www.色婷婷| 色色哒五月婷婷六月丁香| 久操大香蕉| 超碰免费人人肏| 99综合免费视频| 小视频久久久aaa| 天天色播| 五月丁香色色色| 激情小说在线视频| 99re8在这里只有精品| 电影《战争与艾拉》免费观看| 91打屁股视频网站| 日韩aaa| 五月丁香色| 亚洲婷婷月丁香五月| 婷婷九月亚洲| 免费一区二区三区| 久久婷婷亚洲| 丁香五月色五月| 久久只有精| av在线不卡播放| 国产精产国品一二三在观看| 九九RE视频在线精品| 夜夜操,天天撸| 337p午夜影院| 99 热国产在| 亚洲色夜| 26uuu色五月| 成熟妇人A片免费看网站| 欧美在线97| 亚洲成人婷婷| www.婷婷,com| 那里有AV网址| 色五月婷婷操逼| 日韩精品VIP| 国产熟妇乱子伦hd| 五月丁香影视| 婷婷中文在线| 五月天激情图片| 天天夜夜操| 婷婷五月丁香婷婷| 99热日韩这里只有精品| 久久97| 99热99久久| 婷婷五月天大香蕉| 久爱综合| 在线观看免费视频| 国产精品美女久久久久AV超清| 色啪影院| 99热丁香| 婷婷五月天无码| 激情婷婷五月天日本系列 | 亚洲激情av| 成人丁香色| 在线观看996精品| 亚洲国产色婷婷| 91碰免费视频| 成人做爰A片免费看网站找不到了| 深爱激情丁香| 啊v视频在线观看| 九月激情网| 99热国内精品| 任你爽精品免费视频6| 久久激情网| 天天天天天天操| 久久ab| 五月天婷婷一起草| 婷婷五月激情网站| 婷婷五月激情的图片| 99久久9| www.91.com黄| 激情综合区| 99热综合网| 久久综合综合久久| 久久精品9| 九九热99视频| 激情四射五月天| 丁香婷婷五月激情| 碰碰女| 九月婷婷综合| 思恩热国产视频右线观看| 五月丁香激情综合啪| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 日韩成人电影在线播放| 色琪琪一综合久久激情五月视频| 亚洲综合视频在线| 久久视频这里都是精品| 五月丁久久| 激情丁香婷婷五月天| 亚洲V国产V欧美V久久久久久| 色六月天| 久久嘟嘟丁香| 久久99久久99精品免视看婷婷| 九九热这里只有精品5| 精品久久久91久久影视网| 国产密乳av一区二区三区四区| 丁香,开心成人,久久| 日本欧美国产| 婷婷五月天综合亚洲| 欧美美女国产日韩一区二区久 | 日韩九区| 激情五月深爱五月| 天天日天天色| 激情黄色五月天| 亚洲色婷婷视频| 97 A I色色| 色狠狠999综合| 色色色色色色色色综合网| 色99在线| 99免费超碰在线| 亚洲色区17| 91成人看片| 九九热这里只有精品556| 激情5月婷婷狠狠干| 六月天丁婷婷| 婷婷五月激情丁香| 欧洲亚洲免费视频9| 99久久这里只有精品| 五月丁香婷婷五月色| 五月天开心色色网| 久草狼人| 天天狠天天狠| 色狠狠图片| 久re热视频| 婷婷亚洲综合| 国产黄大片在线观看画质优化| 婷婷五月综合色小姐小说| 99re在线视频| 天天干夜夜操A片| 深爱开心激情网| 婷婷激情五月综合| www狠狠| 99成人| 丁香五月天啪啪| 五月激情婷婷偷拍| 色综合网址| 久久在这里有精品| 69色色视频| 思思精品视频| 丁香午夜天| chaopeng在线人人| 精品久久9| 丁香婷婷五月天色播| 综合在线色婷婷| 五月婷丁香| 天色色综合网| 色婷婷综合网| 丁香五月婷婷综合网| 黄网免费看| 七七婷婷综合| 久久婷婷丁香| 五五月五月| 日韩综合久久| 久久久高清| 色情婷| 开心四月婷婷在线色播播| 六月丁香激情| 熟妇人妻中文字幕无码老熟妇| 亚洲操B视频| 成人必爱视| 色婷婷小说网| 国产精品久久久久久亚洲毛片| 丁香五月婷婷偷拍| 久久五月天精品视频| 色情成人五月天| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 丁香五月欧美| 丁香五月激情图片婷婷| 五月婷婷狠狠干| 婷婷色情五月| 丁香六月婷婷| 99热精品在线| 天天综合 99久久婷婷| 怡红院院久久| 97在线精品| 五月婷中文娱乐综合| 性爱在线播放av| 五月激情综合网| 在线观看日韩12345区| 日日操夜夜爽白洁| 免费AV在线| 在线亚洲综合| 九九热这里有精品23| 色色五月天网站| 亚洲色99综合天堂| 开心五月天私房婷婷| 激情综合色婷婷啪啪六月天| 狼人伊人天堂| 天天天天天色| 久久综合激情| 国产在线自| 天天射夜夜骑| A久久| 超碰国产AV| 六月婷婷国产| 五月丁香成人网| 五月婷婷性爱| www.狠狠| 激情人妻蜜夜系列区| 亚洲精品成人| 丁香婷婷久久老熟女综合网| 91色操| 日噜噜色| 日日天天天| 久久99网站| 丁香五月婷婷av| 五月婷婷在线综合| 亚州第一黄网| 五月天婷婷色小说| 日韩另类| 日韩综合网络男女香蕉a片| www.婷婷五月| 五月婷婷黄色毛片| a久久免费视频| 九九综合九色欧美狠狠| 天天插综合在线| 天天色综网| 99热亚洲精品| 天天日天天舔| 综合久久六月| 婷婷综合精品视频97| 97自拍视频网| 五月激情精品视频| 色婷婷丁香| 深爱丁香网| 亚洲色热| 99噜噜噜在线播放| 亚洲激情婷婷| 在线婷婷| 激情视频网址| 婷婷九九| 色色色五月婷婷| 久久激情五月| 五月天婷婷在线AN| 99这里只有精品视频免费| 亚洲人妻av| 中文字幕成人| 婷婷伊人五月天| 五月丁香综合网色欲| 久久新地址| 精品激情| 26uuu欧美| 色色色在线免费视频| 可以看的av| 精品少妇蜜臀91| 欧美性爱专区| 九九久久网| 97五月天婷婷综合激情网| 男人天堂99| 99久久99视频只有精品| 超碰人妻在线| 五月丁香久久呀| 激情久久久| 五月天婷婷青青| 亚州第一黄网| 色色色色色色网| 天天久综合网永久入口17v| www.五月天色色.com| 99热最新| 粉嫩AV久久一区二区三区| 天天插天天干天天舔| 午夜av网| 99日韩| 色五月丁香五月五月婷婷| 亚洲欧美在线观看| 色色色成人网| 五月婷婷六月天| 六月丁香啪啪| 亚洲色vA| 欧在线一区| 五月婷婷亚洲| 99热综合在线| 亚洲乱码日产精品BD| 六月丁香婷婷色综合| 2015在线中文字幕| 色欲午夜无码久久久久久张津瑜| 97碰碰人人| 成人 在线观看国产| 午夜色丁香| jiujiujiuwuyuetian| 久热这里只有| av性爱在线| 玖玖五月丁香| 99热这里只有精品2| 五月丁香网站在线播放| 九九热内射| 99性爱视频| 五月天婷婷久久日| 伊人大综合| 九热...av| 丁香无月在线观看| 婷婷97色| 中文字幕人妻在线| 翔田千里aV中文字幕| 色吧99| 996er热| 能看的av片| 亚洲网站999| 免费看欧美成人A片无码 | 99热这里只有精品268| 亚洲AV成人一区二区在线观看| 色噜噜狠狠色综无码久久合欧美| 金桔一区二区ab地址| 69热91天堂| www.婷婷五月天| 久久久精久人妻| 久久久jd| 嫩草AV久久伊人妇女超级A| 激情综合五月开心狠狠| 99色这里| 在线亚洲综合| 五月丁香六月| 99热这里只有精品3| 99色热视频| 色和综合网| 99人妻碰碰碰久久久久禁片| 婷婷五月综合在线视频| 人人操 色| 日本无码专区| 99精品在线观看视频| wuyuedingxiang99| 丁香婷婷浪潮AV久久综合| 99久在线精品99re8热| 另类小说激情五月天| 六月丁香五月婷婷首页| 五月婷婷国产| 99这里只有| 日韩精品二三区| 亚洲综合网激情五月天| 色婷婷国产精品综合在线观看| 无遮挡国产高潮视频免费观看| 91丨九色丨熟女丰满| 狠狠操狠狠狠| 色九网| 情一色一乱一伦一91A| 日本女色人人| 色播五月丁香| 天天干天天日天天操| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | www,av好吊操| 色天天久婷婷| 综合久久综合| 9 大屁股在线视频精品| 欧美性生交XXXXX无码小说 | 色婷视频| 日韩激情婷婷五月天| 婷婷五月激情欧美| 婷婷五月激情小说| 中国丰满熟女A片免费观| 五月丁香综合啪啪|