国产凹凸在线-国产拗女一区二区三区-国产白白视-国产白领-国产白拍-国产白丝jk被疯狂输-国产白丝喷-国产白丝在线

金喜正规买球

LeadTools 使用基準線

轉帖|使用教程|編輯:黃竹雯|2016-07-05 15:38:07.000|閱讀 407 次

概述:在本教程中,您將學習到如何在MedicalViewer 單元格中顯示基準線。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

在本教程中,您將學習到如何在MedicalViewer 單元格中顯示基準線。

1. 請您打開Visual Studio2005或一個更高的版本。

2. 從“文件”菜單中選擇“項目”。

3. 然后會出現一個新建項目對話框。

4. 從“項目類型”中展開“其他語言”節點,然后單擊在“Visual C#” 節點上。

5. 從該對話框左側的模板列表中,選擇“Windows窗體應用程序”。

6. 在“項目名稱”字段里輸入該項目的名稱“使用基準線”,然后選擇“確定”。

7. 選擇“確定”來創建該項目。

8. 從“視圖”菜單中選擇“解決方案資源管理器”。

9. 在“解決方案資源管理器”的樹型圖中,右鍵單擊“引用”節點,然后選擇“添加引用”。

10. 在“添加引用”對話框中選擇“瀏覽”選項卡,然后添加以下這些DLL文件:

  • Leadtools.dll
  • Leadtools.Codecs.dll
  • Leadtools.MedicalViewer.dll
  • Leadtools.Medical3D.dll
  • Leadtools.Dicom.dll
  • Leadtools.Codecs.Cmp.dll

11. 切換到Form1代碼視圖(在“解決方案資源管理器”上右鍵單擊Form1,然后選擇“查看代碼”),并在文件的開頭添加以下幾行代碼:

            Imports Leadtools
            Imports Leadtools.Codecs
            Imports Leadtools.MedicalViewer
            Imports Leadtools.Medical3D
            Imports Leadtools.Dicom
            using Leadtools;
            using Leadtools.Codecs;
            using Leadtools.MedicalViewer;
            using Leadtools.Medical3D;
            using Leadtools.Dicom;

12. 在Form1中,創建一個新的方法InitClass() 。并將以下代碼添加到該方法:

            Private Sub InitClass()
               Dim MY_LICENSE_FILE As String = "d:\temp\TestLic.lic"
                 
               ' 開啟DICOM支持。
               Dim MY_DicomDEVELOPER_KEY As String = "xyz123abc"
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                 
               ' 開啟Medical支持。
               Dim MY_MedicalDEVELOPER_KEY As String = "abc123xyz"
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                 
               ' 開啟Medical 3D支持。
               Dim MY_3DDEVELOPER_KEY As String = "123xyzabc"
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
               
               ' 創建一個將被用于加載圖像的編解碼器類的新實例。
               Dim _codecs As RasterCodecs = New RasterCodecs()
               ' 創建一個MedicalViewer的新實例。該查看器布局將被劃分為2X2。
               Dim viewer As MedicalViewer = New MedicalViewer(2, 2)
               ' 使該視圖與整個窗體相匹配。
               viewer.Dock = DockStyle.Fill
               ' 將該查看器添加到窗體。
               Controls.Add(viewer)
            End Sub
            void InitClass()
            {
               string MY_LICENSE_FILE = "d:\\temp\\TestLic.lic";
               
               // 開啟DICOM支持。
               string MY_DicomDEVELOPER_KEY = "xyz123abc";
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);
                 
               // 開啟Medical支持。
               string MY_MedicalDEVELOPER_KEY = "abc123xyz";
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);
                 
               // 開啟Medical 3D支持。
               string MY_3DDEVELOPER_KEY = "123xyzabc";
               RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);
               
               // 創建一個將被用于加載圖像的編解碼器類的新實例。
               RasterCodecs _codecs = new RasterCodecs();
               // 創建一個MedicalViewer的新實例。該查看器布局將被劃分為2X2。
               MedicalViewer viewer = new MedicalViewer(2, 2);
               // 使該視圖與整個窗體相匹配。
               viewer.Dock = DockStyle.Fill;
               // 將該查看器添加到窗體。
               Controls.Add(viewer);
            }

13. 請從Form1的構造函數中調用該方法InitClass,并將該調用放置于InitializeComponent()之后。

14. 運行該程序,您將會看到一個2x2布局。

15. 注意:在接下來的步驟中,您將需要具備一個DICOMDIR文件。我們可以提供DICOMDIR示例文件,您可以點擊這里進行下載。如果您想要了解有關如何在DICOMDIR中構建3D對象的更多相關詳細信息,請參閱這一章“如何加載DICOMDIR來創建一個3D對象”。

注意:如果您遇到一個“無效的文件格式”或“功能不支持”的異常,請參閱如下主題“無效的文件格式/功能不支持”。

請下載示例DICOMDIR,并將其內容解壓縮到此文件夾:C:\Leadtools_DICOMDIR。

16. 請將如下代碼添加到Form1類。該代碼可用于從DICOMDIR中加載圖像,將它們進行排序,并從中提取所有的有用信息:

            Private _studyElement As DicomElement
            Private _seriesElement As DicomElement
            Private _seriesManager As MedicalViewerSeriesManager
            Private _imageDataList As List(Of MedicalViewerImageData)
            Private doubleArray As Double()
            Private patientElement As DicomElement
            Private referenceUID As String
            Private imageElement As DicomElement
            Private output As MedicalViewerSeriesManager
            ' 您需要找到使用了科目實例UID的科目,并且在找到之后返回其DicomElement。 
            Private Function FindStudy(ByVal ds As DicomDataSet, ByVal studyInstanceUID As String) As DicomElement
              ' 獲取父元素。
              Dim patientElement As DicomElement = ds.GetFirstKey(Nothing, True)
              Dim studyElement As DicomElement = Nothing
              Dim studyInformationElement As DicomElement = Nothing
              Dim studyID As String
              studyElement = ds.GetChildKey(patientElement)
              studyElement = ds.GetChildElement(studyElement, True)
              Do While Not studyElement Is Nothing
                studyInformationElement = ds.FindFirstElement(studyElement, DicomTag.StudyInstanceUID, True)
                If Not studyInformationElement Is Nothing Then
                   studyID = ds.GetConvertValue(studyInformationElement)
                   If studyID = studyInstanceUID Then
                     Return studyInformationElement
                   End If
                End If
                studyElement = ds.GetNextKey(studyElement, True)
                studyElement = ds.GetChildElement(studyElement, True)
              Loop
              Return Nothing
            End Function
            ' 您需要找到使用了系列實例UID的系列,并在找到后返回其DicomElement。
            Private Function FindSeries(ByVal ds As DicomDataSet, ByVal studyElement As DicomElement, ByVal seriesInstanceUID As String) As DicomElement
              Dim seriesElement As DicomElement = Nothing
              Dim seriesInformationElement As DicomElement = Nothing
              Dim seriesID As String
              seriesElement = ds.GetChildKey(studyElement)
              seriesElement = ds.GetChildElement(seriesElement, True)
              Do While Not seriesElement Is Nothing
                seriesInformationElement = ds.FindFirstElement(seriesElement, DicomTag.SeriesInstanceUID, True)
                If Not seriesInformationElement Is Nothing Then
                   seriesID = ds.GetConvertValue(seriesInformationElement)
                   If seriesID = seriesInstanceUID Then
                     Return seriesInformationElement
                   End If
                End If
                seriesElement = ds.GetNextKey(seriesElement, True)
                seriesElement = ds.GetChildElement(seriesElement, True)
              Loop
              Return Nothing
            End Function
            ' 返回該系列的第一幀的文件名。
            Private Function GetFirstImageName(ByVal ds As DicomDataSet, ByVal seriesElement As DicomElement, ByVal directoryPath As String, <System.Runtime.InteropServices.Out()> ByRef imageElement As DicomElement) As String
              Dim imageIDElement As DicomElement = Nothing
              imageElement = ds.GetChildKey(seriesElement)
              imageElement = ds.GetChildElement(imageElement, True)
              Do While Not imageElement Is Nothing
                imageIDElement = ds.FindFirstElement(imageElement, DicomTag.ReferencedFileID, True)
                If Not imageIDElement Is Nothing Then
                   Return directoryPath &"\" & ds.GetConvertValue(imageIDElement)
                End If
              Loop
              Return ""
            End Function
            ' 返回該系列的下一幀的文件名。
            Private Function GetNextImageName(ByVal ds As DicomDataSet, ByVal directoryPath As String, ByRef imageElement As DicomElement) As String
              Dim nextImageElement As DicomElement = Nothing
              imageElement = ds.GetNextKey(imageElement, True)
              imageElement = ds.GetChildElement(imageElement, True)
              Do While Not imageElement Is Nothing
                nextImageElement = ds.FindFirstElement(imageElement, DicomTag.ReferencedFileID, True)
                If Not imageElement Is Nothing Then
                   Dim echoElement As DicomElement = ds.FindFirstElement(imageElement, DicomTag.EchoNumber, True)
                   Return directoryPath & "\" & ds.GetConvertValue(nextImageElement)
                End If
              Loop
              Return ""
            End Function
            ' 這將加載DICOM數據集信息,并將其保存到MedicalViewerImageData類的一個新實例中。
            Private Function AddImageToImageArray(ByVal ds As DicomDataSet, ByVal index As Integer, ByVal imagePath As String, <System.Runtime.InteropServices.Out()> ByRef echoNumber As Integer) As Boolean
              echoNumber = -1
              Dim imageData As MedicalViewerImageData = New MedicalViewerImageData()
              patientElement = ds.FindFirstElement(Nothing, DicomTag.ImagePositionPatient, True)
              doubleArray = ds.GetDoubleValue(patientElement, 0, 3)
              imageData.ImagePosition = Point3D.FromDoubleArray(doubleArray)
              imageData.Data = imagePath
              imageData.EchoNumber = echoNumber
              patientElement = ds.FindFirstElement(Nothing, DicomTag.FrameOfReferenceUID, True)
              referenceUID = ds.GetConvertValue(patientElement)
              imageData.FrameOfReferenceUID = referenceUID
              patientElement = ds.FindFirstElement(Nothing, DicomTag.ImageOrientationPatient, True)
              imageData.ImageOrientation = ds.GetConvertValue(patientElement)
              patientElement = ds.FindFirstElement(Nothing, DicomTag.PixelSpacing, True)
              doubleArray = ds.GetDoubleValue(patientElement, 0, 2)
              imageData.PixelSpacing = New Point2D(CSng(doubleArray(0)), CSng(doubleArray(1)))
              patientElement = ds.FindFirstElement(Nothing, DicomTag.InstanceNumber, True)
              If Not patientElement Is Nothing Then
                imageData.InstanceNumber = Convert.ToInt32(ds.GetConvertValue(patientElement))
              End If
              patientElement = ds.FindFirstElement(Nothing, DicomTag.InstanceCreationTime, True)
              If Not patientElement Is Nothing Then
                imageData.CaptureTime = Convert.ToDateTime(ds.GetConvertValue(patientElement))
              End If
              _imageDataList.Add(imageData)
              Return True
            End Function
            Public Function Load_James_CT_Localizer() As MedicalViewerSeriesManager
              Dim fileName As String = "C:\Leadtools_DICOMDIR\Miller James\"
              Dim studyInstanceUID As String = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000022"
              Dim seriesInstanceUID As String = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000023"
              Return LoadSeries(fileName, studyInstanceUID, seriesInstanceUID, 1)
            End Function
            Public Function Load_James_CT() As MedicalViewerSeriesManager
              Dim fileName As String = "C:\Leadtools_DICOMDIR\Miller James\"
              Dim studyInstanceUID As String = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000022"
              Dim seriesInstanceUID As String = "1.3.12.2.1107.5.1.4.50772.30000009122208215356200001997"
              Return LoadSeries(fileName, studyInstanceUID, seriesInstanceUID, 256)
            End Function
            ' 這將加載由seriesInstanceUID和studyInstanceUID所指定的系列,而這兩個UID來自fileName指定的文件。
            Private Function LoadSeries(ByVal fileName As String, ByVal studyInstanceUID As String, ByVal seriesInstanceUID As String, ByVal count As Integer) As MedicalViewerSeriesManager
              DicomEngine.Startup()
              Dim ds As DicomDataSet = New DicomDataSet()
              ds.Load(fileName &"DICOMDIR", DicomDataSetLoadFlags.None)
              Dim directoryPath As String = fileName
              ' 在這里,該程序將會對包含指定的studyInstanceUID的科目進行搜索。 
              _studyElement = FindStudy(ds, studyInstanceUID)
              ' 在這里,該程序將會對包含指定的seriesInstanceUID的系列進行搜索。
              _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID)
              ' 請創建一個MedicalViewerSeriesManager的新實例。它將被用于對圖像進行排序,以便創建正確的3D對象。
              _seriesManager = New MedicalViewerSeriesManager()
              ' 請創建一個MedicalViewerImageData的陣列。該類將被用于保存幀信息。而該信息將被用于對圖像進行排序。
              _imageDataList = New List(Of MedicalViewerImageData)()
              Dim dicomDataSet As DicomDataSet
              Dim imageIndex As Integer
              Dim imagePath As String
              Dim echoNumber As Integer = 0
              ' 現在,該程序將對該系列中的每一幀進行審查。
              imagePath = GetFirstImageName(ds, _seriesElement, directoryPath, imageElement)
              imageIndex = 0
              Do While imageIndex < count
                Try
                   ' 該系列中的每個圖像都將被加載。
                   dicomDataSet = New DicomDataSet()
                   dicomDataSet.Load(imagePath, DicomDataSetLoadFlags.None)
                   ' 該程序可以加載它的信息,并將其保存到MedicalViewerImageData類的一個新實例中。
                   AddImageToImageArray(dicomDataSet, imageIndex, imagePath, echoNumber)
                   dicomDataSet.Dispose()
                   ' 跳轉到下一個圖像。
                   imagePath = GetNextImageName(ds, directoryPath, imageElement)
                Catch exception As System.Exception
                   System.Diagnostics.Debug.Assert(False, exception.Message)
                   Throw
                End Try
                 imageIndex += 1
              Loop
              ' 根據它的數據對這些圖像進行排序。
              _seriesManager.Sort(_imageDataList)
              DicomEngine.Shutdown()
              Return _seriesManager
            End Function
            Private Sub LoadLocalizer(ByVal cell As MedicalViewerMultiCell)
              ' 啟動允許加載各種圖像的編解碼器。
              Dim _codecs As RasterCodecs = New RasterCodecs()
              ' 加載CT定位器。
              output = Load_James_CT_Localizer()
              cell.Image = _codecs.Load(CStr(output.Localizers(0).LocalizerData.Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1)
              ' 設置以下三行代碼非常重要。否則,可能會發生基準線結果錯誤。
  ' 設置定位器的圖像位置。             
 cell.SetImagePosition(0, _seriesManager.Localizers(0).LocalizerData.ImagePosition, True)
              ' 設置定位器的圖像方向。
              cell.ImageOrientation = _seriesManager.Localizers(0).LocalizerData.ImageOrientationArray
              ' 設置定位器的像素間隔。
              cell.PixelSpacing = _seriesManager.Localizers(0).LocalizerData.PixelSpacing
              ' 設置定位器的幀引用UID。如果系列和定位器具有相同的引用UID的話,這樣就可以在它們之間創建一條基準線。
              cell.FrameOfReferenceUID = _seriesManager.Localizers(0).LocalizerData.FrameOfReferenceUID
            End Sub
            Private Sub Load2DCell(ByVal cell As MedicalViewerMultiCell)
              ' 啟動允許加載各種圖像的編解碼器。
              Dim _codecs As RasterCodecs = New RasterCodecs()
              ' 加載CT DICOMDIR,并返回排列好的圖像集合。
              output = Load_James_CT()
              ' 循環處理這些圖像,并將它們一個接一個地添加到最終的圖像。
              Dim image As RasterImage = Nothing
              Dim depth As Integer = output.Stacks(0).Items.Count
              Dim index As Integer
              index = 0
              Do While index < depth
                If image Is Nothing Then
                   image = _codecs.Load(CStr(output.Stacks(0).Items(index).Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1)
                Else
                   image.AddPage(_codecs.Load(CStr(output.Stacks(0).Items(index).Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1))
                End If
                 index += 1
              Loop
              cell.Image = image
              ' 設置以下這幾行代碼非常重要。否則,可能會出現基準線結果錯誤。
              index = 0
              Do While index < depth
                ' 設置每幀的圖像位置。
                cell.SetImagePosition(index, _seriesManager.Stacks(0).Items(index).ImagePosition, False)
                 index += 1
              Loop
              ' 請對該系列的圖像方向進行設置,且它只需被設置一次,因為所有的幀必須具有相同的方向值。
              cell.ImageOrientation = _seriesManager.Stacks(0).Items(0).ImageOrientationArray
              ' 請對該系列的像素間隔進行設置,且它只需被設置一次,因為所有的幀必須具有相同的像素間隔值。
              cell.PixelSpacing = _seriesManager.Stacks(0).Items(0).PixelSpacing
              ' 請對該系列的幀引用UID進行設置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創建一條基準線。
              cell.FrameOfReferenceUID = _seriesManager.Stacks(0).Items(0).FrameOfReferenceUID
            End Sub
            DicomElement _studyElement;
            DicomElement _seriesElement;
            MedicalViewerSeriesManager _seriesManager;
            List<MedicalViewerImageData> _imageDataList;
            double[] doubleArray;
            DicomElement patientElement;
            string referenceUID;
            DicomElement imageElement;
            MedicalViewerSeriesManager output;
            // 您需要找到使用了科目實例UID的科目,并且在找到之后返回其DicomElement。
            private DicomElement FindStudy(DicomDataSet ds, string studyInstanceUID)
            {
               // 獲取父元素。
               DicomElement patientElement = ds.GetFirstKey(null, true);
               DicomElement studyElement = null;
               DicomElement studyInformationElement = null;
               string studyID;
               studyElement = ds.GetChildKey(patientElement);
               studyElement = ds.GetChildElement(studyElement, true);
               while (studyElement != null)
               {
                  studyInformationElement = ds.FindFirstElement(studyElement,
                                                                DicomTag.StudyInstanceUID,
                                                                true);
                  if (studyInformationElement != null)
                  {
                     studyID = ds.GetConvertValue(studyInformationElement);
                     if (studyID == studyInstanceUID)
                        return studyInformationElement;
                  }
                  studyElement = ds.GetNextKey(studyElement, true);
                  studyElement = ds.GetChildElement(studyElement, true);
               }
               return null;
            }
            // 您需要找到使用了系列實例UID的系列,并在找到后返回其DicomElement。
            private DicomElement FindSeries(DicomDataSet ds, DicomElement studyElement, string seriesInstanceUID)
            {
               DicomElement seriesElement = null;
               DicomElement seriesInformationElement = null;
               string seriesID;
               seriesElement = ds.GetChildKey(studyElement);
               seriesElement = ds.GetChildElement(seriesElement, true);
               while (seriesElement != null)
               {
                  seriesInformationElement = ds.FindFirstElement(seriesElement,
                                                                 DicomTag.SeriesInstanceUID,
                                                                 true);
                  if (seriesInformationElement != null)
                  {
                     seriesID = ds.GetConvertValue(seriesInformationElement);
                     if (seriesID == seriesInstanceUID)
                        return seriesInformationElement;
                  }
                  seriesElement = ds.GetNextKey(seriesElement, true);
                  seriesElement = ds.GetChildElement(seriesElement, true);
               }
               return null;
            }
            // 返回該系列的第一幀的文件名。
            private string GetFirstImageName(DicomDataSet ds, DicomElement seriesElement, string directoryPath, out DicomElement imageElement)
            {
               DicomElement imageIDElement = null;
               imageElement = ds.GetChildKey(seriesElement);
               imageElement = ds.GetChildElement(imageElement, true);
               while (imageElement != null)
               {
                  imageIDElement = ds.FindFirstElement(imageElement,
                                                     DicomTag.ReferencedFileID,
                                                     true);
                  if (imageIDElement != null)
                  {
                     return directoryPath + "\\" + ds.GetConvertValue(imageIDElement);
                  }
               }
               return "";
            }
            // 返回該系列的下一幀的文件名。
            private string GetNextImageName(DicomDataSet ds, string directoryPath, ref DicomElement imageElement)
            {
               DicomElement nextImageElement = null;
               imageElement = ds.GetNextKey(imageElement, true);
               imageElement = ds.GetChildElement(imageElement, true);
               while (imageElement != null)
               {
                  nextImageElement = ds.FindFirstElement(imageElement,
                                                     DicomTag.ReferencedFileID,
                                                     true);
                  if (imageElement != null)
                  {
                     DicomElement echoElement = ds.FindFirstElement(imageElement,
                                                       DicomTag.EchoNumber,
                                                       true);
                     return directoryPath + "\\" + ds.GetConvertValue(nextImageElement);
                  }
               }
               return "";
            }
            // 這將加載DICOM數據集信息,并將其保存到MedicalViewerImageData類的一個新實例中。
            private bool AddImageToImageArray(DicomDataSet ds, int index, string imagePath, out int echoNumber)
            {
               echoNumber = -1;
               MedicalViewerImageData imageData = new MedicalViewerImageData();
               patientElement = ds.FindFirstElement(null,
                                                    DicomTag.ImagePositionPatient,
                                                    true);
               doubleArray = ds.GetDoubleValue(patientElement, 0, 3);
               imageData.ImagePosition = Point3D.FromDoubleArray(doubleArray);
               imageData.Data = imagePath;
               imageData.EchoNumber = echoNumber;
               patientElement = ds.FindFirstElement(null,
                                                   DicomTag.FrameOfReferenceUID,
                                                   true);
               referenceUID = ds.GetConvertValue(patientElement);
               imageData.FrameOfReferenceUID = referenceUID;
               patientElement = ds.FindFirstElement(null,
                                                   DicomTag.ImageOrientationPatient,
                                                   true);
               imageData.ImageOrientation = ds.GetConvertValue(patientElement);
               patientElement = ds.FindFirstElement(null,
                                                    DicomTag.PixelSpacing,
                                                    true);
               doubleArray = ds.GetDoubleValue(patientElement, 0, 2);
               imageData.PixelSpacing = new Point2D((float)doubleArray[0], (float)doubleArray[1]);
               patientElement = ds.FindFirstElement(null,
                                                   DicomTag.InstanceNumber,
                                                   true);
               if (patientElement != null)
                  imageData.InstanceNumber = Convert.ToInt32(ds.GetConvertValue(patientElement));
               patientElement = ds.FindFirstElement(null,
                                                   DicomTag.InstanceCreationTime,
                                                   true);
               if (patientElement != null)
                  imageData.CaptureTime = Convert.ToDateTime(ds.GetConvertValue(patientElement));
               _imageDataList.Add(imageData);
               return true;
            }
            public MedicalViewerSeriesManager Load_James_CT_Localizer()
            {
               string fileName = @"C:\Leadtools_DICOMDIR\Miller James\";
               string studyInstanceUID = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000022";
               string seriesInstanceUID = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000023";
               return LoadSeries(fileName, studyInstanceUID, seriesInstanceUID, 1);
            }
            public MedicalViewerSeriesManager Load_James_CT()
            {
               string fileName = @"C:\Leadtools_DICOMDIR\Miller James\";
               string studyInstanceUID = "1.3.12.2.1107.5.1.4.50772.30000009122208074910900000022";
               string seriesInstanceUID = "1.3.12.2.1107.5.1.4.50772.30000009122208215356200001997";
               return LoadSeries(fileName, studyInstanceUID, seriesInstanceUID, 256);
            }
            // 這將加載由seriesInstanceUID和studyInstanceUID所指定的系列,而這兩個UID來自fileName指定的文件。
            private MedicalViewerSeriesManager LoadSeries(string fileName, string studyInstanceUID, string seriesInstanceUID, int count)
            {
               DicomEngine.Startup();
               DicomDataSet ds = new DicomDataSet();
               ds.Load(fileName + "DICOMDIR", DicomDataSetLoadFlags.None);
               string directoryPath = fileName;
               // 在這里,該程序將會對包含指定的studyInstanceUID的科目進行搜索。
               _studyElement = FindStudy(ds, studyInstanceUID);
               // 在這里,該程序將會對包含指定的seriesInstanceUID的系列進行搜索。
               _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID);
               // 請創建一個MedicalViewerSeriesManager的新實例。它將被用于對圖像進行排序,以便創建正確的3D對象。
               _seriesManager = new MedicalViewerSeriesManager();
               // 請創建一個MedicalViewerImageData的陣列。該類將被用于保存幀信息。而該信息將被用于對圖像進行排序。
               _imageDataList = new List<MedicalViewerImageData>();
               DicomDataSet dicomDataSet;
               int imageIndex;
               string imagePath;
               int echoNumber = 0;
               // 現在,該程序將對該系列中的每一幀進行審查。
               imagePath = GetFirstImageName(ds, _seriesElement, directoryPath, out imageElement);
               for (imageIndex = 0; imageIndex < count; imageIndex++)
               {
                  try
                  {
                     // 該系列中的每個圖像都將被加載。
                     dicomDataSet = new DicomDataSet();
                     dicomDataSet.Load(imagePath, DicomDataSetLoadFlags.None);
                     // 該程序可以加載它的信息,并將其保存到MedicalViewerImageData類的一個新實例中。
                     AddImageToImageArray(dicomDataSet, imageIndex, imagePath, out echoNumber);
                     dicomDataSet.Dispose();
                     // 跳轉到下一個圖像。
                     imagePath = GetNextImageName(ds, directoryPath, ref imageElement);
                  }
                  catch (System.Exception exception)
                  {
                     System.Diagnostics.Debug.Assert(false, exception.Message);
                     throw;
                  }
               }
               // 根據它的數據對這些圖像進行排序。
               _seriesManager.Sort(_imageDataList);
               DicomEngine.Shutdown();
               return _seriesManager;
            }
            void LoadLocalizer(MedicalViewerMultiCell cell)
            {
               // 啟動允許加載各種圖像的編解碼器。
               RasterCodecs _codecs = new RasterCodecs();
               // 加載CT定位器。
               output = Load_James_CT_Localizer();
               cell.Image = _codecs.Load((string)output.Localizers[0].LocalizerData.Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1);
               // 設置以下三行代碼非常重要。否則,可能會發生基準線結果錯誤。
               // 設置定位器的圖像位置。
               cell.SetImagePosition(0, _seriesManager.Localizers[0].LocalizerData.ImagePosition, true);
               // 設置定位器的圖像方向。
               cell.ImageOrientation = _seriesManager.Localizers[0].LocalizerData.ImageOrientationArray;
               // 設置定位器的像素間隔。
               cell.PixelSpacing = _seriesManager.Localizers[0].LocalizerData.PixelSpacing;
               // 設置定位器的幀引用UID。如果該系列和定位器具有相同的引用UID的話,這樣就可以在它們之間創建一條基準線。
               cell.FrameOfReferenceUID = _seriesManager.Localizers[0].LocalizerData.FrameOfReferenceUID;
            }
            void Load2DCell(MedicalViewerMultiCell cell)
            {
               // 啟動允許加載各種圖像的編解碼器。
               RasterCodecs _codecs = new RasterCodecs();
               // 加載CT DICOMDIR,并返回排列好的圖像集合。
               output = Load_James_CT();
               // 循環處理這些圖像,并將它們一個接一個地添加到最終的圖像。
               RasterImage image = null;
               int depth = output.Stacks[0].Items.Count;
               int index;
               for (index = 0; index < depth; index++)
               {
                  if (image == null)
                  {
                     image = _codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1);
                  }
                  else
                     image.AddPage(_codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1));
               }
               cell.Image = image;
               // 設置以下這幾行代碼非常重要。否則,可能會出現基準線結果錯誤。               for (index = 0; index < depth; index++)
               {
                  // 設置每幀的圖像位置。.
                  cell.SetImagePosition(index, _seriesManager.Stacks[0].Items[index].ImagePosition, false);
               }
               // 請對該系列的圖像方向進行設置,且它只需被設置一次,因為所有的幀必須具有相同的方向值。
               cell.ImageOrientation = _seriesManager.Stacks[0].Items[0].ImageOrientationArray;
               // 請對該系列的像素間隔進行設置,且它只需被設置一次,因為所有的幀必須具有相同的像素間隔值。.
               cell.PixelSpacing = _seriesManager.Stacks[0].Items[0].PixelSpacing;
               // 請對該系列的幀引用UID進行設置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創建一條基準線。
               cell.FrameOfReferenceUID = _seriesManager.Stacks[0].Items[0].FrameOfReferenceUID;
            }

17. 將如下幾行代碼添加到InitClass()方法的末尾(這將創建一個新的單元格,并將指定的系列填充到其中):

            ' 創建一個包含圖像集合的單元格。
            Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell()
            ' 加載該圖像集合。
            Load2DCell(cell)
            //創建一個包含圖像集合的單元格。
            MedicalViewerMultiCell cell = new MedicalViewerMultiCell();
            // 加載該圖像集合。
            Load2DCell(cell);

18. 將如下幾行代碼添加到InitClass()方法的末尾(這將創建一個新的單元格,并將一個被稱為定位器的幀填充到其中):

            ' 創建一個包含定位器的單元格。
            Dim localizerCell As MedicalViewerMultiCell = New MedicalViewerMultiCell()
            ' 加載該定位器。
            LoadLocalizer(localizerCell)
            // 創建一個包含定位器的單元格。
            MedicalViewerMultiCell localizerCell = new MedicalViewerMultiCell();
            // 加載該定位器。
            LoadLocalizer(localizerCell);

19. 現在,將這兩個單元格(系列單元格和定位器單元格)添加到MedicalViewer。為了做到這一點,請將如下這幾行代碼添加到InitClass()方法的末尾:

            ' 將以上的多幀單元格添加到MedicalViewer。
            viewer.Cells.Add(cell)
            ' 將以上的定位器單元格添加到MedicalViewer。 
           viewer.Cells.Add(localizerCell)
            // 將以上的多幀單元格添加到MedicalViewer。
            viewer.Cells.Add(cell);
            // 將以上的定位器單元格添加到MedicalViewer。
            viewer.Cells.Add(localizerCell);

20. 最后,您需要同時啟用這兩個單元格的基準線。為了做到這一點,您只需要將以下這幾行代碼添加到InitClass()方法的末尾:

            ' 在定位器圖像中啟用基準線。
            cell.ReferenceLine.Enabled = True
            ' 在圖像集合中啟用基準線。
            localizerCell.ReferenceLine.Enabled = True
            // 在定位器圖像中啟用基準線。
            cell.ReferenceLine.Enabled = true;
            // 在圖像集合中啟用基準線。
            localizerCell.ReferenceLine.Enabled = true;

21. 如果您運行該程序,現在您將看到兩個單元格:一個上面繪制有一條垂直線,而另外一個上面繪制有一條水平線。

關于其他產品的更多信息,請查看產品詳情

文自:葡萄城


標簽:文檔管理圖像處理文檔圖像文檔處理

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
相關產品
控件
  • 產品功能:位圖圖像處理
  • 源 碼:非開源
  • 產品編號:10780
  • 當前版本:v23 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: LEADTOOLS 正式授權
  • ">LEADTOOLS Imaging Pro Developer Toolkit

    20多年的老牌圖像處理控件,支持TWAIN掃描、200多種圖像效果、150多種圖像格式…

    控件
  • 產品功能:位圖圖像處理
  • 源 碼:非開源
  • 產品編號:10781
  • 當前版本:v23 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: LEADTOOLS 正式授權
  • ">LEADTOOLS Document Suite Developer Toolkit

    LEADTOOLS Document Imaging Suite SDK是LEADTOOLS SDK中各種特點的精選組合,這套強大的工具利用了LEAD行業領先的圖像處理技術來智能地識別文檔的特征,而根據文檔的特征可以識別掃描的或傳真的任何類型的表格圖像。

    控件
  • 產品功能:位圖圖像處理
  • 源 碼:非開源
  • 產品編號:10782
  • 當前版本:v23 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: LEADTOOLS 正式授權
  • ">LEADTOOLS Document Imaging Developer Toolkit

    多語言的文檔圖像處理控件,支持光符識別處理、條形碼掃描識別等。

    控件
  • 產品功能:位圖圖像處理
  • 源 碼:非開源
  • 產品編號:10783
  • 當前版本:v23 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: LEADTOOLS 正式授權
  • ">LEADTOOLS Medical Developer Toolkit

    LEADTOOLS Medical Imaging是一款醫療成像控件,包含了一些精心挑選的、經過優化的特性,可以滿足醫療成像應用程序開發的特殊需要。

    控件
  • 產品功能:位圖圖像處理
  • 源 碼:非開源
  • 產品編號:10784
  • 當前版本:v23 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: LEADTOOLS 正式授權
  • ">LEADTOOLS Medical Imaging Suite Developer Toolkit

    LEADTOOLS Medical Imaging Suite幫您開發功能強大的PACS和醫學成像應用程序

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    日本秋霞免费 | 星光影院 | 免费三级在线观看中文字幕 | 精品国产亚洲人成在线观看 | 日韩欧美在线免费播放 | 日韩制服丝袜片中文字幕 | 国产成年人视频免费 | 欧美日韩国产色一区二区 | 国产一区二区精品在线观看 | 久青青在线观看视频国产 | 国产日韩欧美二区在线 | 成人夜视频寂寞在线观看 | 欧美日本在线播放 | 中文综合第二页 | 日韩精品大片在线观看 | 村长扶着小萍的腰猛的挺进 | 中文字幕第一页国产 | 日本欧美中文日韩v在线 | 日韩不卡在线观看 | 国产日韩欧美亚洲精品中字 | 午夜性爽视频男人的天堂 | a在线视频 | 日本japa| 成年人午夜视频网站 | 日韩电影欧美综合在线 | 国产二代与美女酒店在线播放 | 国产又色又爽不遮挡的视频 | 不卡一区二区三区免费视频 | 国内精品一区二区 | 成人永久免费高清 | 日韩国产私拍在线观看 | 日本宅男欧美国产日韩 | 精品午夜一区二区福利 | 日韩精品欧美激情亚洲综合 | 国人精品视频在线观看 | 日韩美精品成人一区二区 | 麻花豆传媒剧 | 欧美亚洲日本国产黑白配 污污网站在线观看免费 | 北京国贸大酒店张津 | 免费1级a做爰片在 | 国产a∨精品一区二区蜜臀 成年在线网站免费观看无广告 | 日本特黄特色免费亚洲日本 | 成人欧美一区二区三区黑人 | 国自产拍亚洲免费视频 | 免费一级e一片在线播放 | 1卡2卡三卡4卡国产 欧美人和 | 国产精品欧美一 | 91啦视频在线观看 | 精品国产污| 国产999热这里| www.一区二区三区.com | 99热66| 99国产清国产精品国产 | 1区2区日韩欧美国产 | 亚洲精品乱码在线观看 | 国产激情电影综合在线看 | 国产精品美脚玉足脚交欧美 | 抖音奶片| 国产又黄又爽又猛免费视频 | 国产大片内 | 成人免费一区二区 | 国产又色又爽又黄的视频网站樱 | 亚洲一级二级三级四级 | 黑人精品一区二区三区不卡 | 国产一区二区在线观看免费 | 亚洲精品分类在看在 | 国产欧美高清视频 | 91国内揄拍国内精品对白 | 亚洲视频一区二区 | 日韩中文字幕高清一区 | 精品动漫 | 亚洲熟女综合一区二区三区 | 日本一区二区三区成人免费观 | 99视频有精品视频 | 一区二区三区四区 | 亚洲精品视频一卡二卡三卡 | 国产91免费 | 欧美性色黄大片在线观看 | 日本有码中文字幕第一页在线播放 | 秋霞电影在线观看 | 青青成人福 | 精品成免费视频9 | 精品国产欧美一区二区日韩 | 国产欧美日韩国中文字幕在线 | 国产香蕉一区二区三区在线视频 | 国产1区精品 | 欧美性受xxxx白人性爽 | 国精产品一品二品国精品69x | 国产电影一区在线成人看片 | 亚洲中文字幕一区二区三区 | 日韩欧美激情 | 国产网曝门亚洲综合在线 | 国产乱老熟视频 | 中文字幕在线免费观看 | 日韩在线视频第一页 | 欧美日韩国产 | 亚洲一区二区在线免费观看 | 欧美日韩国产综合一区二区三区 | 资源一区二区 | 日韩草逼| 国产精品欧美日韩一区二区 | 99爱国产精品免费高清在线观看 | 欧美综合自拍亚洲综合 | 日韩中文字幕无 | 韩剧网首页 | 国产强伦姧 | 亚洲男人的天堂在线播放 | 午夜丁香婷婷免费手机在线观 | 国产精品欧 | www.国产精品视频 | 老司机亚洲精品影院 | 果冻传媒一区二区天美传媒 | 国产五月综合网 | 亚洲综合色一区二区三区另类 | 欧美国产极品在线播放 | 精品+在线+国产手机 | 欧洲无人区卡一卡二卡三 | 免费大片黄 | 日韩一区在线播放 | 国产99视频精品免费播放 | 国产91精品系列在线观看 | 国内精品91最新在线观看 | 久天堂视频中文字 | 国产综合色在线视频区 | 国产v欧美v日韩v亚洲老妇 | 国产亚洲色 | 国产精品不卡一区二区三 | 亚欧洲乱码视频在线专区网站 | 好吊色妇女免费视频免费 | 韩国三级《私人教练》 | 一卡二卡三四卡国产乱码 | a级韩国乱理论片在线观看 日本三级国产乱伦 | 国产免费午夜福利在线播放92 | 九色老女人 | 日韩午夜理 | 日本高清成本人视频一区 | 99999视频精品全部免费 | 国产精品一区免费观看 | 岛国一区二区三区 | 日本道精品一区二区三区 | 国产福利电影一区二 | 凹凸导航午夜福利 | 国产乱子伦高清对白 | 另类亚洲图区在线视频 | 国产精品网曝门免费视频 | 日本高清一区二区三区水蜜桃 | 日韩欧美国产精品亚洲二区 | 日本亚欧精品在线视频 | 亚洲热视频 | 99re国产在线观看 | 菠萝蜜视频在线观看高清 | 99re66在线观看精品免费 | 日本护士| 国产视频一区二区三区四区 | 国产一区二区四区在线视频 | 国产不卡在线播放 | 老司机试看午夜 | 3对夫妇换着玩互换6 | 91精品国产自产 | 日韩美女黄大片在线观看 | 日韩精品美女视频 | 国产精偷伦视频在线观看 | 亚洲中文字幕姦 | 777米奇影院影音先锋 | 免费观看男女性恔配视频 | 欧美日韩国产一区二区三区在 | 日国产一区三区三区在线观看 | 97porm国内自拍视频 | 在线午夜福利频在线播放 | 国产精品自产拍 | 国产久一视频在线观看app | 欧美日韩图片一区二区 | 日韩熟女精品影院 | 私人情侣影院在线电影院 | 国产丝袜在线精品丝袜 | 日韩一区二区三区免费高清 | 国产女主播精品 | 精品免费一| 精品午夜日韩 | 99视频精品全部免费免费观 | 欧美精品一区二区三区无卡片 | 精品在线观看一区 | 在线播放精品一区二区三区 | 日韩欧美综合在线制服 | 最近中文字幕在线中文视频 | 精品视频在线三区 | 国产欧美日韩综合精品一区二区三 | 欧美人伦禁忌dvd放荡欲情 | 成人亚欧网站 | 午夜久在线播放91 | 巨熟乳波霸中文观看免费 | 丝袜亚洲精品中文字幕二区 | 在线成人免费视频 | 日韩乱码一区 | 青青国产在观免费影视 | 国产精品91一区二区三区四区 | 国产又湿又黄 | 成人影院在线观看一区 | 精品欧美国产一区二区三区 | 一二三四视频免 | 最新91精品老司机在线 | 国产精品综合视频一区二区 | 精品成品国色天香卡一卡三 | 日本黄大片在线观看 | 无色码中文字幕亚洲精品 | 呦导航福利精品 | 国产区亚洲天堂一区二区三 | 亚洲狼人影院 | 日韩免费精品专区 | 日本九九热在线观看官网 | 国产97超级碰碰视频 | 亚洲性线免费观看 | 日韩在线不卡 | 国产女人精品在线直播 | 色国产综合免费视频在线播放 | 在线观看午夜福利片日本 | 日本黄页网站免费观看 | 国产精品自拍激情性爱 | 日本sm| 成人精品午夜在线观看 | 国产综合色在线视频播放线视 | 欧美人与动牲 | 91老司机精品福利在线 | 国产高清一区二区三区四区 | 成人影视福利 | 国产精品伦一区二区三级视频 | 国产精品美女午夜爽爽 | 成人级片中文字幕在线播放 | 无区码一码二码三码 | 国产欧美日韩一 | 免费国产一级a | 亚洲国产人成在线观看 | 老司机福| 精品三级在线观看 | 精品国产污污免费网站入口 | 亚州精品一区二区三区 | 在线永久免费 | 欧美性老少配bbbbbxx | 国产精品亚洲精品一区二区三区 | 成人h网站在线 | 国产欧美精品一区二区三区四区 | 国产熟女乱伦一区二区 | 国产一区二区视频在线播放 | 精品国产免费人成电影在线看 | 又硬又粗又大一区二区三区视频 | 欧美国产剧情一区二区 | 手机免费在线观看日韩电影 | 动画片大全大人动漫在线观看 | 午夜福利理论片 | 日韩欧美中文字幕在线三区 | 欧美综合在线观看 | 欧洲亚洲一区 | 国产ts高清 | 99亚洲资源天堂 | 欧美日韩亚洲视频精品 | 国产精品五月天婷婷视频 | 日韩欧美精品一区二区二区不卡 | 日本一区二区三区免费中文字幕 | 国产精品日 | 国产精品玖 | 国产日韩精品欧美一区色 | 国产精品国产一区日韩一区 | 国产精品对白刺激音频在线观看 | 热播电影在线观看 | 精品国精品国产自在久国产不卡 | 日本一区二区三区免费高清 | 九九热爱视频精品视频 | 日韩99在线一级 | 亚洲中文字幕第一页在线 | 免费人成在线观看视频播放 | 韩国三级高清手机在线版 | 66lu国产在线观看 | 亚洲免费在线国产视频午夜精 | 人国产在线观看不卡片 | 神马影院手机在线观看 | 国产又大又黄又粗又爽 | 成人性开放网 | 日韩亚洲视频一 | 香港三日本三级人妇三级99 | 国产午夜亚洲第一 | 免费的网 | 日本爽爽爽爽爽爽免费视频 | 亚洲欧美一区二区不卡 | 国产v综合v亚洲欧美大片 | 日本一本免费线观看视频 | 成人免费网站又大又黄又粗 | 不卡影视 | 三级国产久| 在线看视频| 亚洲视频在线观看精品 | 日本黄页网站免费大全 | 国产一区二区丝袜美腿在线 | 九热在线观看高清 | 国产精品v欧美精品v日韩 | 日韩中文字幕 | 亚洲日韩欧美在线一区二区 | 国产va免费视频一区二区三区 | 91影视永久福利免费观看 | 国产酒店强推在线观看 | 国产精品午夜福利在线观看 | 国产中文每日更新在线观看 | 精品国内一区二区三区蜜桃 | 亚洲欧美另类 | 国产色系视频免费在线观看 | 欧美日韩国产变态一区二区三区 | 中文字字幕在线中文乱码电影 | 欧美日韩在线观看精品 | 欧美极品欧美精品欧美 | 国产揄拍视频在线观看 | 日本在线观看中文字幕 | 国产精品艾草在线观看 | 日韩一区二区三区免费视频 | 精品日韩欧美一区二区在线播放 | 最新热门电影电视剧免费在线观看 | 亚洲精品国产精 | 福利片福利一区二区三区 | 性一交一| 精品午夜一级一二三区 | 国产精品亲子乱 | 91免费看片 | 亚洲欧美日韩国产精品 | 国产一区二区在线播放女友 | 国产美腿制服丝袜在线 | 人与动欧交视频 | 国产日韩精品一区在线观看 | 欧美日韩性爱 | 91看片网站免费看 | 国产精品夜色一 | 日韩成全视频观看免费观看高清 | 国产一级做a爰片在线看免费 | 国产一区二区三区美女 | 国产精品第9页 | 在线观看国 | 91欧美精品 | 国产欧美一区二区精品性色tv | 国内视频在| 免费岛国 | 国产欧美在 | 国产在线一品 | 日本高清免费视 | 手机大看福利永久国产 | 日本在线一区三区国产主 | 黑人巨大精品欧美一区二区在线 | 国产欧美日韩综合视频专 | 美国一级欧美三级 | 中文字幕精品卡通动漫 | 欧美午夜福利在 | 国产一区二区网站 | 床戏在线 | 国产精品视频 | 欧美色淫 | 国产国产精品人在线视 | 一区二区三区国产 | 国产精品色哟哟网站 | 精品免费视频大 | 国产精品盗摄在线观看 | 欧美精品一区二区三区中文 | 91sao国产在线观看 | 永久免费精品性爱网站 | 成人三级做爰视频在线看 | 日本欧美韩国国产综合另类 | 一区二区三区中文 | 成人大黄全免费网站 | 精品国产污污免费网站 | 国产精品三级国产电影 | 亚洲一区二区三区中文字幕在线 | 国产亚洲欧美日韩精品不卡 | 国产资源中文字幕 | 国产日本在线观看网址 | 奇米777四色影视在线看 | 免费网站看v片在线爱的影院 | 激情视频一区二区三区 | 五月婷婷综合在线视频 | 观看一区二区视频 | 日本中文字幕一区二区有码在线 | 日本免费一区二区五区六区 | 亚洲日韩欧美国产精品共 | 国产日韩欧美911在线观看 | 国产精品自在自线观看 | 欧美性生交活xxxxxdddd | 亚洲综合在线播放 | 五月婷婷爱六月久 | 91天天 | 国产ⅴa免费精品高清在线 欧美日韩免费高清一区二区 | 欧美亚洲国产日韩综合aⅴ 伦理高清在线观看 | 亚洲欧洲中文字幕免费看 | 精品国产自在现线免费观看 | 国产一区二区四五区在线视频 | 午夜日韩欧美电影在线 | 国精一二二产品无人区 | 国产精品成人不卡在线观看 | 色五月激情五月综合网五月天 | 岛国大片在线一 | 日韩中文字幕在线 | 成人妇女免费 | 国产又污又爽又黄又刺激网站 | 免费大片黄国产在线观看 | 国产又大又硬又粗视频 | 91精品夜夜夜一区二区 | 精品欧美视频在线播放不卡 | 青青视频免 | 免费人成再在线观看视频 | 中日欧洲精品视频在线 | 免费观看亚洲人成网站 | 91网视频网 | 国产免费一区二区三区vr | 亚洲中文字幕一区二区三区 | 欧美一级韩国一级日韩一级 | 国产精品亚洲综合一区在线观看 | 国产精品福 | 日产无人区一线二线三线最新版 | 66精品综合久 | 男生晚上睡| 精品国产日韩亚洲一区在线 | 国产精品香蕉夜间视频免费播放 | 欧美一级高清片国产特黄大 | 神马视频 | 亚洲性爱免费网址 | 亚洲精品国产精品乱码不卡√ | 99re视频在线观看精品 | 区二区在线2025 | 日韩经典欧美一区二区三区 | 国产精品日韩中文字幕 | 无人视频在线观看免费播放影院 | 色综合综合色 | 动漫无遮| 欧美日韩一本无线码专区 | 国产一二三区在线播放 | 国产无人区一区二区三区 | 91精品国产白丝jk在线拍 | 亚洲精品自拍愉拍第二页 | 国产一级a一级a爰片免费无 | 91精品啪在线观看国产老人令品 | 日韩视频亚洲 | 九月丁香婷婷激情四射视频一区 | 中文字幕精品视频在线 | 亚洲精国产一区二区三区 | 最新国产精品拍自在线观看 | 日本视频观看无卡免费精品页 | 国产萌白酱喷水在线播放尤物 | 国产1卡二卡3卡四卡乱码视频 | 日韩在线视频网址 | 成人永久免费视频网站 | 国产精品乱伦一区二区 | 911精品中文在线播放永久 | 欧美a级v片不卡 | 二区三区 | 欧美日韩大胆视频 | 日本大片电影 | 国产亚洲精品a在线看 | a级大胆欧美人体大胆666 | 精品国产亚洲人成在线 | 日产中文字乱码卡一卡二卡 | 久青青视频在线观看久 | 99色热国产视频精品 | 国产欧美日韩精品成人动态 | 色偷偷国色天香在线观看免费视频 | 日韩欧美中文字幕一本 | 天堂网www中文在线 99热这里只有 | 国产一区二区三区四区在 | 午夜一级特黄 | 欧美日本一区二 | 免费很黄很 | 国产大片线上 | 日本三级视频在线观看 | 国外精品视频在线 | 久热国产精品视频 | 91欧美精品 | 精品国内自 | 欧美美女视频一区二区三区 | 黄又色高清视频免费 | 国产片人综合亚洲区 | 国产suv精品一区二区69 | 亚洲精品视频在线观看 | 五月婷婷六月丁香综合激情 | 日本一区二区三区中文字幕 | a级全黄试看30分钟国产 | 区在线播放 | 黄页网站视频 | 免费观看的视频黄页 | 午夜成人影院在线观看不卡 | 尚好影视 | 三区免费视频 | 国产福利尤物 | 欧美激情国产免费 | 亚洲激情图片 | 精品欧美aⅴ一区二区三区视频 | 亚洲男人第一天堂 | 国产网站一区二 | 国产欧美日韩va另类在线播放 | 韩国理论大全 | 成人三级做爰视频在线看 | 久热这里只有精品99在线观看 | 91看片婬黄大片在线播放 | 91日本免费高清 | 日韩精品亚洲春色欧美激情 | 国产亚洲高清不卡在线 | 国产不卡一区不卡二区不卡三区 | 麻花传剧原创mv免费观看 | 国产一区二区三区免费 | 日韩在线欧美网 | 亚洲高清乱码午夜电影网 | 国产足脚恋在线观看视频 | 日韩欧美精品在线观看 | 在线观看亚洲一区二区三区 | 欧美喷潮十大喷潮 | 国内精品一区视频在线播 | 91成人免费视频 | 99热门精品一区二区三区无 | 60分钟床色大片在线观看免费 | 精品日韩一区二区三区四区五 | 变态国产欧美激情成 | xxxx性欧美极品v | 色一情一伦一区二区三 | 国产日韩制服丝袜在线第一页 | 日本黄一级日本黄二级 | 一级生性活片在线观看视频 | 神马电影院午夜神福利在线观看 | 色一情一乱一伦一区二区 | 欧美三级成人观看 | 精品九九| 国产私拍福利精品视频推出 | 沦为性玩物 | 国产男女猛烈视频在线观看 | 岛国激情视频一区 | 亚洲一区二区三区四区在线 | 国产一级在线观看www色 | 韩国中文全部三级伦在线观看中文 | 日韩欧美国产第一页 | 亚洲国产欧美日韩精品网 | 国产婷婷久 | 国产尤物在线视精品亚洲 | 欧美国产日韩1区俺去了 | 九九九九精品视频在线播放 | 欧美日本道 | 精品女同一区二区三区免费站 | 亚洲欧洲日韩综合色天使 | 欧美人与物videos另类 | 国产亚洲束缚综合在线 | 欧美中文字幕在 | 性午夜视频在线观看 | 国产专区免费资源网站 | 精品国产在天天在线观看 | 国产手机在线国内精品软件的特点 | 国产亚洲播放在线一区 | 91天堂国产在线播放 | 国产美女自卫慰水免费视频 | 欧美a区b区c区视频在线观看 | 欧美xxxx黑人又粗又长精品 | 精品孕妇一区二区三区 | 欧洲成人动漫在线观 | 日本一区二区三区四区不卡 | 国产噜噜 | 日本一区二区免费在线播放 | 亚洲天码中字 | 免费番茄 | 亚洲综合狠狠99婷婷 | 国产亚洲日韩欧美另类第八页 | 黑人和欧美人交bbw 色老成人精 | 欧美日韩精品一区二区在线播放 | 8x视频在线观看 | 99视频在线精品免费观看6 | 日韩一二区中文字幕有码视频 | 日本精品一区在线 | 国产精品剧情一区二区在线观看 | 国产秘精品入口免费软件 | 国产在线一卡2卡三卡 | 欧美视频一区 | 欧美精品欧美人与动人物牲 | 国产区精品视频 | 国产欧美一区二区精品性色99 | 欧美一级带| 日本不卡一区二区aα | 亚洲综合 | 国产亚洲欧美一区二区 | 国产一区国产二区在线精品 | 亚洲视频在线观看 | 久丁香花高清在线观看完整版 | 日本一区二区三区在线观看不卡 | 在线日本一区二区免费观看 | 91精品国产亚洲爽啪在线影院 | 国产日本欧美三区 | 欧美日韩一区二区成人午夜电影 | 日本九九热在线观看官网 | 激情深爱五月开心婷婷综合 | 99热这里只有精品国产4 | 日韩理论片| 日韩欧美国产免费看清风阁 | 欧美一级电影一区二区 | 国产在线拍揄自揄拍免费下载 | 91精品一区二区三区在线观看 | 欧美日韩最新一区二区三区 | 99精品国产高清一区二区 | 国产女主播一区 | 日本96在线精品视频免费观看 | 欧美日韩一区欧美不卡 | 国产真实伦在线观看 | 青青国产在观免费影视 | 国产又黄又刺激又爽视频黄 | 日韩国产在线播放 | 丰满的继牳3中文字幕系列 卡通欧美制服中文 | 国产精品蜜桃 | 天天看片在线观看 | 亚洲国产精品自在拍在线播放蜜臀 | 欧美精品在 | 欧美色精品视频在线观看九 | 九1热综合这里都是真品 | 国产又粗又猛又爽的长视频 | 精品视频一区二区三区在线观看 | 国产精品久免 | 欧美、另类亚洲日本一区二 | 国语对白露脸在线播放 | 日韩国产一区二区三区地区 | 欧美亚洲精品一区二区免费 | 成人国内免费精品视频在线观看 | 欧美亚洲日本国产 | 国产免费人成视频网站在线看 | 欧美日韩精品在 | 国产高清精品一级 | 一区二区三区视频在线观看 | 欧洲精品第一区 | 欧美亚洲人成网站在线观看 | 好吊色青青青国产欧美日韩 | 国产偷v国产偷v亚洲高清 | 国产草莓社区在线观看 | 国产老妇 | 深爱香蕉五月 | 欧美精品日韩精品一卡 | 国产免费人成在线看视频 | 羞羞视频免费在线观看 | 九九在线精品视 | 日韩免费在线观看视频 | 777国产偷窥盗摄精品品在线 | 鲁丝一区二 | 国产福利 | 成人一区二区 | 在野外被三个男人躁一夜 | 草的舒服点网站在线观看 | 国产网红主 | 五月天婷婷网亚洲综合在线 | 91成人免费观看 | 77影视网| 日韩ā片在线观看免费观看 | 日韩一区免费视频 | 久精品国产区 | 欧美精品狂躁 | 凹凸导航午夜福利 | 免费的精品一区二区三区 | 好吊妞国产欧美日韩免费观 | 亚洲中文字幕一区二区三区 | 亚洲欧美中文日韩欧美 | 日韩欧美亚洲一区二区三区四 | 国产精品成人一区二区三区 | 91啪精品国产自产在线观看 | 精品欧美一区二区三区免费观看 | 国产91高清免费 | 国产日韩精品欧 | 国产91青青成人a在线 | 日韩欧美精品国产亚洲综合网站 | 欧美高清在线精品 | 日韩一区二区视频在线观看 | 欧美福利| 99热手机在线观看 | 精品aⅴ老司机天堂网站 | 精品一区二区三区在线观看 | 欧美日韩亚洲二区在线 | 欧美性xxxx极品高清 | 亚洲国产精品sss在 日韩欧美国产精品91 | 国产不卡视频一 | 日韩国产亚洲精品制服另类 | 亚洲精品v天堂 | 亚洲综合视频在线观看 | 国产伦精品一区二区三区视频网站 | 天天插天天| 亚洲伊人精品酒店 | 九九九九九热 | 成人性动 | 国产日韩欧美视频网址 | 日韩视频在线观看一区 | 国产精品不卡免费视频 | 亚洲国产一区二区试看 | 日韩免费在线播放一区二区三区 | 麻花传剧 | 国产精品播放一区二区三区 | 99成人| 欧美日韩在线看 | 精品一区二区三区国产在线观看 | 欧美日韩一二三区 | 日本久本草 | 国产在线观看一区二区三区精品 | 国产在线精品一区二区高清不卡 | 精品人伦一区二区三区 | 欧美韩日一区二区图区 | 成人乱码一区 | 成人午夜视频 | a在线看 | 精品日韩欧 | 欧美激情视频一区二区三区免费 | 亚洲精品国产品国语原创 | 精品国产一区二区三区四区特色 | 欧美成精品视频在线观看 | 欧美激情视频在线观看 | 色与欲影视天天看综合网 | 国产女白丝脚交视频播放 | 办公室大战高跟丝袜秘书经理ol | 国产乱码精品一区二区三区小说 | 免费观看一级特黄欧 | 136福利| 日本宅男午夜免费永久网站 | 欧美日韩永久免费看看视频 | 亚洲视频在线91精品 | 97免费| 国产乱轮视频在线观看 | 视频精品全部国 | 精品亚洲中文免费 | 男人的天堂免费a级 | 日本日本乱码伦视频免费 | 国产日产欧产美韩 | 男人狂躁进女人免费视频公交 | 高清一区二区亚洲 | 日韩精品电影一区亚洲高清 | 欧美人成网站观看www | 国产精品合集一区二区 | 夜夜导航 | 97人伦色伦成人免费视频 | 妖精视频免费观看 | 中文有码vs | 1769资源网最稳定网址 | 国产精品黄在线观看免费 | 亚洲综合一区二区三区人妖 | 舔射插啊~在线观 | 区三区在线观看 | 国产传媒 | 日韩一区二区三区四区不卡 | 欧美视频在线观看 | 岛国精品成人 | 精品国内外视频在线观看 | 国产精品喷潮免费观 | 午夜老司机永久免费看片 | 午夜插插插| 亚洲熟女综合一区二区三区 | 综合亚洲精品 | 日本在线观看中文字幕无线观看 | 99国产精品看片 | 亚洲综合激情另类小说区 | 性欧美日韩 | 国产主播福利片在 | 亚洲久悠悠色悠在线 | 精品亚洲欧美无人 | 日本一本二本三 | 漂亮大学生韩国三级播放国产 | 欧美视频一区二区专区 | 国产精品成人国产乱一区 | 国产日韩综合在线视频 | 欧美丰满大黑帍在线播放 | 日本国产欧美日韩三区四区 | 亚洲精品伦理一区二区三区青春 | 欧美日韩中国一区二区三区 | 无人一码二码三码4码免费 国产精品欧美一区二区三区不卡 | 国产男女爽爽爽免费视频 | 免费1级a做爰片在 | 国产国产成年在线影视区 | 99精品欧美一区二区蜜桃免费 | 日本三级做a全过程在线观看 | 欧美日韩成人午夜电影 | 国产日产欧产精品精品 | 91极品尤物| 亚洲一区二区三区中文字幕在线 | 日韩精品色色色色 | 亚洲欧洲日韩国产一区二区三区 | 国产啪精品视频网站 | 日本aⅴ精品一区二区三区日 | 乱伦综合国产免费 | 日a一二女在线播放免费视频 | 疼快拔出去 | 蜜桃色永久入口 | 韩精品欧美综合区 | 午夜三级伦理片在线观看 | 最新国产福利在线观看精品 | 日韩二区三 | 国产9.1国产精成人 办公室第1季9集在线观看 | 免费一级欧美大片在 | 激情视频小说在 | 白白发布精品视频在线观看 | 精品亚洲成a人app | 亚洲中文字幕精品一区二区三区 | 欧美亚洲日韩国 | 日韩欧美一区一本到国产 | 91午夜在线免费观看小视频 | 国产欧美日本亚洲精品一4区 | 美妇岳屈辱迎合 | 国产精品产品视频 | 写真福利理论片在线播放 | 日韩高清在线播放 | 99中文字幕精品国产 | 国产精品人成在线观看 | 999zyz玖| 国产精品白拍一区 | www.俺去也.com影院 |