欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

LeadTools 使用基準線

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

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

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

相關(guān)鏈接:

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

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

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

3. 然后會出現(xiàn)一個新建項目對話框。

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

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

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

7. 選擇“確定”來創(chuàng)建該項目。

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

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

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中,創(chuàng)建一個新的方法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);
               
               ' 創(chuàng)建一個將被用于加載圖像的編解碼器類的新實例。
               Dim _codecs As RasterCodecs = New RasterCodecs()
               ' 創(chuàng)建一個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);
               
               // 創(chuàng)建一個將被用于加載圖像的編解碼器類的新實例。
               RasterCodecs _codecs = new RasterCodecs();
               // 創(chuàng)建一個MedicalViewer的新實例。該查看器布局將被劃分為2X2。
               MedicalViewer viewer = new MedicalViewer(2, 2);
               // 使該視圖與整個窗體相匹配。
               viewer.Dock = DockStyle.Fill;
               // 將該查看器添加到窗體。
               Controls.Add(viewer);
            }

13. 請從Form1的構(gòu)造函數(shù)中調(diào)用該方法InitClass,并將該調(diào)用放置于InitializeComponent()之后。

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

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

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

請下載示例DICOMDIR,并將其內(nèi)容解壓縮到此文件夾: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數(shù)據(jù)集信息,并將其保存到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
              ' 在這里,該程序?qū)Π付ǖ膕tudyInstanceUID的科目進行搜索。 
              _studyElement = FindStudy(ds, studyInstanceUID)
              ' 在這里,該程序?qū)Π付ǖ膕eriesInstanceUID的系列進行搜索。
              _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID)
              ' 請創(chuàng)建一個MedicalViewerSeriesManager的新實例。它將被用于對圖像進行排序,以便創(chuàng)建正確的3D對象。
              _seriesManager = New MedicalViewerSeriesManager()
              ' 請創(chuàng)建一個MedicalViewerImageData的陣列。該類將被用于保存幀信息。而該信息將被用于對圖像進行排序。
              _imageDataList = New List(Of MedicalViewerImageData)()
              Dim dicomDataSet As DicomDataSet
              Dim imageIndex As Integer
              Dim imagePath As String
              Dim echoNumber As Integer = 0
              ' 現(xiàn)在,該程序?qū)υ撓盗兄械拿恳粠M行審查。
              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()
                   ' 跳轉(zhuǎn)到下一個圖像。
                   imagePath = GetNextImageName(ds, directoryPath, imageElement)
                Catch exception As System.Exception
                   System.Diagnostics.Debug.Assert(False, exception.Message)
                   Throw
                End Try
                 imageIndex += 1
              Loop
              ' 根據(jù)它的數(shù)據(jù)對這些圖像進行排序。
              _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)
              ' 設(shè)置以下三行代碼非常重要。否則,可能會發(fā)生基準線結(jié)果錯誤。
  ' 設(shè)置定位器的圖像位置。             
 cell.SetImagePosition(0, _seriesManager.Localizers(0).LocalizerData.ImagePosition, True)
              ' 設(shè)置定位器的圖像方向。
              cell.ImageOrientation = _seriesManager.Localizers(0).LocalizerData.ImageOrientationArray
              ' 設(shè)置定位器的像素間隔。
              cell.PixelSpacing = _seriesManager.Localizers(0).LocalizerData.PixelSpacing
              ' 設(shè)置定位器的幀引用UID。如果系列和定位器具有相同的引用UID的話,這樣就可以在它們之間創(chuàng)建一條基準線。
              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()
              ' 循環(huán)處理這些圖像,并將它們一個接一個地添加到最終的圖像。
              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
              ' 設(shè)置以下這幾行代碼非常重要。否則,可能會出現(xiàn)基準線結(jié)果錯誤。
              index = 0
              Do While index < depth
                ' 設(shè)置每幀的圖像位置。
                cell.SetImagePosition(index, _seriesManager.Stacks(0).Items(index).ImagePosition, False)
                 index += 1
              Loop
              ' 請對該系列的圖像方向進行設(shè)置,且它只需被設(shè)置一次,因為所有的幀必須具有相同的方向值。
              cell.ImageOrientation = _seriesManager.Stacks(0).Items(0).ImageOrientationArray
              ' 請對該系列的像素間隔進行設(shè)置,且它只需被設(shè)置一次,因為所有的幀必須具有相同的像素間隔值。
              cell.PixelSpacing = _seriesManager.Stacks(0).Items(0).PixelSpacing
              ' 請對該系列的幀引用UID進行設(shè)置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創(chuàng)建一條基準線。
              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數(shù)據(jù)集信息,并將其保存到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;
               // 在這里,該程序?qū)Π付ǖ膕tudyInstanceUID的科目進行搜索。
               _studyElement = FindStudy(ds, studyInstanceUID);
               // 在這里,該程序?qū)Π付ǖ膕eriesInstanceUID的系列進行搜索。
               _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID);
               // 請創(chuàng)建一個MedicalViewerSeriesManager的新實例。它將被用于對圖像進行排序,以便創(chuàng)建正確的3D對象。
               _seriesManager = new MedicalViewerSeriesManager();
               // 請創(chuàng)建一個MedicalViewerImageData的陣列。該類將被用于保存幀信息。而該信息將被用于對圖像進行排序。
               _imageDataList = new List<MedicalViewerImageData>();
               DicomDataSet dicomDataSet;
               int imageIndex;
               string imagePath;
               int echoNumber = 0;
               // 現(xiàn)在,該程序?qū)υ撓盗兄械拿恳粠M行審查。
               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();
                     // 跳轉(zhuǎn)到下一個圖像。
                     imagePath = GetNextImageName(ds, directoryPath, ref imageElement);
                  }
                  catch (System.Exception exception)
                  {
                     System.Diagnostics.Debug.Assert(false, exception.Message);
                     throw;
                  }
               }
               // 根據(jù)它的數(shù)據(jù)對這些圖像進行排序。
               _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);
               // 設(shè)置以下三行代碼非常重要。否則,可能會發(fā)生基準線結(jié)果錯誤。
               // 設(shè)置定位器的圖像位置。
               cell.SetImagePosition(0, _seriesManager.Localizers[0].LocalizerData.ImagePosition, true);
               // 設(shè)置定位器的圖像方向。
               cell.ImageOrientation = _seriesManager.Localizers[0].LocalizerData.ImageOrientationArray;
               // 設(shè)置定位器的像素間隔。
               cell.PixelSpacing = _seriesManager.Localizers[0].LocalizerData.PixelSpacing;
               // 設(shè)置定位器的幀引用UID。如果該系列和定位器具有相同的引用UID的話,這樣就可以在它們之間創(chuàng)建一條基準線。
               cell.FrameOfReferenceUID = _seriesManager.Localizers[0].LocalizerData.FrameOfReferenceUID;
            }
            void Load2DCell(MedicalViewerMultiCell cell)
            {
               // 啟動允許加載各種圖像的編解碼器。
               RasterCodecs _codecs = new RasterCodecs();
               // 加載CT DICOMDIR,并返回排列好的圖像集合。
               output = Load_James_CT();
               // 循環(huán)處理這些圖像,并將它們一個接一個地添加到最終的圖像。
               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;
               // 設(shè)置以下這幾行代碼非常重要。否則,可能會出現(xiàn)基準線結(jié)果錯誤。               for (index = 0; index < depth; index++)
               {
                  // 設(shè)置每幀的圖像位置。.
                  cell.SetImagePosition(index, _seriesManager.Stacks[0].Items[index].ImagePosition, false);
               }
               // 請對該系列的圖像方向進行設(shè)置,且它只需被設(shè)置一次,因為所有的幀必須具有相同的方向值。
               cell.ImageOrientation = _seriesManager.Stacks[0].Items[0].ImageOrientationArray;
               // 請對該系列的像素間隔進行設(shè)置,且它只需被設(shè)置一次,因為所有的幀必須具有相同的像素間隔值。.
               cell.PixelSpacing = _seriesManager.Stacks[0].Items[0].PixelSpacing;
               // 請對該系列的幀引用UID進行設(shè)置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創(chuàng)建一條基準線。
               cell.FrameOfReferenceUID = _seriesManager.Stacks[0].Items[0].FrameOfReferenceUID;
            }

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

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

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

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

19. 現(xiàn)在,將這兩個單元格(系列單元格和定位器單元格)添加到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. 如果您運行該程序,現(xiàn)在您將看到兩個單元格:一個上面繪制有一條垂直線,而另外一個上面繪制有一條水平線。

關(guān)于其他產(chǎn)品的更多信息,請查看產(chǎn)品詳情

文自:葡萄城


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

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


為你推薦

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

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

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

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

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

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

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

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

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

    LEADTOOLS Medical Imaging Suite幫您開發(fā)功能強大的PACS和醫(yī)學成像應用程序

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    欧美亚洲日本国产黑白配 一级特黄高清aaa | 男男女女爽爽爽免费视频 | 狼群影院视频在线观看高清版 | 亚洲s色大片在线观看 | 欧美精品金8天国系列 | 精品录音国产一区在线 | 日韩精品一区二区三区中文不卡 | 国产精品欧美一区二区三区不 | 午夜理论片yy8860y影院 | 一区二区三区日本精品 | 午夜国产福利在线直播 | 国产91精品老熟女泻火 | 免费在线观看电视剧大全 | 日韩不卡在线视频 | 午夜性影院在线观看视频播放 | 精品国产sm捆绑最大网免费站 | 亚洲国产中文日韩精品乱码 | 设看到很多欧美日韩一区二区综 | 欧美有色| 国产精品日韩欧美制服 | 青青久在线视频 | 日韩午夜视频在线观看 | 亚洲线精品一区二区三区四区 | 国产一卡2卡3卡4卡网站免费 | 国产在线精品一区在线观看; | 国产欧美日韩综合一区在线 | 国产在线观看不卡免费高清 | 亚洲午夜一区二区三区在线观看 | 人善交vi | 日本另类αv欧美另类aⅴ | 一个人看的免 | 成人午夜视频在线视频 | 香港三级台湾三级在线播放 | 一区在线观 | 美腿丝袜在线播放 | 日韩欧美色综合网站免费 | 国产高清免费在线 | 国产精品人娇在线内谢 | 日韩欧美亚洲国产永久在线观看 | 人人看人人艹 | 国产欧美日韩精品福利98 | 成在线人永久免费播放视频 | 亚洲视频网站在线观看 | 亚洲欧洲精品视频 | 无人视频在线观看免费播放影院 | 欧美高清国产一区二区三区 | 国产综合在线91精品思思 | 成人美女国产精品免费视 | 精品免费视频大 | 欧美日韩亚州在线 | 色老头在线永久免费视频 | 99视频精品全部品全正 | 午夜三级中文在线观看 | 99热精| 精品熟女视频一区二区三区 | 欧美a级情欲片在线观看免费 | 日本激情在线观看免费观看 | 一二三四在线观看免费中文吗中文 | 女人脱精光一清二楚图片 | 欧美日韩午 | 亚洲国产综合 | 两性色午夜视频在线观看 | 国产精华液和欧美的精华液的区 | 全网热播最新电影电视剧 | 水蜜桃亚洲一二三四在线 | 国产99在线 | 亚洲欧美国产高清va在线播放 | 在线观看一区二区 | 91青青草| 免费国产网站在线观看不卡 | 国产精品白丝 | 亚洲激精日韩激精欧美潮精品 | 视频在线一区二区三区 | 亚洲91视频网站 | 国产在线精品一区二区高清 | 狂野欧美激情性xxxx | 亚洲综合二区 | 午夜三级a三级三点 | 日本三级韩国三级香港三级a级 | 国产a级毛 | 久青草久青草视频在线观看 | 国产日韩对 | 一起草视频在 | 中文www新版资源在线天堂√ | 亚洲高清网站 | 一区二区三区四区在线播放视频 | 亚洲欧美视频一区二区三区 | 午夜免费福 | 国产在线视频自拍 | 夜色福利院在 | 国产一区在线看 | 一次处破女hd精品 | 一区二区影院 | 国产日产成人免费视频 | 青青草无 | 在线观看播放 | 国产盗摄偷窥在线观看 | 国产日韩欧美一区二区三区精品 | 字在线观看一二区 | 91精品导航在线观看 | 精品免费美剧网排行榜在线看 | 亚洲人成中文字幕在线观看 | 国产欧美一区二区三区综合野 | 中日韩在线视频 | 只有精品| 国产亚洲 | 中文字幕精品亚洲一区 | 国产在线观看高 | 色琪琪原网站亚洲香蕉 | 黑料不打烊最新2025地址 | 中文韩国午夜理伦三级好看 | 亚洲一区二区三区和欧美四区 | 亚洲精品男女视频在线 | 免费国产午夜在线观看 | 一扒二脱三插片在 | 上司揉捏人 | 亚洲国产中文日韩欧美在线 | 午夜日韩综合激 | 免费亚洲大片app下载 | 亚洲精品高清中文字幕完整版 | 另类亚洲小说图片综合区 | 不止不休高清在线观看 | 国产短视频精品区第一页 | 2025最新高清免费电影 | 亚洲精品视频在线观看 | 在线欧美日韩亚洲国产一区 | 亚洲熟女丰满多毛xxxxx | 美女视频免费黄的 | 91九色在线观看 | 美腿丝袜在线播放 | 韩国日产综合在线 | 国内精品自在自线视频在线观 | 片免费在线 | 老牛影视文化传媒有限公司官方 | 三级理论电影三级午夜电影院 | 成年免费国产大片 | 在线看片免费人成视频手机观看 | 亚洲专区日韩专区在线观看 | 日韩在线观看不卡 | 国产农村妇女特 | 玩成熟老熟女视频 | 精品外国呦系列在线观看 | 国产视频第一页 | 国产农村妇女精品一二区 | 国产福利观| 夜色福利院在 | 国产中文字幕永久在线观看 | 成a人片在线观 | 国产一级a毛一级a看免费视频 | 色香欲综合成人免费视频 | 欧美精品一区二区三区中文 | 欧美在线精品国自产拍免费 | 国产视频综 | 99国产综合视频在线播放 | 韩国三级私人教练 | 日韩亚洲制服另类 | 亚洲第一天堂m | 国产精品视频在这里有精品 | 日韩欧美亚洲国产高清 | 日本中文字幕二区三区 | 欧美aaaaa在线| 日本三级韩国三级三级a级按 | 一日本道伊 | 国产亚洲新免费视 | 91青娱乐免费国产视频 | 亚洲手机| 国产女人喷潮视频在线观看免费 | 欧美日韩在线免费观看 | 丰满岳妇乱一区二区三区 | 性爱影院三级国产 | 亚洲精品一区国产 | 国产主播在线观看不卡 | 欧美日韩在线观看免费 | 国产在线一区二区三区不卡在线 | 亚洲高清一区二区三区四区 | 欧美性受xxxx黑人猛交免费 | 国产日韩综合精品一区二区三区 | 蜜芽va亚洲 | 国产国语 | 亚洲高清国 | 国产精品v日韩精品 | 引领不用下载播放器的影视站 | 爱我免费视频观看在线www | 国产福利一区二区三区四区 | 国产欧美一区二区三区综合野 | 国产熟女一区二区五月婷 | 成人影院 | 日本欧美中文幕 | 欧美一级特黄aa大片 | 热播影视大全 | 你懂得视频在线 | 欧美日韩 | 精品国产爱片 | 成人午夜视频在线观看 | 国产精品系 | 国产乱码精品一区 | 精品影院 | 欧美日韩成人在看 | 一区二区精品视频日本 | 国产欧美亚洲三区久在线观看 | 欧美亚洲中日韩中文字幕在线 | 国产中文制服丝袜另类 | 亚洲国产精品尤物yw在线 | 亚洲欧美日韩另类精品一区二 | 国产日韩制服丝袜在线第一页 | 欧美日韩成人精品 | 国产精品自产拍在线观看花钱看 | 91精品丝袜国产在线一区 | 精品国产一区二区三区不卡在 | 亚洲午夜私人影院 | 欧美日韩在线观看区一二 | 国产又粗又爽视频 | 狂处让老二爽18p | 一区二区三区在线观看视频 | 国产精品网站在线观看免费传媒 | 午夜性爽视频男人的天堂 | 欧美日韩国产一区二区三区欧 | 韩国v欧美v亚洲v日本v | 毕业后来 | 变态另类清纯唯美中文 | www亚洲欲色成 | 欧美a级v片在线观看一区 | 国产精品第一区第27 | 一区二区三区在线观看免费 | 亚洲国产的精品太乱码一区二区 | 亚洲中文字幕在线一区 | 亚洲成a人片在线观看 | 在线视频一区二区三区三区不卡 | 涩涩视频午夜福利一区二区 | 午夜视频在线瓜伦 | 色老头在线永久免费视频 | 精品国产午夜福利精品推荐 | 国产免费一区二区三区在线 | 三级国产国语三级在线2 | 97伦理电影在线不卡 | 国产又粗又黄又爽的免费视频 | 人片在线观看 | 一区二区三区在线播放 | 对白在线观看 | 国产精品视频每日更新 | 午夜视频在线观看一区二区 | 欧美性xx | 成人精品一区二区户外勾 | 在线免费观看污网站 | 免费观看又污又黄的网站 | 免费人成视网站在线观 | 姐妹5中国版 | 午夜人成影视免费 | 日韩国产经典欧美午夜福利 | 日本护士xxxxx在线播放 | 国产精品激情一区在线观看 | 亚洲区小说区激情区图片区 | 中文字幕亚洲无限码 | 日日狠狠太爽 | 欧美gv在线观看 | 欧美韩日二三在 | 国产另类亚洲日韩 | 日韩视频网 | 97精品依人久 | 成a人片免费在线观看 | 欧美一区二区三区四区婷婷 | 大色综合色综合网站 | 亚洲欧美中文字幕专区 | 国产精品成人h片在线 | 国产精品成人永久在线 | 夜夜爽一区二区三 | 日韩欧美aⅴ综合网站发布 大香伊蕉在人线国产最新75 | 欧美高清中文字幕综合网 | 亚洲v国产v日韩v欧美v | 国产一区精品普通话对白 | 日韩一区视频精品无高清在 | 97碰碰碰成年免费视频s | 岛国大片网站在线观看 | 91精品啪在线观看国产线免费 | 精品一区二区三区在线观看视频 | 欧美特级理论片免费看 | 一区二三国产好的精华液 | 伊人影视在线观看日韩 | 欧美日韩在线观看区一二 | 动漫精品一区二区三区四 | 老牛影视精品亚洲一区二区 | 亚洲免费一区二区 | 亚色九九九全国免费视频 | 丰满老熟好大bbb | 国产愉拍99线观看 | 久热国产vs视频在线观看 | 国产传媒片免费观看 | 国产成年人免费在 | 成人日动漫卡一区二区三区动漫 | 欧洲vodafon| 国产鲁鲁视频在线观看 | 日本高清视频在线观看不卡 | 欧美性白人极 | 亚州欧美自拍另类欧美 | 国色天香中文在线观看www | 免费人成网视频 | 久9视频这里只有精品试看 经典影片免费在线观看 | 最近高清中文在线字幕在线观看 | 国产a∨天天免 | 成人午夜看黄在线尤物成人 | 国产盗拍精品视频 | 亚洲欧美综合区自拍另类 | 99精品国产自 | 美女国产毛 | 嫩videossexo另类 | 亚洲人精品午夜射精日韩 | 欧美精品欧美***欧美激情 | 精品亚洲综合在线第一区 | 国产欧美 | 军训完被教官灌满精子男男 | 污污污污污免费网站在线观看 | 日本一区二区三区在线观看入口 | 国产人成综合精品亚洲 | 日韩精品一区二区三区中文字幕 | 99久在线观看 | 亚洲人成网址在线观看 | 亚洲高清激情精品一区国产 | 欧美高清性色生活片免费观看 | 国产欧美日韩亚洲中文高 | 玖玖综合 | 一级毛卡| 热门电影电视剧短剧免费在线观看 | 亚洲欧美自偷自拍另类视 | 国产原创91 | 日本大片视频 | 国产影视 | 艳妇野欲 | 国产午夜亚洲精品不卡免下载 | 亚洲日本欧美日韩中文字幕 | 国产日产亚洲欧美综合另类 | 国产一区二区在线观 | 日韩在线观看视频网站 | 话务耳麦| 大地资源网最新在线播放 | 了解最新38在线信息 | 一区二区三区四区免费视频 | a级大胆欧美人体大胆666 | 尤物在线精品视频 | 国产a级三级三级三级 | 2025国产精品自产拍在线观看 | 国产福利高颜 | 亚洲国产精品一区 | 日韩欧美一区二区大胸视频 | 精品日本一区 | 国产福利资源在线 | 男人的天堂a | 99国精产品在线视频 | 在线观看亚洲精品福利片 | 学生妹国产在线第一页 | 欧美日韩一区二区不卡三区 | 精品日产一区二区三区 | 婷婷亚洲久悠悠色悠在线播放 | 国产亚洲一区二区 | 午夜自产精品一区二区三区 | 国产日产高 | 水蜜桃www | 亚洲一卡2卡三 | 精品女同一区二区三区免费站 | 拍国内精品老妇 | 免费网站看v片在线爱的影院 | 午夜插插插 | 欧美日韩激情播放 | 亚洲中文字幕 | 香蕉香蕉国产片一级一级毛 | 色依依亚洲一区在线观看 | 精产国品一二三产品区别在线 | 国色天香中文在线观看www | 国产精品手机免费 | 国产网曝门亚 | 亚洲欧美日韩高清一区 | 国产日韩精品欧美一区喷水 | 99偷拍视频精品一区二区 | 华人亚洲欧美精品国产 | 国产日产欧产精品精品app | 欧美视频一区二区三区在线观看 | 日本亚洲欧美综合视频 | 国产亚洲欧美日韩综合另类 | 影音先锋 | 爽爽狠狠婷婷97 | 国产老熟女精品视 | 亚洲一区二区又黄又爽在线观看 | 日本在线精品视 | 日本亚洲黑人在线播放 | 国产www尤物精品在线观看 | 巨大乳bbwsex中国 | 日韩中文字幕34页视频 | 免费人成 | 加勒比综合免费不卡在线观看 | 99这里只有精品在线观看视频播 | 亚洲国产经典国产精品观看免费 | 成人欧美一区二区三区在线观看 | 狂野欧美性猛交xxxx免费 | 日本一区二区三区四区在线观看 | 经典三级欧美 | 日本亚洲欧美国产电影在线观看 | 中文在线资源天堂www | 免费播放婬乱男女婬视频国产 | 亚州国产精品一线北 | 亚洲欧美精品一区二区 | 秋霞电影网| 三三电影网 | 免费poren国| 日韩精品搭讪在线视频播放 | 原产国创精品 | 99视频在线观看 | 国产va在线观看免费 | 精品国产sm捆绑最大网免费站 | 视频在线播放 | 欧美又粗又大又长又硬一级a | 热播电视剧免费在线观看 | 精品国产电影自在免费观看 | 91精品啪在线观看国产在线 | 日韩欧美一区二区三区 | 伊伊人成| 日韩国产亚洲一区二区 | 国产精品欧美亚洲韩国日本 | 国产乱码高清区二区三区在线 | 精品在线视频免费在线观 | 亚洲日本aⅴ片在线观看香蕉 | 免费精品视频一二区 | 亚洲成a人片在线不卡一二三区 | 亚洲男人的天堂在线观看 | 国产va免费精品高清在线观看 | 一区二区三区免费视频 | 成人a大片高 | 日韩欧美国产91丝袜 | 欧美精品vid | 一二区视频 | 在线看片 | 亚洲中文字幕一区二区三区 | 亚洲一级婬片 | 国产欧美日本不卡 | 一本大道熟 | 国产精品美女网站在线观看 | 日本高清一区二区三区水蜜桃 | 精品国产99国产精偷国产黄在线 | 亚洲精品一本四区91 | 亚洲一区在线播放蜜臀 | 国产精彩 | 玖玖国产视频拍拍拍 | 日韩一区二区手机免费观看 | 亚洲欧美国产日韩精品在线 | 午夜福利电影院 | 国产一区二区在线视频 | 99香蕉国产线观看免费 | 三级乱伦国产欧美 | 亚洲vv秘码国产 | 一本一本 | 伊人色综| 免费国产一级特黄aa大片在线 | 欧美日韩国产在线激情 | 免费电视剧 | 日韩精品免费一区二区三区 | 九九在线观看精品视频6 | 欧美精品一区三区在线观看 | 完整版在线观看 | 为您呈现最新最热的电影力作 | 国产亚洲精在线看 | 日本三级带日本三级带黄首页 | 又湿又紧又大又爽又a视频 日韩视频免播放在线观看 欧美亚洲日韩国 | 高清综合国产欧美 | 国产精品黑人一区二区三区 | 动画三级在线 | 亚洲综合一区二区 | 欧美经典日韩精品 | 亚洲开心婷婷中文字幕 | 日本三级视频在线观看 | 欧美videos另类极品 | 亚洲小说一| 国产日韩在线观看一区二区三区 | 影院热映大片 | 中文天堂最新版在线网 | 青青国产在观免费影视 | 92午夜福利手 | 国产精品202 | 国产精品日韩精品在线 | 国产亚洲精aa在线观看 | 尤物视频在线免费观看 | 日本有码中文 | 国产精美视频在线观看 | 国产在线观看永久免费 | 欧美激情在线精品video | 国产福利在线观看 | 国产视频在线一二区精品分类 | 无人在线观看高清视频 | 一二三四视频 | 亚洲欧美国产日韩在线观看 | 国产日韩另类视频一区爱 | 在线视频下载 | 天天看片高 | 最近中文字幕高清一区二区 | 亚洲综合成人精品成人精品 | 特种兵的又 | 亚洲一区二区在线欧洲 | 日韩亚洲成a人片在线观看 国产日产成人免费视频在线观看 | 网站资源多午夜激情影院 | 在线观看精品自拍视频 | 免费永久在线观看污污的网站 | 亚洲欧美大码a在线观看 | 日本h无羞动漫在线观看网站 | 精品国精品国产自在久国产 | 成人高清视频 | 国产精品三级在线观看 | 经典国产乱子伦精品视频 | 国产宅男z资 | 91午夜福利国产在线观看 | v中文字幕网 | 国产蝌蚪视频一区二区三区 | 国产人成午夜免电影费观看 | 精品国产免费人成在线观看 | 免免费看| 字幕一区精品自拍 | 亚洲综合欧美在线 | 亚洲欧美日韩中文另类不卡 | 亚洲国产日韩欧美综合a | 精品一区精品二区 | 国产va天堂va欧美va | 国产精品自在拍在线播放大全 | 国产92刮伦脏话对 | 中文字幕免费伦费影视 | 欧美三区日韩一 | 好看热播经典影视视频 | 五月社区免费 | 色一情一乱一伦一区二区 | 夜夜橾天天橾 | 99re6热在 | 欧美中文字幕乱伦视频 | 99视频在线精品自拍 | 最新精品亚洲成a人在线观看 | 我们高清观看免费中国片 | 破解中文字幕 | 中文字幕亚洲欧美专区不卡 | 欧美ay亚洲ay日韩 | 亚洲欧美日韩中文另类不卡 | 91精品全国免费观看老司机 | 国产人妖ts视频在线观看 | 激情文学综合区图片区小说区 | 国产日本欧美 | 亚洲一区二区三区精品影院 | 国产在线观看免费视频在线 | 海量热播电视剧手机电影在线观看 | 国产欧美视频综合二区 | 少女韩国在线观看完整版免费 | 精品国产又大又长又爽 | 国产日韩精品一区二区在线观看 | 国产精品视频免费一区二区三区 | 色综合久 | 亚洲欧洲日韩一区二区日本 | 视频一区二区三区 | 91国内精品在线入口 | 亚洲大片精品永久免费看网站 | 亚洲伊人色 | 国产精品日韩精 | 国产二区丝袜在线观看 | 亚洲成v | 亚洲欧美综合精品成 | 日本一二三区不卡高清区 | 手机高清热播韩剧美剧电视剧 | 国产亚洲精品国产福利在线观看 | 国产日韩高清一区二区三区 | 最新中文字幕第一页 | 精品视频高 | 在线观看片免费人成视 | 欧美精品日韩精品一卡 | 你懂得视频在线 | 欧美日韩另类视频在线观看 | 中文字幕在线看日本大片 | 免费在线宅男精品视频 | 成年女人免费碰碰视频 | 欧美大bb兽交高清 | 精品动漫福利h视频在线观看 | 亚洲高清中文字幕一区二区三区 | 亚洲国产精品自在在线观看 | 日韩中文字幕v亚洲中文字幕 | 国产一区二区色婬影院 | 日韩一区二区三 | 中文字幕高清免费日韩视频在线 | 日本岛国在线观看网址 | 日韩一区二区视频在线观看 | 国产欧美日韩一区二区搜索 | 国产精品v亚洲精品v日韩精品 | 亚瑟视频在线观看 | 日本亚洲欧美国产日韩ay | 国产日韩欧美911在线观看 | 日韩亚洲综合欧美 | 在线免费观看亚洲 | 最新免费电影在线播放 | 日本在线日本 | 91美女秘片黄在线观看游戏 | 在线观看视频导 | 中文字幕亚洲欧美在线不卡 | 三年在线观看免费大全 | 成人精品一区二区三区在线 | 免费精品国偷自产在线青年 | 国产12页| 911精品中文在线播放永久 | 香港三级日本三级韩国三级 | 日韩视频一区二区在线观看 | 性欧美最新巨大乳 | 在线播放国产精品三级 | 国产精品一二三区视频网站 | 中文字幕v人 | 五月丁香六月婷婷综合网缴情 | 亚洲一区二区三区人人 | 国产一区二区高清在线 | 亚洲第一区欧美国产不卡综合 | 欧美+日韩+中文字幕 | 亚洲大片精品免费在线 | 亚洲欧洲日韩国产一区二区三区 | 国产亚洲精品福利在线无卡一 | 大陆老熟女洗澡性视频tube | 国产福利不卡视频在免费 | 好吊妞在线视频免费观看综合网 | 99re热这里只有精品66 | 国产国语一级 | 国产情侣一区二区三区 | 国产免费一级视频在线观看 | 国产v综合v亚洲欧美大片 | 国产偷伦视频高清完整版 | 不卡影视 | 国产午夜电影免费 | 成a人片在线观看中文 | 日本永久免费aⅴ在线观看 噼里啪啦hd免费观看动漫 | 国产探花在线观看 | 欧美在线高 | 99精品国产丝袜在线拍国语 | 午夜理伦片免费 | 国产欧美一区二区三区户外 | 老司机永久免费视频网站在线观看 | 欧洲尺码日本尺码专线 | 亚洲欧美国产日韩精 | 国产91福利小视频在线观看 | 亚洲高清一区二区三区四区 | 日韩一二三区视频精品 | 特色大片免费看 | 精品一区二区三区视频免 | 欧美日韩一区日本成人一区二区 | 国产热re9| 天美传媒在线观看果 | 欧洲一级大黄大 | 国产狼人视频 | 少女韩国在线观看完整版免费 | 国产精品v亚洲精品v日韩精品 | 丝袜美腿女邻居人 | 国内视频一区在线播放 | 国产日韩乱码精品一区二区 | 欧美国产一区二区三区精品 | 国产亚洲一区二 | 扒开女人内裤猛 | 一区二区精品日韩欧美在 | 噼里啪啦 | 国产偷窥女洗浴在线观看亚洲 | 国产婷婷综合在线视频 | 国产一区二区三区在 | 日产精品一品二品三品 | 国产精品三级不卡电影 | 欧美日韩三区 | 欧美高清另类自拍视频在线看 | 亚洲免费精品一二三四 | 第四色伊人 | 成人精品一区二区户外勾搭野 | 精品一区二区三 | 国产乱子夫妻xx黑人xyx真爽 | 97在线视频人| 91精品国产闺 | 浅田真美 | 影视最全更新最快 | 国产日韩在线观看香蕉一区 | 国产精品露脸国语对白 | 国产一级婬片视 | 的免费视频 | 2025国产精品一卡2卡三卡4 | 最近高清中文在线字幕在线观看 | 亚洲步兵在线播放 | 日产在线 | 亚洲国产欧美日韩v一区二区 | 日韩视频在线观看网站资源 | 找老女人泻火 | 欧美手机手机在线视频一区 | 国产初高中生真实在线视频 | 国精产品一二二线网站 | 亚洲国产一区二区三区a毛 国产美女淫秽一区二区三区 | 免费国产乱理伦片在线观看 | 国产精品猎奇系列在线观看 | 亚洲欧美在线观看 | 国产+日韩精品 | 手机在线看永 | 欧美在线观看二区 | 欧美日韩亚州在线 | 自拍日韩亚洲 | 最近的2025中文字幕免费 | 日韩免费精品视频一区二区三区 | 成人一区二区三区 | 亚洲精品国产自在在线观看 | 日本大胆一区二区三区 | 国产精品成人一区二区三区 | 欧美视频在线一区 | 亚洲国产欧美在线人成app | 亚洲欧美人高清精品a∨ | 日本一区二区三区不卡视频中 | 白色丝袜| 日韩高清码中文字幕日韩 | 国语国产自产精品 | 高清综合国产欧美 | 男女午夜视频在线观 | 免费人成在线观看网站免费观看 | 日本亚洲精品午夜 | xyx性爽欧美观看 | 牛牛影视在线精品一区二区 | 大地资源中文第二页高清 | 国产三区免费在线观看 | 中文欧美日韩无线码 | 日韩精品三级一区二区 | 国产一区二区三区精品视频 | 国产日韩在线亚洲字幕中文 | 激情视频小说在 | 大地影视mv高清视频在线观看 | 一卡二卡三四卡国产乱码 | 中文字幕有 | 91成人影院在线观看 | 国产又粗又大又长又猛在线视频 | 二区三区国产亚洲综合 | 日本黄页免费大片在线观看 | 国产精品视频一区二区三区 | 曰本成片网 | 国产又粗又猛又爽视频上 | 欧美在线视频一区 | 欧美激情视频精品一区二区 | 亚洲视频一区二区在线观看 | 亚洲欧美日韩激情在线观 | 91大神大战丝袜美女在线观看 | 一区二区 | 夜鲁夜鲁很鲁在线视频视频 | 1717she精品永久免费视频 | 亚洲精品伊人 | 日韩午夜福利免 | 欧美va日本va亚洲ⅴa | 在线高清mv视频 | 一级a爱片免费观看高清完整 | 日本夫妻激情生活b区 | 7799精彩视频天天看网站 | 亚洲欧美综合精品成人导航 | www.一区二区三区.com | 国产精品+日韩精品+在 | 囯产极品美女 | 国产盗摄电影区9876色 | 在线中文字幕亚洲 | 欧美性受一区二区三区 | 国产大片黄在线观看 | 永久www忘忧草 | 欧美精品亚洲精品日韩专区va | 添国产97 | 美女露胸无遮 | 日本三级免费 | 亚洲理论片中文 | 日本不卡中文字幕一区二区 | 国产视频网站在线 | 视频一区二四三区四区 | 日韩成人免费 | 亚洲精品熟女 | 精品国产男人的天 | 97porm国内自拍视频 | 好吊妞在线视频免费观看综合网 | 黑人又大又粗又硬xxxxx | 最新好看的影视大全在线观看 | 手机高清热播韩剧美剧电视剧 | 大伊香蕉在线精品视频75 | 日韩欧美高清dvd碟片 | 精品免费在线视频 | 99久热只有精品视频免费看 | 国产综合在线观看自拍 | 亚洲欧美综合在线天堂 | 亚洲日本一区二区在线观看 | 在线观看国产中文日本 | 亚洲区日韩精品中文字暮 | 性午夜视频在线观看 | 日韩不卡在线视频 | 国产精彩视频在线观看91 | 免费国产黄频在线观看视频 | 国产suv精二区69 | 国产aⅴ视频免费观看国语 91大神在线视频免费观看 | 性感美女视频韩国 | 欧洲精品免费高清在线视频 | 日韩精品在线观看 | 91导航小污女导航天天夜夜爽 | 国自产拍亚洲免费视频 | 国产黄在线播放免费观看 | 午夜视频在线播放 | 香蕉影院中文字幕视频在线观看 | 欧美性活一级视频 | 午夜男女爽爽影院在线 | 亚洲人成网线在线播放va | 高清影视电视剧免费在线观看 | 欧洲不卡二卡三卡四卡免费 | 国产精品最新资源在线 | 午夜福利理论片高清在线观看 | 陌陌影视在线观看高清完整版 | 精品三级一区二区三区四区 | 国产人成视频在线免费观看 |