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

ARTICLE DETAIL

資訊詳情

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

C# Basler相機(jī)采集實(shí)戰(zhàn):pylon SDK圖像獲取與避坑指南

C# Basler相機(jī)采集實(shí)戰(zhàn):pylon SDK圖像獲取與避坑指南 簡(jiǎn)介C#結(jié)合Basler Pylon SDK實(shí)現(xiàn)相機(jī)圖像采集的完整示例工程主要面向機(jī)器視覺、工業(yè)檢測(cè)和自動(dòng)化領(lǐng)域的C#開發(fā)者解決在Visual Studio環(huán)境下調(diào)用SDK完成相機(jī)枚舉、參數(shù)配置、連續(xù)抓幀與圖像處理的實(shí)際落地問題。壓縮包共76個(gè)文件大小約2.16MB核心包含8個(gè)C#源程序、6個(gè)DLL動(dòng)態(tài)庫、9個(gè)可執(zhí)行文件另附軟觸發(fā)操作步驟講解圖、工程配置與說明文檔并可看到PylonLiveViewer輔助工具的工程記錄便于對(duì)照源碼理解每個(gè)環(huán)節(jié)的調(diào)用意圖。目前已有1412人學(xué)習(xí)下載。通過這套示例可系統(tǒng)掌握Pylon SDK在C#中的典型流程從TlFactory枚舉設(shè)備、創(chuàng)建相機(jī)對(duì)象到StartGrabbing啟動(dòng)圖像流、通過WaitForFrame或回調(diào)獲取幀數(shù)據(jù)再到解析像素并釋放資源搭配軟觸發(fā)說明圖和可運(yùn)行程序能快速在真實(shí)相機(jī)上驗(yàn)證效果并基于自帶源碼二次開發(fā)適合使用Basler工業(yè)相機(jī)搭建視覺檢測(cè)系統(tǒng)的研發(fā)人員快速入門。1. C# 利用 Basler SDK 實(shí)現(xiàn)相機(jī)采集圖像這臺(tái)相機(jī)的坑我替你踩過了做機(jī)器視覺的上位機(jī)早晚要跟 Basler 打交道。不管是讀碼、定位還是表面檢測(cè)第一步永遠(yuǎn)是「把圖像穩(wěn)定地拿到內(nèi)存里」。Basler 官方給了 C 和 C# 的示例但真到自己搭工程你會(huì)發(fā)現(xiàn)照著示例抄都抄不順相機(jī)連不上、畫面黑屏、采集幾秒就卡死、回調(diào)線程里沒法更新 UI……這些我全遇到過。這篇筆記就是圍繞「C# 調(diào)用 Basler SDK 采集圖像」這條主線把從環(huán)境配置到圖像回調(diào)、從參數(shù)設(shè)置到多相機(jī)擴(kuò)展的完整落地路徑講清楚順帶把我踩過的坑按「現(xiàn)象→原因→解決」寫出來新手能照著跑通熟手也能避開幾個(gè)隱蔽的雷區(qū)。2. 采集前必須搞清楚的 Basler SDK 底層的概念pylon 的三種取圖方式2.1 為什么 Basler 官方推薦用 pylon而不是直接操作相機(jī)Basler 相機(jī)的 SDK 叫 pylon它不是一個(gè)簡(jiǎn)單的驅(qū)動(dòng)而是一套跨平臺(tái)的運(yùn)行時(shí)和 API 層。你寫的 C# 代碼不是直接跟 USB3 或 GigE 的傳輸協(xié)議打交道而是通過 pylon 封裝的Basler.Pylon程序集去操作相機(jī)。這種設(shè)計(jì)的直接好處是上層 API 穩(wěn)定換相機(jī)型號(hào)、換接口USB3 換 GigE時(shí)代碼基本不用重寫。另一個(gè)現(xiàn)實(shí)原因是 Basler 的 pylon SDK 提供了完整的相機(jī)配置包.pfs文件、像素格式轉(zhuǎn)換、丟包統(tǒng)計(jì)等能力。如果你只用廠商給的dotnet示例而不裝完整 pylon Runtime雖然能跑但一旦碰到帶寬問題或者多相機(jī)同步就會(huì)力不從心。所以我的建議是老老實(shí)實(shí)裝完整版 pylon開發(fā)模式下安裝時(shí)會(huì)自動(dòng)注冊(cè)Basler.Pylon.dll到 GAC工程里直接添加引用就好。2.2 硬件觸發(fā)與軟件觸發(fā)選錯(cuò)觸發(fā)源圖像始終不來Basler 相機(jī)默認(rèn)是連續(xù)采集Continuous但很多視覺項(xiàng)目需要外觸發(fā)PLC 給一個(gè)信號(hào)相機(jī)拍一張。pylon 里觸發(fā)源設(shè)置是關(guān)鍵常見參數(shù)如下// 設(shè)置軟件觸發(fā)模式 camera.CameraOpened OnCameraOpened; camera.Open(); // 觸發(fā)模式Off / On camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.On); // 觸發(fā)源Software / Line1 / Line2 camera.Parameters[PLCamera.TriggerSource].SetValue(PLCamera.TriggerSource.Software); // 觸發(fā)激活方式上升沿 / 下降沿 camera.Parameters[PLCamera.TriggerActivation].SetValue(PLCamera.TriggerActivation.RisingEdge);這段代碼里TriggerMode決定是否啟用觸發(fā)TriggerSource選擇觸發(fā)源TriggerActivation只在硬件觸發(fā)時(shí)使用軟件觸發(fā)下可以不關(guān)心。常見翻車點(diǎn)是把TriggerSource設(shè)成了Line1但實(shí)際沒接信號(hào)線相機(jī)一直不出圖很多人第一反應(yīng)是代碼問題查了半天才發(fā)現(xiàn)是硬件沒接。軟件觸發(fā)模式下執(zhí)行camera.ExecuteSoftwareTrigger()才會(huì)拍一幀適合調(diào)試或離線測(cè)試。硬件觸發(fā)則不用調(diào)這個(gè)方法信號(hào)到來時(shí)相機(jī)自動(dòng)曝光并傳輸圖像。2.3 三種取圖模型即時(shí) Grab、循環(huán) Grab、回調(diào) Grab怎么選pylon 在 C# 里給開發(fā)者提供了三種取圖模型InstantCamera的GrabOne、GrabLoop和Grab回調(diào)機(jī)制。很多人拿官方示例直接改結(jié)果發(fā)現(xiàn)有的模型適合 UI 交互有的適合高吞吐選錯(cuò)模型后面會(huì)很痛苦。GrabOne單次采集阻塞式適合低頻率、簡(jiǎn)單測(cè)試但每抓一幀都要重新申請(qǐng)緩沖速度上不去。GrabLoop在后臺(tái)線程里循環(huán)抓圖ImageGrabbed事件把每一幀推出來適合實(shí)時(shí)顯示和檢測(cè)。Grab回調(diào)最貼近底層自己管理緩沖和回調(diào)適合需要精確控制圖像流或多相機(jī)并行的高級(jí)場(chǎng)景。最穩(wěn)妥的落地路徑是調(diào)試用GrabOne產(chǎn)品用GrabLoop。GrabLoop里每幀回調(diào)都會(huì)拿到IGrabResult你需要復(fù)制圖像數(shù)據(jù)不能在回調(diào)里直接保存Bitmap再跨線程使用。3. 跑通 Basler 相機(jī)采集的最小 C# 工程從引用到圖像 Bitmap3.1 創(chuàng)建工程并引用 Basler.Pylon 的正確姿勢(shì)新建一個(gè) .NET Framework 4.7.2 或 .NET 6 的 WinForms/WPF 工程都可以。Basler 官方 pylon 6.x 和 7.x 對(duì) .NET 6 的支持略有差別但核心 API 一致。添加引用的方式我一般這樣處理在解決方案里右鍵「添加引用」找到Basler.Pylon.dll默認(rèn)路徑在 pylon 安裝目錄的bin\DotNet下同時(shí)添加Basler.Pylon.USBCamera.dll或Basler.Pylon.GigECamera.dll取決于你相機(jī)接口類型。強(qiáng)簽名問題要注意Basler 的程序集是強(qiáng)命名的如果你的工程是 AnyCPU 在某些 32/64 位混雜環(huán)境里可能報(bào)BadImageFormatException。解決辦法很簡(jiǎn)單把平臺(tái)目標(biāo)固定為 x64。我們產(chǎn)線上全是 USB3 的 Basler所以工程一律 x64。PropertyGroup PlatformTargetx64/PlatformTarget /PropertyGroup這條配置在.csproj里加上能避免很多莫名奇妙的互操作崩潰。3.2 枚舉相機(jī)為什么你總是找到 0 臺(tái)設(shè)備用CameraFinder枚舉相機(jī)是最先要做的事。很多新手栽在「相機(jī)明明插上了枚舉卻返回空」。我的經(jīng)驗(yàn)里80% 是 USB3 驅(qū)動(dòng)問題特別是 Windows 把設(shè)備識(shí)別成了 UVC 相機(jī)而不是 Basler 專用設(shè)備。// 枚舉所有可用相機(jī) ListICameraInfo cameras CameraFinder.Enumerate(); if (cameras.Count 0) { Log(未找到 Basler 相機(jī)請(qǐng)檢查 USB3 線纜和驅(qū)動(dòng)); return; } // 取第一臺(tái)相機(jī)并打開 ICameraInfo first cameras[0]; using (Camera camera new Camera(first)) { camera.Open(); // 這里可以讀取相機(jī)型號(hào)和序列號(hào) string model camera.Parameters[PLCamera.Model].GetValue(); string serial camera.Parameters[PLCamera.DeviceSerialNumber].GetValue(); }這里CameraFinder.Enumerate()不是緩存結(jié)果每次調(diào)用都會(huì)重新掃描總線。如果掃描不到先看 pylon Viewer 里能不能看到相機(jī)再看驅(qū)動(dòng)是否安裝了 pylon 的專用驅(qū)動(dòng)。在設(shè)備管理器里Basler USB3 相機(jī)應(yīng)該顯示為「Basler USB3 Vision」類如果顯示的是USB Video Device那說明驅(qū)動(dòng)沒有正確接管卸載設(shè)備再重裝 pylon 驅(qū)動(dòng)即可。3.3 InstantCamera 的 GrabLoop 最小實(shí)現(xiàn)事件回調(diào)轉(zhuǎn) Bitmap用InstantCamera包一層采集邏輯會(huì)簡(jiǎn)單很多。下面是完整的連接和采集循環(huán)代碼核心是ImagesGrabbed事件和RetrieveResult方法private InstantCamera _camera null; private Bitmap _latestBitmap null; /// summary開啟相機(jī)并啟動(dòng)采集循環(huán)/summary private void StartGrabbing() { // 打開相機(jī) _camera new InstantCamera(CameraFinder.Enumerate()[0]); _camera.Open(); // 設(shè)置采集緩沖數(shù)量幀率越高緩沖數(shù)要適當(dāng)加大 _camera.MaxNumBuffer 5; // 注冊(cè)圖像回調(diào) _camera.ImagesGrabbed OnImagesGrabbed; // 觸發(fā)模式設(shè)為連續(xù) _camera.Parameters[PLCamera.TriggerMode].SetValue(PLCamera.TriggerMode.Off); // 開始抓圖 _camera.StartGrabbing(GrabStrategy.LatestImagesOnly); } /// summary每采集到一幀這個(gè)事件就會(huì)被觸發(fā)/summary private void OnImagesGrabbed(object sender, ImageGrabbedEventArgs e) { // 獲取抓取結(jié)果 IGrabResult grabResult e.GrabResult; if (grabResult.IsValid) { // 把 pylon 數(shù)據(jù)轉(zhuǎn)成 Bitmap using (Bitmap bitmap new Bitmap(grabResult.Width, grabResult.Height, PixelFormat.Format32bppRgb)) { System.Drawing.Imaging.BitmapData bmpData bitmap.LockBits( new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat); // pylon 提供像素轉(zhuǎn)換方法 grabResult.Convert(PixelTypeEnums.BGRA8packed); int length Math.Min(grabResult.PixelDataSize, bmpData.Stride * bitmap.Height); Marshal.Copy(grabResult.PixelData, 0, bmpData.Scan0, length); bitmap.UnlockBits(bmpData); // 復(fù)制一份最新的圖像交給 UI 線程顯示或處理 lock (_lockObj) { _latestBitmap?.Dispose(); _latestBitmap new Bitmap(bitmap); } } } }這段代碼里有個(gè)關(guān)鍵點(diǎn)grabResult.Convert(PixelTypeEnums.BGRA8packed)是必需的因?yàn)?Basler 相機(jī)默認(rèn)輸出可能是 Mono8 或 BayerRG8轉(zhuǎn)成 BGRA 才能安全地塞進(jìn)Bitmap。很多人在回調(diào)里直接拿PixelData塞Bitmap結(jié)果顏色全亂就是因?yàn)闆]做像素格式轉(zhuǎn)換。另外StartGrabbing(GrabStrategy.LatestImagesOnly)的策略表示如果處理速度跟不上采集速度pylon 會(huì)自動(dòng)丟棄舊幀保證你拿到的總是最新一幀這對(duì)實(shí)時(shí)顯示很重要。如果你的場(chǎng)景要求每幀都不能丟比如精確測(cè)量應(yīng)該用GrabStrategy.GrabOne或者把MaxNumBuffer調(diào)大并保證處理速度跟得上。3.4 顯示 Bitmap跨線程更新 UI 的三種方式從回調(diào)線程更新 WinForms 的PictureBox不能直接操作這是每個(gè)新手都會(huì)踩的坑。我常用的有三種做法按推薦程度排序第一種是BeginInvoke方法適合低頻率刷新代碼直觀private void UpdatePictureBox(Bitmap bitmap) { if (pictureBox1.IsHandleCreated) { pictureBox1.BeginInvoke(new Action(() { pictureBox1.Image?.Dispose(); pictureBox1.Image new Bitmap(bitmap); })); } }第二種是設(shè)置一個(gè)定時(shí)器每 30ms 去讀_latestBitmap并刷新 UI避免高頻BeginInvoke把 UI 線程塞滿。這種方法在高速相機(jī)下表現(xiàn)更好因?yàn)橛|發(fā)刷新受定時(shí)器限制。第三種是用ImageControl控件自身的同步機(jī)制但實(shí)際效果差異很大我一般不用。生產(chǎn)環(huán)境我建議用「定時(shí)器 最新幀」組合UI 不會(huì)卡CPU 占用也低。4. 相機(jī)參數(shù)與圖像質(zhì)量曝光、增益、像素格式、Gamma 的調(diào)參邏輯4.1 曝光時(shí)間和幀率的關(guān)系為什么設(shè)了 30fps 實(shí)際只有 10fpsBasler 相機(jī)的幀率上限不是固定的它受曝光時(shí)間和重疊模式影響。很多人把AcquisitionFrameRate設(shè)成 30結(jié)果實(shí)測(cè)只有十幾、甚至是個(gè)位數(shù)原因就是曝光時(shí)間太長(zhǎng)一幀還沒曝光完下一幀根本排不上。// 關(guān)閉自動(dòng)曝光手動(dòng)設(shè)置關(guān)鍵參數(shù) camera.Parameters[PLCamera.ExposureAuto].TrySetValue(PLCamera.ExposureAuto.Off); // 曝光時(shí)間單位是微秒 camera.Parameters[PLCamera.ExposureTime].SetValue(5000); // 5ms 曝光 // 設(shè)置目標(biāo)幀率 camera.Parameters[PLCamera.AcquisitionFrameRateEnable].SetValue(true); camera.Parameters[PLCamera.AcquisitionFrameRate].SetValue(30); // 如果相機(jī)支持自動(dòng)增益這里關(guān)掉避免自動(dòng)調(diào)整干擾圖像亮度 camera.Parameters[PLCamera.GainAuto].TrySetValue(PLCamera.GainAuto.Off); camera.Parameters[PLCamera.Gain].SetValue(0);這里邏輯很清晰ExposureTime單位是微秒5ms 曝光在 30fps 下完全來得及一幀周期約 33ms。但如果你把曝光設(shè)成 50ms超過了一幀周期幀率會(huì)被迫降下來。這是物理規(guī)律SDK 不會(huì)幫你糾正。4.2 像素格式選擇Mono8、RGB8、Bayer 之間的取舍Basler 相機(jī)像素格式取決于傳感器類型。彩色相機(jī)的默認(rèn)輸出往往是 Bayer 格式不是我們直接能用的 RGB。選擇什么格式直接影響帶寬和處理復(fù)雜度黑白應(yīng)用直接設(shè)Mono8帶寬最小速度最快適合做輪廓檢測(cè)和定位。彩色顯示用BayerBG8 pylon 轉(zhuǎn)換或者干脆讓 SDK 輸出RGB8packed。前者數(shù)據(jù)量小但 CPU 要參與轉(zhuǎn)換后者傳輸量大但免去轉(zhuǎn)換步驟。高精度測(cè)量可以考慮Mono12或BayerBG12位深更高但要注意很多顯示控件不支持 12bit需要自己做灰度拉伸。// 設(shè)置像素格式為 BayerBG8 camera.Parameters[PLCamera.PixelFormat].SetValue(PLCamera.PixelFormat.BayerBG8);像素格式設(shè)置錯(cuò)誤最典型的現(xiàn)象是圖像偏綠、偏紅或者有條紋。我一般在代碼里留一個(gè)配置項(xiàng)讓現(xiàn)場(chǎng)調(diào)試的人可以快速切換格式不用重新編譯。4.3 白平衡與 Gamma彩色圖像的觀感調(diào)整只能在采集側(cè)做如果你做的是彩色的視覺檢測(cè)白平衡設(shè)不對(duì)后面的顏色識(shí)別會(huì)一團(tuán)糟。Basler 相機(jī)有BalanceWhiteAuto參數(shù)但我發(fā)現(xiàn)自動(dòng)白平衡在產(chǎn)線上不穩(wěn)定——光源稍微變化顏色就漂移。穩(wěn)妥做法是手動(dòng)設(shè)定紅色和藍(lán)色增益。// 關(guān)閉自動(dòng)白平衡使用手動(dòng)增益 camera.Parameters[PLCamera.BalanceWhiteAuto].TrySetValue(PLCamera.BalanceWhiteAuto.Off); camera.Parameters[PLCamera.BalanceRatioSelector].SetValue(PLCamera.BalanceRatioSelector.Red); camera.Parameters[PLCamera.BalanceRatio].SetValue(1.5); camera.Parameters[PLCamera.BalanceRatioSelector].SetValue(PLCamera.BalanceRatioSelector.Blue); camera.Parameters[PLCamera.BalanceRatio].SetValue(1.2);Gamma 參數(shù)調(diào)節(jié)圖像中間調(diào)亮度當(dāng)畫面偏灰或者高光溢出時(shí)可以適當(dāng)調(diào)整。不過要注意Gamma 是像素轉(zhuǎn)換階段做的處理會(huì)影響像素的原始數(shù)值做精確測(cè)量時(shí)最好不要開啟或者保持默認(rèn)值 1.0。5. Basler 相機(jī)采集避坑與常見問題排查我踩過的 8 個(gè)坑5.1 現(xiàn)象圖像是花的像壞道一樣有斜條紋原因基本可以確定是像素格式不匹配。相機(jī)輸出 Bayer 但代碼按 RGB 解釋圖像必然顏色異常。解決辦法是在采集回調(diào)里先打印一次grabResult.PixelTypeValue確認(rèn)實(shí)際輸出的像素格式再?zèng)Q定是否調(diào)用Convert。5.2 現(xiàn)象程序跑幾分鐘后內(nèi)存暴漲最后直接 OOM這是最常見的「黑匣子」問題之一。根源在回調(diào)里創(chuàng)建Bitmap之后沒有釋放或者釋放了但引用還被 UI 線程攥著。我自己的血淚經(jīng)驗(yàn)是回調(diào)里Dispose舊圖、new新圖UI 刷新時(shí)再把_latestBitmap復(fù)制一份用完立即釋放。5.3 現(xiàn)象相機(jī)打開時(shí)報(bào)Generic exception但用 pylon Viewer 可以正常采集一般是工程里同時(shí)存在多個(gè)版本的Basler.Pylon.dll或者 32 位工程引用了 64 位 SDK。檢查引用路徑確認(rèn)所有項(xiàng)目都指向同一個(gè) pylon 安裝目錄平臺(tái)目標(biāo)統(tǒng)一 x64。5.4 現(xiàn)象熱插拔 USB3 線之后程序再也枚舉不到相機(jī)USB3 相機(jī)對(duì)熱插拔支持不好經(jīng)常是設(shè)備狀態(tài)沒復(fù)位。解決方法是設(shè)備管理器里禁用再啟用設(shè)備或者重啟程序前先拔插一次線。軟件側(cè)可以用CameraFinder加重試機(jī)制但物理復(fù)位通常更有效。如果要產(chǎn)品化建議在硬件設(shè)計(jì)上增加相機(jī)電源可控開關(guān)。5.5 現(xiàn)象圖像出現(xiàn)橫向撕裂或者移動(dòng)的橫線這個(gè)和曝光時(shí)間無關(guān)通常是丟包問題。GigE 接口要檢查網(wǎng)卡巨型幀是否開啟USB3 要檢查線材是否過長(zhǎng)或者供電不足。pylon 里可以通過PayloadSize和Statistic查看傳輸錯(cuò)誤。5.6 現(xiàn)象程序關(guān)閉時(shí)崩潰報(bào)access violation典型的關(guān)閉順序問題。正確順序是先StopGrabbing再注銷事件最后Close相機(jī)并釋放對(duì)象。很多人直接關(guān)窗體把相機(jī)對(duì)象釋放了后臺(tái)采集線程還在跑必然崩潰。private void StopCamera() { try { if (_camera ! null) { _camera.ImagesGrabbed - OnImagesGrabbed; if (_camera.IsGrabbing) { _camera.StopGrabbing(); } _camera.Close(); _camera.Dispose(); _camera null; } } catch (Exception ex) { Log(關(guān)閉相機(jī)異常: ex.Message); } }這段清理邏輯的順序很重要先停采集再關(guān)閉相機(jī)否則圖像回調(diào)里操作一個(gè)已關(guān)閉的相機(jī)錯(cuò)誤無法預(yù)測(cè)。5.7 現(xiàn)象WinForms 界面卡死整個(gè)程序無響應(yīng)定位問題要看卡死位置一般兩種一是在回調(diào)線程里同步調(diào)用Invoke而 UI 線程恰好等待相機(jī)操作完成造成死鎖二是在Form_Load里同步開相機(jī)并抓圖界面根本還沒顯示出來。我處理時(shí)把StartGrabbing放到后臺(tái) Task 里并且 UI 刷新統(tǒng)一走BeginInvoke不要等待返回值。5.8 現(xiàn)象同一個(gè)相機(jī)有的機(jī)器跑得好好的換一臺(tái)機(jī)器就頻繁掉線這種問題往往不是代碼問題而是 USB3 控制器兼容性。Intel 和 AMD 的 USB3 控制器對(duì) Basler 相機(jī)的支持有差異產(chǎn)線工控機(jī)最好選用同一品牌型號(hào)并且在設(shè)備管理器里關(guān)閉 USB3 的節(jié)能模式防止系統(tǒng)把相機(jī)休眠。這個(gè)坑在批量部署時(shí)很折磨人代碼解決不了只能通過硬件規(guī)范和驅(qū)動(dòng)設(shè)置規(guī)避。6. 進(jìn)階玩法把 Basler 采集封裝成獨(dú)立類庫并接入 OpenCVSharp 做實(shí)時(shí)處理6.1 設(shè)計(jì)一個(gè) CameraService 單例多窗體共享一個(gè)相機(jī)視覺項(xiàng)目通常有設(shè)置界面、運(yùn)行界面、調(diào)試界面如果每個(gè)窗體都自己開相機(jī)資源沖突會(huì)直接讓程序翻車。我通常把相機(jī)采集封裝成一個(gè)單例服務(wù)內(nèi)部持有InstantCamera對(duì)外只暴露最新幀和幀計(jì)數(shù)事件。public class CameraService { private static CameraService _instance; public static CameraService Instance _instance ?? new CameraService(); private InstantCamera _camera; public event ActionBitmap FrameArrived; public bool IsGrabbing _camera ! null _camera.IsGrabbing; public void Start(string serialNumber) { var cameraInfo CameraFinder.Enumerate().FirstOrDefault(c c.SerialNumber serialNumber); if (cameraInfo null) { throw new Exception($未找到序列號(hào)為 {serialNumber} 的相機(jī)); } _camera new InstantCamera(cameraInfo); _camera.Open(); _camera.MaxNumBuffer 5; _camera.ImagesGrabbed OnImageGrabbed; _camera.StartGrabbing(GrabStrategy.LatestImagesOnly); } private void OnImageGrabbed(object sender, ImageGrabbedEventArgs e) { try { using (var result e.GrabResult) { if (!result.IsValid) { return; } result.Convert(PixelTypeEnums.BGRA8packed); // 構(gòu)造 Bitmap 并通知訂閱者 Bitmap bmp new Bitmap(result.Width, result.Height, PixelFormat.Format32bppRgb); var bmpData bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); Marshal.Copy(result.PixelData, 0, bmpData.Scan0, bmpData.Stride * bmp.Height); bmp.UnlockBits(bmpData); FrameArrived?.Invoke(bmp); } } catch (Exception ex) { Log.Error(圖像回調(diào)異常, ex); } } public void Stop() { if (_camera null) { return; } _camera.ImagesGrabbed - OnImageGrabbed; if (_camera.IsGrabbing) { _camera.StopGrabbing(); } _camera.Close(); _camera.Dispose(); _camera null; } }這里的核心思路是把自己不能處理的異常捕獲并記錄避免回調(diào)線程崩潰導(dǎo)致整個(gè)程序退出。FrameArrived事件的訂閱者只負(fù)責(zé)消費(fèi)圖像不能阻塞太久否則相機(jī)緩沖會(huì)慢慢積壓。6.2 接 OpenCVSharp把 Bitmap 轉(zhuǎn) Mat 后直接跑圖像算法Basler 采集端只負(fù)責(zé)拿圖算法要用 OpenCVSharp 做的話需要一個(gè)高效的Bitmap到Mat的轉(zhuǎn)換盡量避免GetPixel這種逐像素操作。public static Mat BitmapToMat(Bitmap bitmap) { var bmpData bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppRgb); { Mat mat new Mat(bitmap.Height, bitmap.Width, MatType.CV_8UC4, bmpData.Scan0); // 克隆一份讓 Mat 與 Bitmap 互不依賴 Mat clone mat.Clone(); bitmap.UnlockBits(bmpData); return clone; } }有幾個(gè)細(xì)節(jié)新版本的 OpenCvSharp 里Mat構(gòu)造函數(shù)的step參數(shù)可以省略但如果你從Bitmap的Stride不等于Width * 4可能因?yàn)閮?nèi)存對(duì)齊你應(yīng)將bmpData.Stride傳給Mat構(gòu)造函數(shù)。Windows 位圖行字節(jié)數(shù)一般是 4 的倍數(shù)但圖像寬度不一定是 4 的倍數(shù)所以這個(gè)坑值得寫進(jìn)代碼注釋里。轉(zhuǎn)換后一定要Clone()否則 Bitmap 釋放后Mat數(shù)據(jù)可能被回收導(dǎo)致后續(xù)處理訪問的是野指針。6.3 驗(yàn)證采集鏈路是否穩(wěn)定的最小手段FPS 統(tǒng)計(jì)與幀間隔打印臨時(shí)寫一個(gè)性能計(jì)數(shù)器觀察采集是否穩(wěn)定比看畫面是否流暢可靠得多。以下是采集循環(huán)里加入 FPS 統(tǒng)計(jì)的寫法private int _frameCount; private DateTime _lastFpsTime DateTime.Now; private void OnImageGrabbed(object sender, ImageGrabbedEventArgs e) { _frameCount; var now DateTime.Now; if ((now - _lastFpsTime).TotalSeconds 1.0) { double fps _frameCount / (now - _lastFpsTime).TotalSeconds; Log($當(dāng)前采集幀率: {fps:F2}); _frameCount 0; _lastFpsTime now; } // ... 其他處理 }在生產(chǎn)環(huán)境里我會(huì)把這個(gè) FPS 值顯示在狀態(tài)欄并且設(shè)定一個(gè)報(bào)警閾值當(dāng)連續(xù) 5 秒低于設(shè)定幀率的 80%界面上立即報(bào)警。不要等到操作員發(fā)現(xiàn)「圖像卡了」才去排查主動(dòng)監(jiān)測(cè)能提前發(fā)現(xiàn) USB3 線松動(dòng)、系統(tǒng)負(fù)載過高等隱患。6.4 我自己的項(xiàng)目習(xí)慣參數(shù)配置化、異??苫厮荨D像可回放最后聊點(diǎn)實(shí)際的。我做 Basler 項(xiàng)目時(shí)相機(jī)參數(shù)曝光、增益、像素格式、觸發(fā)源從來不會(huì)寫死在代碼里而是存到 JSON 或 XML 配置文件里。現(xiàn)場(chǎng)換了一臺(tái)相機(jī)或者光源變了調(diào)試人員直接改配置文本就能適配不用重新發(fā)布程序。另外回調(diào)里的異常日志會(huì)帶上相機(jī)序列號(hào)和具體參數(shù)值方便回溯是哪臺(tái)相機(jī)、哪個(gè)環(huán)節(jié)出的問題。從第一次接觸 Basler SDK 到現(xiàn)在最深的體會(huì)是這套 SDK 本身并不難難的是穩(wěn)定性——線程模型、資源釋放、驅(qū)動(dòng)兼容這些看不見的東西才是真正決定項(xiàng)目成敗的地方。以上這些經(jīng)驗(yàn)是我自己踩坑踩出來的希望能幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九自拍伦理| 日韩无码三级影院| 日韩欧美女优电影| 超碰欧美| 东北女人的毛片| 黄色大片免费在线| 久久久久成人网| 狠狠爱综合网| 9久精品| 四虎AV在线观看| 尤物网站91| 91高清无码下载| 久久久久久久久国产| 无码国产Av| 国产suv精品一区二六| 欧亚在线视频| 另类图片欧美激情综合| 亚州欧美另类| 亚洲综合有码| 欧美 日韩 婷婷 五月| 长长久久88视频| 欧美日韩性爱无码| 天天干天天燥| 精品人妻一区二区三区在| 呻吟 欧美 日本 中出| 999热日韩精品| 超碰人人乐97| 久久亚洲av成人无码国产| 日韩九九九| 国精综合一二三区影视| 激情婷婷五月天| 日韩福利综合一区| 激情另类激情| 粉嫩少妇自慰在线| 青青网三级视频| 久久xxxx| 上海一级黄片| 日婷婷| 黑人精品欧美一区二区蜜桃| 久久久性少妇| 97在线观视频免费观看| 久久亚洲天堂| 久久永久无码人妻视频| 亚洲欧美另类图片| 久久久久96| 亚洲美女30b| 欧美色图成人网一区二区 | www.狠狠| 亚欧美天堂在线| 黄色欧美性爱视频| 熟妇的味道HD中文字幕| 免费观看的黄色的网站| 久久XX| 欧美天天干| 加勒比海色香蕉婷婷| 久草成人影片| 熟妇熟女一区二区三区| 亚洲丝袜在线观看| 亚洲天堂另类| 日本人妻最新在线中| 日韩免费a级毛片无码a∨| a片在线播放| 日韩性爱毛片操骚逼| 成人性爱视频在线看| 亚洲综合另类| 精品久久久久久久久久久久| 极品少妇久久久| 秋霞 色色| 欧美久久伊人| 亚州乱码中文字幕综合久久久| 亚洲 综合 欧美| 天美传媒精品久久视频| 亚洲日韩电影| 国产 无码 一区二区| 日本成人A片免费看| 3P乱轮视频| 色五月综合| 性爱视频久久| 老女人碰碰在线碰碰视频| 抽插一区二区视频| 国产精品无套内谢| 中文字幕91综合| 日韩有码免费视频| 91色夜| 亚洲伊人久久综合97| 东亚亚洲无码高清| 97色色色| 91超碰丝袜制服| 91人妻最真实刺激绿帽| 精品视频97| 91亚洲综合在线| 精品欧美不卡在线播放| 无码日韩人妻av一| 黄色不卡视频| 日韩啊V| 偷拍伦理视频| 久久久精选| 在免费jIzzjIzz在线视频| 欧美亚男人的天堂| 99超碰网| 国产亚洲禁久一区二区| 人夜夜精品网站香蕉嫩草| 九九九九一级| 91丝袜在线观看| 亚洲色欲天天人妻无码系列专区| 在线啊啊啊| 日韩 欧美 视频 在线 一区| 精品久久艹| 探花一区二区三| 97 国产一区| 人妻天堂综合网| 久射吧| 乱伦图一区| 一本久久精品中文字| 亚洲性刺激| 99精品成人免费看| 九久久精品| 欧美激情中文字幕另类小说| 9997se| 国产成人免费观看在线视频| 青青三级视频| 永久电影三级在线观看| 久草婷婷| 天美麻花大全视频| 操逼无毒无码免费视频| 国产黄色 A 片免费看| 丝袜天堂| 美國A片| 天堂精品| 久久乐| 欧美性天天| 殴美牲| 欧美黄色手机在线观看| 红桃视频高潮| 97资源久久| 英伦大奶子熟妇吊带| 狠狠色伊人亚洲综合网站色| 免费男人的天堂| 吻戏激情性巴克| 精品国产Av无码久久久伦古装| 五月婷婷爱六月丁香色| 亚洲无码成人精品| 另类图片五月天| 91四海无码日韩欧美| 色官网在线| 欧美亚洲厕所精品偷拍91| 日韩无码操逼片| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久婷婷亚洲| 日韩在线欧美精品一区二区| 午夜亚洲| 麻豆AV96熟妇人妻| 婷婷久久五月天| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 发朗少妇买婬全视频中文| 精品久久久av无码免费| 熟妇色99| 中文字幕超碰CAO| 人人妻人人玩人人澡人人爽| 97超碰这里只有精品| 色在线亚洲视频www| 91老熟女91老女人| 一二三啪啪专区| 亚洲精品国产精品成人| 在线五区| 人人噜夜夜操| 欧美亚洲玖玖玖| 亚洲无码一二三区| 六月婷激情福利天堂69| 亚欧高清v| 高潮的A片激情扒开一区| 人妻精品一区二区| 国产青青综合伊人| 亚洲色欧| 中亚黄色三级大片| 91性感网站| 婷婷五月天伊人| 色翁荡息又大又硬又粗又爽| 国产在线观看一区二区三区 | 日韩一级特黄av毛片| 精品69网| juliaann欧美丝袜办公室| 99婷婷| 欧美极品性爱天天射| 91老熟女91老女人| 亚洲熟女乱综合一区二区三区| 亚洲欧美精品91| 在线观看av区| 欧美亚洲中文字幕| 日韩色| 黑人精品一区二区在线播放| 亚洲国产美女久久久久| av三级电影在线播放| 亚欧美综合| 五月天色电影| 97日视频| 性九九九九九九| 亚洲成人在线播放| 乱色视频中文字幕| 国产日韩欧美三级片| 91精品国产日韩欧美综合| 曰韩人妻中文字幕在线| 情趣丝袜无码操逼视频| 国产第12页| 欧亚无码视频| 天天操夜夜操狠很操| 欧美中文字幕日韩在线| 久婷婷一区| 欧美日韩222| 日韩伦理久 久久 清纯| wwe 天天干.com| 亚洲情色婷婷五月天| 国产丝袜美女诱惑| 九月激情婷婷| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美日韩制服| 先锋女优在线观看视频| 国产黄色剧情影片麻豆免费播放| 一起草三级AV电影在线观看| 国产又粗又大硬免费色网视频| 好爽免费视频| 日韩操逼HD| 国产乱码精品一区二区三区四川| 狠狠干狠狠色| 老熟女91av| 有码色中文字幕在线观看| 天天天乱色综合全| 国产精品3| 91亚洲影视| 秋霞 色色| 精品欧美А∨无码黑人大荫蒂| 国产精品成人福利在线| 激情看片网站| 欧插网站| 91精品在线播放| 亚洲丝袜诱惑| 在线视频日韩欧美国产| 黑人天8A∨高清网站| 欧美顶级黄色大片免费| 久久99网站| 中美日韩毛片| 99视频自拍区| 一级成人性爱| 婷婷色影院| 亚洲丝袜色图| 91亚洲人| 国产高清MV操逼视频| 九九色热| 99色骚| 亚洲黄色电影| 欧亚性爱在线视频| 97资源制服丝袜| 日韩精品国模| 国产欧美在线观看免费观看| 欧美很很操视频| 日韩精品人妻系列无码天堂| 中文字幕av片| 加勒比在线观看一区二区| 五月婷久久| 欧美图片色综合| 亚欧洲日韩国产精品| 国产家庭乱伦性爱视频| 麻豆精品久久久久久久| 久久男人| 欧美人妻精品一区二区| 男生女生啊啊啊啊| 精品一区二区三区国产| 久久天天性久久伊人| 97资源超碰| 骚货 中文字幕 av| 日韩国产在线观看av| 国产99999| 99久久久无码国产精品性男| 亚洲 另类 丝袜 自拍 动漫| 国产午夜在线观看| 旡码电影特区| 免费久久一级毛片大黄| 九九久久久久久爱| 综合欧美亚洲| 91婷婷伊人狠人| 蜜臀久久99精品久久久久电影| 青青伊人这里只有精品| 国产日韩欧美| av日韩国产一区二区| 中文字幕视频2区| 男人天堂网站| 97综合在线观看| 男人天堂2030| 久久,精品一二三| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 丁香激情五月天| 玖色av| 亚洲天堂 视频你懂的| 91精品国久久久久久无码| 国产精品永久免费10000| 1024久久高清视频| dy888午夜老子影视达达兔| 熟女丰满人妻一区| 亚洲国产综合视频| 欧美精品 - 91爱爱| 国内毛片无遮挡国产| 超碰人妻中文在线| 黄色网址在线免费观看| 蜜桃香蕉久草精品在线| 啊啊啊操一区| 综合久久久久久久久91| 99久re热视频精品98| 就去色综合| 亚洲国男人的天堂| 人人干黄色| 懂色av中文字幕一区二区三区天美| 黄片色区软件| 鸥美中出| 亚洲美欧999| 国产精品呦一区二区三区| 中文一区在线日| 久久亚洲AV无码专区国产精品| 五月天亚洲网| 黄色污污污污污污网站| 中文字幕一区电影在线观看| 久久这里只| 免费看美国人人爽,人人操| 网站A V在线| 99在线啪| 99.色网| 国产亚州高清国产拍精| 国产综合久久久麻桃个| 五十路二区在线| 欧美性爱一级操| 超碰97亚洲| 欧美综合 站| 亚洲久热| 另类小色呦| 亚洲国产精品无石码久久 | 97综合久久| 久久国99999| 国产97视频免费观看| 大香蕉线| 99精品丰满人妻无码| 青青网三级视频| 狼狼色丁香久久婷婷综合五月| 国产精品一区在线播放| 中文字幕十五区| 欧美后进式| 国产欧美岛国精品一区| 97资源视频| 国产精品农村妇女| 欧美成人一区二区| 强上我不卡卡| 激情开心五月天| 天天操天天干一区二区 | 欧美性巨大╳╳╳╳╳高跟鞋| 后入精品| 欧美综合传媒| 欧洲精品久久| 成人精品视频一区二区| 激情婷婷五月天| 最新中文字幕在线亚洲| 岛国黄| 亚洲欧美另类激情小说| 91色插| 麻豆区久久久久亚| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 91女网站| 97色冈| www.人人cao| 狼狼色丁香久久婷婷综合五月| 91精品国产一区三一| 精品美女人人干| 欧美日韩青操| 性交一区二区在线播放| 使劲用力艹少妇视频一区二区| 久操视频免费在线观看| 性爱动态120秒| 91国产精品在线看| 国产亚洲在线观看| 天天狠| 亚洲精品男人的天堂| 久久五月丁香| 国产av尤物| 亚洲午夜免费狠狠干| 大香蕉综合在线| 日本最新1区2区3区| 欧美aⅴ99久久黑人专区| 天天综合有色网| 91骚妇| 大香蕉欧美伊| 伊蕉97蜜桃97狠狠综合干| 精品国产91久久久久久一区黄无| 91美乳| 久久久久亚洲精品| av久日| 久久精品女同亚洲女同13| 亚洲久久天堂| 九九久久久| 人人操,人人液| 中文字幕欧美日韩三级| 一类av片在线看| 91精品人妻电影| 怡红院一区二区熟女人妻| 99久久久久| 夜夜爽77777| 青青草吊丝| 人妻 制服 日韩 中文 在线| 老鸭窝日丰县女人| 国产视频第二页| 伊人影院日本| 久久精品国产亚洲AV片多多| 久久香蕉国产传媒一区剧情天美| 97青娱乐超碰久久| 欧美精品欧美精品系列| 蜜桃av色偷偷av老熟女| 18啪啪手机免费性爱| 欧美日韩香蕉| 日韩AV电影网站| 国产精品高潮久久AV| 91狠狠狠| 人人艹亚洲| 婷婷丁香在线| 天综合网欧美| 欧美超碰在线| 色爱国产| 亚州熟妇精品| 九九亚洲| 粉嫩绯色AV一区二区在线| 久草精品热视| 蜜桃久久一区| 777AV电影| 天天干18禁| 香蕉久久AⅤ...| 开心五月深爱五月| 久欲AV| 少妇熟女1区2区3区| 免费看欧美美女黄色大片| 亚洲天堂性爱| 中文字幕福利视频一区二区三区在线观看| 小说区 图片区色 综合区| 欧美日韩性爱视屏免费看了| 精品人妻一区二区乱码一区二区| 亚洲在线欧美| 婷婷丁香久久| 91精品少妇搡搡搡| 国产精品干干干| 强上我不卡卡| 伊人网高清| 一区二区三区精品久久| 动漫av中文| 黄色片A级一区二区三区| 丁香五月偷拍| 91精品导航| 无码免费精品高清| 青青青草伊人精品| 亚洲 国产 精品一区| 2019AV天堂| 亚洲丝袜综合| 偷窥自拍亚洲色图| 97一区二区三区视频| 亚洲黄片免费在线播放| 久操B网| 亚洲精品97久久| 新版天堂中文资源8在线| 久日91在线| ji熟女.com| 91撸色网 玖玖网 欧美| 婷婷干黄色| 久久夜色一区二区| 亚洲精品白浆高清久久久久久| 超碰超碰欧美| 99亚洲精品| 天天夜夜久久| 人人艹亚洲| 九九热精彩视频| 国产精品国产自产高清AV| 黄色高清久久无码依人| 久久久99免费| 超碰午夜| 日韩另类| 91天天综合日韩欧美| 狠狠久久亚洲欧美专区| 日本淫乱女一区二区三区视频| 天堂岛av| 内射小黄片| 1二区9| 黄页视频网站野外| 天天搞欧美| 91美女丝袜诱惑视频| 日本不卡二区| 亚州春色| 久99热| 国产福利精品98视频| 91亚洲欧美色图| 翔田千里一区二区三区奶水| 97天天在线| 99热精品在线| 成年人网站在线免费观看| 精品国产72| 特级丰满少妇一级AAAA爱毛片| av天堂加勒比| 久久e6只有精品| 人人操人人操人人人操| 亚洲有薄码区久久在线一区| www老逼91| 韩日性爱av| 亚洲九九视频| 久久久久9999妇女| 午夜免费视频1000| 国产三级在线现体验区| 久操国产在线| 久久同城AV| 亚洲激情综合| 青青伊人这里只有精品| 日韩欧美女求操每天更新| 欧美狠狠弄| 亚洲日韩国产欧美综合v| 夫妻天天操岛国视频| 日日黄色三级网站| 亚洲欧美大香蕉| 啪啪啪东京| 国产综合久久久麻桃个| 91男人天堂网| 97大色网| 91色艳| 黄片无码在线制服| 黄色免费一级在线毛片| 欧美 色 亚洲| 亚洲极品| 亚州色国| 日韩一级二级在线| 日韩AV一区二区三区四四| 免费的很黄很污的全部视频| 操国产逼| 91中出| 视频二区美腿制服人妻欧美| 久久久专区| 夜夜高潮夜夜爽高清视频一 | 天天干,天天日| 久久高清欧美国产| 18禁免费视频| 欧美五十路熟| a片偷拍视频| 91亚州| 91第一页| 欧美姓爱综合网| 久久久成人免费av电影| 综合97久久| 久久99精品九九久久久婷婷| 五月天综合网| 91欧美美女日韩国产婷婷| 麻豆久久视频在线地址| 激情婷婷五月天| 女人双腿搬开让男人桶| 欧美强奸一区二区诱惑| 333kkkk·亚洲com久久| 天天看天天在线精品| 免费日韩黄片| 超清福利精品视频在线| 精品国产91内射久久| 少妇一级无码精品| 亚洲欧美日韩制服另类| CCYY草草影院地址入口| 少妇熟女1区2区3区| 国产无码精品久久久久久| 超碰97护士| 亚洲国产精品成人久久蜜臀| 极品销魂美女一区二区| 婷婷伊人五月| 91精品亚洲内射孕妇| 操操逼视频| 日韩精品在线观看观看| 中文一区在线视频| 免费人成?大片在线播放| 久久精品性| 性爱综合网| 欧美 中文字幕 一区| 狠狠搞 亚洲91| 久久久18禁| 日韩 女同 综合| 校园春色美腿丝袜 | 校园春色综合| 四虎AV影视国产精品亚洲精品| 操人妻逼91| 欧美日韩青操| 91岛国动作片| 午夜a成v人电影| 美中日韩无码| 亚洲 综合 欧美| 日韩传媒在线| 中文字幕av片| 成人精品无码| 久久欧美性爱视频| 嗯嗯啊在线视频| 丁香婷婷激情五月天无毒不卡| 九草九九九| 神马午夜久久| 日韩人妻制服丝袜av| 99热精品在线| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 亚洲日韩97| 97操| 嫖老熟女A片一二三区| 亚 欧 美 综合| 91欧美丨精品丨入口| 男女啊啊啊啊啊| 97超碰磁| 嗯啊不要在线观看嗯啊| 色男人色天堂东京热| 91精品国产91熟女| 国产www色在线观看| 亚洲精品 大香蕉| 国产后入内射| 69XX一中文字幕人妻91| 日本片日本片祼观看网站在线看中文版网页在线看 | 久操大香蕉手机视频在线看| 97视频在线视频| 欧美91精品国产自产| 国产九九九九九九九九| 91艹逼精品| 精品人妻一区二区三区视频在线| 99re公开精品免费视频| 欧美亚洲第1页| 一区二区影视| 精品人妻美妇91job| 少妇三P| 精品一级毛片在线观看| 亚洲AV免费在线| 金典av| 免费久久一级毛片大黄| 中文啪啪视频| 麻豆av一区二区| 中国探花熟女| 很狠操| 一级特黄aaa大片在线观看成人一级片在线观看| 色婷婷导航| 一本色道久久综合亚洲二区三区| 少妇无码av专区线| 97久久精品国产| 日本伦乱九九九综合| 成人夜夜爽| 日本大香蕉综合网红本杳社区| 亚洲九月丁香| 天天爱综合网| 国产女性无套 免费观看| 男人把坤坤插入女人的下体| 三级AV入口| 91久久18禁| 国产精品人人爽人人做可爱福利| 亚洲淫乱骚妇AV| 久久久国产av美女私房| 99xav| 国产探花日韩援交| 玖玖综合网| 91欧美少妇| www.色99| 尤物视频网 刘玥| 色yeye成人免费视频| 2019天天干天天操| 无码人妻精品一区二区三区九九| 色香av| 99精品九九九九九九| 一本色道久久综合亚洲二区三区| 日va操| 国产中文字幕在线| 五月天丁香网| 青青草中文字幕| 久久嫩草国产成人一区| 色哟哟综合| 久久一二三四五六七八九区区| 18禁免费视频| 青青草在线视频美女| 99超级碰免费视频| 蜜臀在线视频| 久久久久网站-538在线视频-欧美永久乱码| 操操吧亚洲乱伦视频| 欧美熟女逼久久久久久| www.久久| 岛国福利在线精品播放| 超碰 国产熟女精品一区| 国产精品亚洲免费| 久操视频在线观看| 欧美精品久久| 色色色综合| 国产精品又黄又猛又粗| 久久久少妇诱惑精品视频| 丁香五月天堂网| 三男一女不戴套的A片| 少妇丝袜在线观看AV| 色婷婷色99国产综合精品| 91操操操操| 美女网站黄页| 亚洲情色五月天| 八人操人人摸人人看| 久久岛国| 嗯嗯啊好大| 五月综合色| 啪啪视频亚洲第一| 91亚洲影视| 欲香欲色天天天综合和网| 亚洲五月婷婷| 久久人人爽爽人人爽人人片αV| 丰满欧美放荡少妇在线| 国产农村妇女精品一二区| 免费看欧美美女黄色大片| 插入逼91| 日比av无码| 欧美变态激情网| 欧美性天天影视| 人妻中文字幕日韩电影| 日韩av免费一级电影| 狠狠色五月亚洲91| www. 男人天堂成人在线| 久久久艹艹艹| 欧美日韩99| 亚洲啪啪视频一区二区| 偷拍 欧美 日韩| 日韩欧视频| 997色在线| 91天天爱| 超碰97男人| 精品久久在线区一区| 欧美日韩99| 国产精品自产拍在线观看社区| 国产又猛又粗又爽又黄| 久久少妇| 女性91网站| 91久久国产精品| 日韩欧美蜜桃精品久久中文字幕久久| av麻豆啪啪| 色一射色一射| 青青青操| 北条麻妃99精品青青久久| 精品人妻伦一二三区久久| 韩国三级理论在线| 在线可观看的黄色网址| 口爆吞精在线观看| 黄色网址在线免费观看| 熟女乱伦A| 亚洲国产婷婷在线播放| 亚洲精品xxx| 成人无码在线超碰网| 黄片qw| 黄色电影在线播放综合网站| 国内毛片热久久思思热| 日产操逼| www.亚洲黄色| 吖在线不卡一区二区国产剧情| 亚洲免费成人在线高清无码视频| jizz啪啪| 国产成人99久久亚洲综合| 婷婷丁香九月| 国产三级多多影院2022国产AA一级毛片无码 | 全球成人中文在线| 亚洲成人久久美女| 首页亚洲国产高跟丝袜诱惑视频| 久久思思热| 色97| 欧美爆操91| 91爱做| 国产外初女出血视频| 好一吊区二区| 亚洲日韩精品一区二区| 9久在线视频只有精品| 欧美性爱第一页久久| 中文字幕乱码人妻二区三区| 欧美成人一级免费电影| 韩国黄色片精品久久久| 欧美黑人性猛交91| 午夜精品久久久99| 日韩97视频| 国产丝袜啪啪| 18禁在线视频| 日本 欧美 国产一区| 好吊妞转入那个网| 青青青青草av在线观看| 亚洲日本大香蕉1| 夜色综合| jizzjizz欧美| 亚洲影视综合网| 老女人老91妇女老热女| 中文字幕一区二区三区人妻不卡 | 色色色色网站| 欧美日韩人人精品| 人人九九精| 老熟妇乱轮| 成人免费在线网站| 人妻一区二区三区| 丝袜天堂网| 熟妇乱伦一区二区| 亚洲熟女av日韩熟女| 久久久久久大| 欧美三级偷拍| 8x福利精品第一福利视频导航| 96久久精品一二三区色欲| 丝袜内射| 色狠狠一区二区三区香蕉| A片大香蕉在线| 色综合久久888| 歐美性天天| 91精片| 熟女突然公开看18禁影片| 蜜桃精久三区| 日日不卡av| 激情综合二| 亚洲色图加勒比| 中文字幕成人乱码熟女精品国50 | 亚洲无限观看| 精品国模无码| 夜夜操2028| 玖玖综合视频| 亚洲精品xxx| 精品乱子一区二区三区99| 91亚洲最新在线| 免费观看的黄色的网站| 天天综合影院91| 99人妻| 色色色热| 日韩精品资源| 日亚韩精品视频二区三| 久婷婷一区| 国产肏逼网站| 一牛影视久久久一区二区三区| 东京热毛片调教| 黄片不用下载在线观看| 国产一区二区久久| 吖在线不卡一区二区国产剧情| 久久久99久9| 久久超碰com| 狠狠干狠狠干| 亚洲毛片久久| 天天爽天天爽| 97视频免费播放| 欧美久热| 天天干18禁| 超碰免费在线| 超碰色老头| 嗯啊不要在线观看嗯啊| 亚洲性天堂| 亚洲91极品| 天天综合中文字幕 91| 开心五月天激情网| 欧美性暴力| 麻豆蜜桃视频在线观看| 男人天堂网站| 激情文学 国产一二三aV| 夜夜草我| 999综合色| 熟女精品va中文字幕| 人妻熟女一区二区| 99日精品欧美国产| 狠狠爱夜夜| 天天色综合图片| 天堂v无码免费视频| 91网亚洲| 亚洲中文国际强奸字幕| 影音资源男人日韩| 婷婷色五月激情| 欧美色女人| 99re95| 日本国产高清色www视频在线| 日韩97精| 青草视频在线看看看看看看看看看| 九九亚洲| 成人热久久精品| 日韩乱伦视频| 91熟女丨老女人| 欧美一二三区四五区| 九九精品99| 欧美人妻一区二区| 91在线欧色| 家庭乱伦国产| 久久精品无码熟妇一区二区三区视频导航| 99热自拍| 天天日天天搞天天干| 色99久草| 日日夜夜骚| 亚洲精品日韩国产欧美| 日本色色色网站免费看不卡| 久久久久久久久久精| 亚洲操逼网| a男人的天堂久久一级A毛片| 十八禁电影伊人网| 91女网站| 亚洲国产精品成人无码久久久| 国产美女自拍视频| 超碰人妻中文在线| 日韩啪啪啪啪啪| 人人摸.人人色| 久久超碰com| jiujiujiujingpin| 91neishe| 丰满人妻大屁一区二区| 手机看片91人妻| 亚洲 欧美 日韩另类 麻豆| 亚洲精品一二三四区| 麻豆啪啪啪视频| 久久日韩精品一区二区| 9精品久久久久| 亚拍在线| 色好看av| 亚洲AV无码天美传媒一区| 成人八戒网站| 内射小黄片| 青青在线视频日韩欧美| 91高清日| 亚洲丝袜99| 丰满搜索结果 -第18页- 久久高清无码| 日本午夜福利影院| 探花一区二区三| 黄片免费日韩| 国产精品视频在线观看| 热热色国产一二区AV| 精品久久久久黄少妇| 婷婷五月天影院| 91麻豆va国产精品| 国产AV无码AV| 午夜精品久久久久久久久久蜜桃| 国产99热| 日日摸日日碰夜夜爽视频| 天天干1区2区在线| 日本熟妇精品九九| 无码视频一区二区| 欧美狠狠弄| 久久综合18p| 欧美日韩超碰在线| 亚洲综合激情五月久久| 无码国产精品久久久久| 欧美日韩不卡a片| 日本色色视频网站| 日本性交操一区二区不卡系列| 欧美极品| 天天影视色香欲综合网小说| 青青色在线观看| 熟女精品日韩一区二区三区| 亚洲同性aV综合| 久久久三区二区一区| 热热色综合网| 亚洲图片偷拍欧美| 精品人妻伦一区二区三区久久| 91性| 在线播放中文字幕| 天美久久久久| 亚洲天堂另类| 91网站18禁| 黑人猛交| 亚洲无码超碰免费| 国产日逼视频| 国产不卡免费在线视频| 日韩性爱电影一区| av凤凰久久久| 久久性爱视频| 宅男91视频在线播放| 久久久久久久九九九九九九| 欧美一二三区四五区| 欧美日韩婷婷中文| 60秒免费视频| 91N综合网| 91情色| 99这里只有精品国产| 日本视频一区二区三区| 黄网色一区二区三区四区精品| 欧美一区二区亚洲天堂| 欧美九9 9 9| 夜夜操91744565| 欧美午夜视频| 91精品国产91久久久久久久久久久久| 欧美日韩亚洲少妇寂寞影院正在播放 | 久久久久久免费电影| 蜜臀久久99精品久久久久久成人小说 | 黑人美精品 A片| 色爱三区| 91 亚洲 欧洲| 韩国国产欧美情侣视频在线| 日本高清一本二本免费不卡| 97伊人网| 激情抓乳插进去啪啪啪日韩 | 亚洲,欧美,综合网| 92久久| 国产欧美精选激情视频| 国产又爽又黄| 熟妇熟女一区二三区| 欧美高潮| 国产深夜福利| 国产一区二区三区导航| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日本免费中文一区二区三区四区 | 家庭乱伦国产精品| 成人三级片无码| 日本天天人人狠狠在线日美女 | 日本高清有码网址视频| 亚洲色天堂日韩中| 色网1| 最新日本中文字幕| 俺去俺来也在线www| 久久久久久大| 黑白配性爱AV成| 亚洲图片日本AⅤ欧美在线| 婷婷丁香五月综合| 亚洲色悠悠久久88| 九九九久久久| 色丁香久久| 一直超碰| 国产精品久久久| 国产做?爰片久久毛片?片美国| 玖玖综合色| 国产成人精品网站| 黑人无码一区二区| 78久久久| www.av家庭乱伦| 超碰AV在线| 久久机热| 欧美日韩另类在线播放| 在现视频女上位好爽| 亚洲精品蜜桃久久久| 综合操逼| 歐美性天天| 精品高清av中文字幕| 精品女人999| 狠狠躁伊人中文字幕| 自拍偷拍 日韩无码| 午夜精品久久久久| www.99色| 人人爽夜夜操| 精品无码一区二区三区色欲| 婷婷丁香六月天| 变态另类专区| 亚洲色图欧美视频| 在线中文AV| www..com操老师| 日韩欧美被操黄免费观看| 东北毛片| 亚洲熟女国产综合另类| 欧美日韩1234| 麻豆人妻精品一区二区| 人妻精品一区二区三区| 在线不卡视频| 久久久一区二区三区麻豆| 尤物一级在线免费观看| 在线观看午夜婷婷久久久久清性观看| 免费看片黄| 久日91在线| 性在久久久久久| 亚洲熟女乱综合一区二区三区| 国内精品a| 神马影院午夜福利久久久| 亚洲第一免费视频| 欧美日韩国产人人| 人人操人人搞人人草| 97网址97| 强奸乱亚洲| 欧美人妻制服| 综合日本女人伊人| 亚洲国产精品无码AV久久| 日韩伦理久 久久 清纯| 四虎国产精品永久在线囯在线| 欧美日韩淫加| 国产大陆天天艹| 五月天亚洲网| 99久久婷婷| 中日韓欧美高清| 国产精品熟女AV中文字幕在线播放| 中文字幕欧美丝袜07资源| 在线女人91| 黄色人人| 色婷婷A V一二三四区麻豆综合| 日本肏逼视频在线观看| 欧美色视| 久久超碰免费的| 黄色网址在线免费观看| 黑人性欧美| 欧美黑人猛交春色影视大全| 97超碰色屌| 日本不卡高清视频| 2019男人的天堂| 荡小穴在线观看| 日本不卡高清视频| 免费视频观看60秒| 91色黑人少妇| 一区三区啪啪| 97视频在线| 东北操逼| 欧美性天天影视| 日韩色欲久久一二三四区| 大香蕉中文201| 97干天天| 99精品久久久久久久婷婷蜜桃| 欧美色欧美| 色婷婷一区二区三区久久午夜| 五月天激情小说| 变态乱伦伪娘灌肠一区二区| 日韩天天综合| 亚洲自拍一区夜夜操| 激情小说五月天| se01国产在线视频| 亚州男人天堂| 日本精品九九九| 91女人的网站| 乱色视频中文字幕| a片 xxxx受爽视频| 精品无人区麻豆乱码1区2区图片| 后入内射蜜桃臀| 狠狠爱综合网| 久久五月天婷婷丁香中文字幕| 国色综合天| 中文字幕精品专区搜索结果91| 青青草原狼av| 色婷婷五月综合| 久操网线| 亚洲无码太久| 国产白丝精品在线观看| 久久精品99| 天天摸夜夜操视频| 成人影 天天操 亚洲| 丁香五月激情婷婷| 顶级丝袜熟女一区二区三区| 亚洲色婷婷久久91| 97天天| 欧美色吧综合| 另类成人首页一区| 91夜夜蜜桃臀1区2区3区| 亚洲国产第一页综合视频| 韩国三级理论在线| 香蕉久久AⅤ...| 91伊人久| 国语av狠狠色丁香婷婷综合激情| 欧美成人贴图| 蜜臀va69| 99蜜月精品久久| 欧美91久久久久| 91久久堂| 麻豆国产第一| 97久久久精品| 第二页中文字幕| 97一区二区蜜臀| 日韩久久超碰色| 久久精品免费| 亚洲情色1区| 人妻碰碰碰碰碰碰| 国产高清1234区| 大香蕉AV丝袜| 欧美|91色综合| 天天综合网国产| 亚洲色图激情小说| 欧美天天拍| 一区二区三区国产精产| 混色激情av| 男人的天堂在线2| 久久熟妇五十路一区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 人人操人人大香蕉| 性色av网站| 免费视频a级毛片免费视频| 探花激情视频| 色丁香五月婷婷| 女人天堂AV五区在线| 精品免费一区二区三区在线亚洲人成| 亚洲熟妇图片| 日日天天久久啊啊aaa| 色老汉色| 天天干人妻| 成人日本片久久久蜜桃| 久久精品无码一区二区三区|