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

金喜正规买球

logo LEADTOOLS使用教程

LeadTools 使用基準(zhǔn)線


在本教程中,您將學(xué)習(xí)到如何在MedicalViewer 單元格中顯示基準(zhǔn)線。

1. 請(qǐng)您打開(kāi)Visual Studio2005或一個(gè)更高的版本。

2. 從“文件”菜單中選擇“項(xiàng)目”。

3. 然后會(huì)出現(xiàn)一個(gè)新建項(xiàng)目對(duì)話框。

4. 從“項(xiàng)目類(lèi)型”中展開(kāi)“其他語(yǔ)言”節(jié)點(diǎn),然后單擊在“Visual C#” 節(jié)點(diǎn)上。

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

6. 在“項(xiàng)目名稱(chēng)”字段里輸入該項(xiàng)目的名稱(chēng)“使用基準(zhǔn)線”,然后選擇“確定”。

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

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

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

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

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

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

            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)建一個(gè)新的方法InitClass() 。并將以下代碼添加到該方法:

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

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

14. 運(yùn)行該程序,您將會(huì)看到一個(gè)2x2布局。

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

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

請(qǐng)下載示例DICOMDIR,并將其內(nèi)容解壓縮到此文件夾:C:\Leadtools_DICOMDIR。

16. 請(qǐng)將如下代碼添加到Form1類(lèi)。該代碼可用于從DICOMDIR中加載圖像,將它們進(jìn)行排序,并從中提取所有的有用信息:

            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
            ' 您需要找到使用了科目實(shí)例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
            ' 您需要找到使用了系列實(shí)例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類(lèi)的一個(gè)新實(shí)例中。
            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所指定的系列,而這兩個(gè)UID來(lái)自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ū)?huì)對(duì)包含指定的studyInstanceUID的科目進(jìn)行搜索。 
              _studyElement = FindStudy(ds, studyInstanceUID)
              ' 在這里,該程序?qū)?huì)對(duì)包含指定的seriesInstanceUID的系列進(jìn)行搜索。
              _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID)
              ' 請(qǐng)創(chuàng)建一個(gè)MedicalViewerSeriesManager的新實(shí)例。它將被用于對(duì)圖像進(jìn)行排序,以便創(chuàng)建正確的3D對(duì)象。
              _seriesManager = New MedicalViewerSeriesManager()
              ' 請(qǐng)創(chuàng)建一個(gè)MedicalViewerImageData的陣列。該類(lèi)將被用于保存幀信息。而該信息將被用于對(duì)圖像進(jìn)行排序。
              _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ū)?duì)該系列中的每一幀進(jìn)行審查。
              imagePath = GetFirstImageName(ds, _seriesElement, directoryPath, imageElement)
              imageIndex = 0
              Do While imageIndex < count
                Try
                   ' 該系列中的每個(gè)圖像都將被加載。
                   dicomDataSet = New DicomDataSet()
                   dicomDataSet.Load(imagePath, DicomDataSetLoadFlags.None)
                   ' 該程序可以加載它的信息,并將其保存到MedicalViewerImageData類(lèi)的一個(gè)新實(shí)例中。
                   AddImageToImageArray(dicomDataSet, imageIndex, imagePath, echoNumber)
                   dicomDataSet.Dispose()
                   ' 跳轉(zhuǎn)到下一個(gè)圖像。
                   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ù)對(duì)這些圖像進(jìn)行排序。
              _seriesManager.Sort(_imageDataList)
              DicomEngine.Shutdown()
              Return _seriesManager
            End Function
            Private Sub LoadLocalizer(ByVal cell As MedicalViewerMultiCell)
              ' 啟動(dòng)允許加載各種圖像的編解碼器。
              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è)置以下三行代碼非常重要。否則,可能會(huì)發(fā)生基準(zhǔn)線結(jié)果錯(cuò)誤。
  ' 設(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)建一條基準(zhǔn)線。
              cell.FrameOfReferenceUID = _seriesManager.Localizers(0).LocalizerData.FrameOfReferenceUID
            End Sub
            Private Sub Load2DCell(ByVal cell As MedicalViewerMultiCell)
              ' 啟動(dòng)允許加載各種圖像的編解碼器。
              Dim _codecs As RasterCodecs = New RasterCodecs()
              ' 加載CT DICOMDIR,并返回排列好的圖像集合。
              output = Load_James_CT()
              ' 循環(huán)處理這些圖像,并將它們一個(gè)接一個(gè)地添加到最終的圖像。
              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è)置以下這幾行代碼非常重要。否則,可能會(huì)出現(xiàn)基準(zhǔn)線結(jié)果錯(cuò)誤。
              index = 0
              Do While index < depth
                ' 設(shè)置每幀的圖像位置。
                cell.SetImagePosition(index, _seriesManager.Stacks(0).Items(index).ImagePosition, False)
                 index += 1
              Loop
              ' 請(qǐng)對(duì)該系列的圖像方向進(jìn)行設(shè)置,且它只需被設(shè)置一次,因?yàn)樗械膸仨毦哂邢嗤姆较蛑怠?
              cell.ImageOrientation = _seriesManager.Stacks(0).Items(0).ImageOrientationArray
              ' 請(qǐng)對(duì)該系列的像素間隔進(jìn)行設(shè)置,且它只需被設(shè)置一次,因?yàn)樗械膸仨毦哂邢嗤南袼亻g隔值。
              cell.PixelSpacing = _seriesManager.Stacks(0).Items(0).PixelSpacing
              ' 請(qǐng)對(duì)該系列的幀引用UID進(jìn)行設(shè)置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創(chuàng)建一條基準(zhǔn)線。
              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;
            // 您需要找到使用了科目實(shí)例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;
            }
            // 您需要找到使用了系列實(shí)例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類(lèi)的一個(gè)新實(shí)例中。
            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所指定的系列,而這兩個(gè)UID來(lái)自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ū)?huì)對(duì)包含指定的studyInstanceUID的科目進(jìn)行搜索。
               _studyElement = FindStudy(ds, studyInstanceUID);
               // 在這里,該程序?qū)?huì)對(duì)包含指定的seriesInstanceUID的系列進(jìn)行搜索。
               _seriesElement = FindSeries(ds, _studyElement, seriesInstanceUID);
               // 請(qǐng)創(chuàng)建一個(gè)MedicalViewerSeriesManager的新實(shí)例。它將被用于對(duì)圖像進(jìn)行排序,以便創(chuàng)建正確的3D對(duì)象。
               _seriesManager = new MedicalViewerSeriesManager();
               // 請(qǐng)創(chuàng)建一個(gè)MedicalViewerImageData的陣列。該類(lèi)將被用于保存幀信息。而該信息將被用于對(duì)圖像進(jìn)行排序。
               _imageDataList = new List<MedicalViewerImageData>();
               DicomDataSet dicomDataSet;
               int imageIndex;
               string imagePath;
               int echoNumber = 0;
               // 現(xiàn)在,該程序?qū)?duì)該系列中的每一幀進(jìn)行審查。
               imagePath = GetFirstImageName(ds, _seriesElement, directoryPath, out imageElement);
               for (imageIndex = 0; imageIndex < count; imageIndex++)
               {
                  try
                  {
                     // 該系列中的每個(gè)圖像都將被加載。
                     dicomDataSet = new DicomDataSet();
                     dicomDataSet.Load(imagePath, DicomDataSetLoadFlags.None);
                     // 該程序可以加載它的信息,并將其保存到MedicalViewerImageData類(lèi)的一個(gè)新實(shí)例中。
                     AddImageToImageArray(dicomDataSet, imageIndex, imagePath, out echoNumber);
                     dicomDataSet.Dispose();
                     // 跳轉(zhuǎn)到下一個(gè)圖像。
                     imagePath = GetNextImageName(ds, directoryPath, ref imageElement);
                  }
                  catch (System.Exception exception)
                  {
                     System.Diagnostics.Debug.Assert(false, exception.Message);
                     throw;
                  }
               }
               // 根據(jù)它的數(shù)據(jù)對(duì)這些圖像進(jìn)行排序。
               _seriesManager.Sort(_imageDataList);
               DicomEngine.Shutdown();
               return _seriesManager;
            }
            void LoadLocalizer(MedicalViewerMultiCell cell)
            {
               // 啟動(dòng)允許加載各種圖像的編解碼器。
               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è)置以下三行代碼非常重要。否則,可能會(huì)發(fā)生基準(zhǔn)線結(jié)果錯(cuò)誤。
               // 設(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)建一條基準(zhǔn)線。
               cell.FrameOfReferenceUID = _seriesManager.Localizers[0].LocalizerData.FrameOfReferenceUID;
            }
            void Load2DCell(MedicalViewerMultiCell cell)
            {
               // 啟動(dòng)允許加載各種圖像的編解碼器。
               RasterCodecs _codecs = new RasterCodecs();
               // 加載CT DICOMDIR,并返回排列好的圖像集合。
               output = Load_James_CT();
               // 循環(huán)處理這些圖像,并將它們一個(gè)接一個(gè)地添加到最終的圖像。
               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è)置以下這幾行代碼非常重要。否則,可能會(huì)出現(xiàn)基準(zhǔn)線結(jié)果錯(cuò)誤。               for (index = 0; index < depth; index++)
               {
                  // 設(shè)置每幀的圖像位置。.
                  cell.SetImagePosition(index, _seriesManager.Stacks[0].Items[index].ImagePosition, false);
               }
               // 請(qǐng)對(duì)該系列的圖像方向進(jìn)行設(shè)置,且它只需被設(shè)置一次,因?yàn)樗械膸仨毦哂邢嗤姆较蛑怠?
               cell.ImageOrientation = _seriesManager.Stacks[0].Items[0].ImageOrientationArray;
               // 請(qǐng)對(duì)該系列的像素間隔進(jìn)行設(shè)置,且它只需被設(shè)置一次,因?yàn)樗械膸仨毦哂邢嗤南袼亻g隔值。.
               cell.PixelSpacing = _seriesManager.Stacks[0].Items[0].PixelSpacing;
               // 請(qǐng)對(duì)該系列的幀引用UID進(jìn)行設(shè)置。如果該系列和定位器具有相同的引用UID的話,這將在它們之間創(chuàng)建一條基準(zhǔn)線。
               cell.FrameOfReferenceUID = _seriesManager.Stacks[0].Items[0].FrameOfReferenceUID;
            }

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

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

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

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

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

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

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

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

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

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

文自:葡萄城

掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
精品一区二区三区中 | 午夜亚洲国产理论片秋霞 | 国产中文成人精品小说 | 国产日韩欧美另类精彩视频 | 国产一级a爱做片免费看 | 免费人成视频x8x8 | 亚洲精品综合精品自拍 | 免费大片aⅴ入口 | 福利第二页精品推荐在线观看 | 国产免费a∨片在线观看不卡 | 91网站免费观看 | 玖玖综合| 国产亚洲欧美一区二区三区 | 日本激情猛烈在线看免费观看 | 国产精品视频免费一 | 女人一级特纯黄 | 精品高清亚 | 国产视频在线免费观看 | 中文字幕一区二区三区日韩精品 | 97在线观看高清视频免费 | 国产网站一区二 | 国产精品三p一区二区视频 一区二区国产高清视频在线 | 日韩免费视频网址 | 美式影院 | 国语精品自产拍在线观看网站 | 涩色亚洲激情第二页 | 91永久视频在线 | 字幕一区 | 欧美.日韩.日本国产视频 | 欧美一级成在线人 | 免费观看天天看高清影视在线 | 特色大片免费看 | 国产乱子伦精品免费 | 不卡日韩中文字幕在线观看 | 亚洲欧美日韩另类精品一区二 | 国产亚洲91精品色在线 | 国产熟女高 | 人成黄页在线观看国产 | 电影在线观看免费 | 99国产精品欧美一区二区三区 | 日韩视频中文字幕视频一 | 国产美女极品免费视频 | 欧美高清在线视频在线99精品 | 成人国产精品一区二区免费 | 国产久热精品 | 无人视频在线观看免费播放影院 | 男女肉大捧一进一出视频 | 国产在线观看欧美乱码 | 欧美日韩国产在线高清视频 | 厨房一次又一次的索要 | 国产一区二区免费不卡在线播放 | 日本高清在线播放一区二区三区 | 亚洲欧美国产另类 | 国产日韩a视频在线播放视频 | 欧美亚洲综合成人专区 | 国产精品卡1卡2卡3网站 | 国产精品天天看特色大片不卡 | 亚洲欧美国产人成在线 | 国产欧美综合精品一区二区 | 99ri| 成人国产精| 欧美国产激情二区三区 | 国产白领诱惑在线观看 | 欧美视频一区免费精品 | 欧美在线综合 | 国产视频在线免费观看 | 视频一区视频二区日韩专区 | 午夜福利体验免费体验区 | 色偷偷2025免费视频观看 | 99在线精品日韩一区免费国产 | 国产精品自在自线亚洲 | 亚洲精品1区2区3区4区 | 亚洲熟女片 | 大卡三卡免费 | 成人永久免费视频网站 | 国产日韩精品影院 | 中文字幕亚洲欧美在线不卡 | 二区高清不卡 | 女女同性女同区二区 | 国产色产综合色产在线观看视频 | 国产精品亚洲а∨天堂2025 | 国产精品92视频 | 国产伦精 | 国产精品h片在 | 国产精品永久免费视频观看 | 国产性爱在线 | 三年片在线观看免费播放大全电影 | 欧美一级日 | 国产午夜福利不卡在线观看 | 国产传媒在线观看视频免费观看 | 欧美日韩在线一区 | 欧美整片sss | 国产真实伦在线播放 | 麻花豆传媒mv在线观 | 大地影院高清mv在线观看 | 国产操穴 | 国产蜜桃臀好大在线观看 | 边做边爱完整版免费视频播放 | 国产女手机 | 日产精品一区二区三区免费 | 日韩高清一区二区在线观看 | 欧美高清在线播放 | 日韩欧美国产综合在线播放 | 婷婷亚洲综合一区二区 | 欧美熟女激情视频 | 女高中生第一次破苞出血视频 | 精品国产a | 国产在线更新 | 玖玖源资源站中文字幕一区二 | 日本人成视频免费观看 | 日本亚洲综合在线 | 亚洲一卡2卡3卡4 | 精品国产福利在线观看网址 | 日本中文字幕在线观看全 | 中文字幕巨大乳在线看 | 国产欧美一区二区综合 | 免费人成网站在线观看欧美 | 国产精品精品国内自产拍视频 | 337p亚洲精品 | 又粗又大又硬又爽的免费视频 | 国色天香一卡二卡三 | 成人国产第一区在 | 国产精品爽爽ⅴa在线观看 欧美日韩国产一区二区三区欧 | 三级视频在线播放 | 欧美精品一区二区三区不卡网 | 精品国产自在91欧 | 中国凸偷窥xxxx自由视频 | 国产精品tv在线观看 | 国产在线精品9 | 亚洲第一国产综合 | 日本欧美国产婷婷 | 欧美日韩高清片在线观看 | 涩涩www在线观看免费高清 | 成人高辣h视频一区二区在线 | 亚洲人成色4444在线观看 | 国产欧美精 | 在线观看精品国产福利片87 | 国产日韩精品高清 | 精品日韩第56页 | 欧美一级高 | 影院在线播放 | 欧美三根一起进三p | 国产精品精 | 亚洲一区在线 | 中文乱码字幕在线观看播放 | 真实国产乱子伦视频 | 日本www视频男人的天堂 | 91精品免费国产高清在线 | 追心影视 | 国产在线视频欧美一区二区三区 | 在线观看精品国产 | 日本三级a∨在线 | 精品国产高清一区二区三区人 | 欧美亚洲亚洲日韩在线影院 | 日韩激情精品一区二区三区 | 一区二区三区日本在线视频免费 | 国产理论在线观 | 欧美日韩在线高清 | 国产精品偷伦视频免费手机播 | 国产在线中文字幕播放 | 免费高清资源等你来享 | 日本1区二区三区公司 | 91丝袜在线观看 | 日本强伦姧 | 欧洲女人性开放视频过性 | 国产又色又爽 | 一级生性活片在线观看视频 | 国产91网站在线观看免费 | 国产又粗又猛又爽又黄的视频七张 | 国产美女一区二区三区在线 | 国产老妇伦国产熟女老妇高清 | 欧美亚洲综合另类视频 | 国产免费不卡v片在线观看 国产99re这里只有精品9 | 欧美一级日韩在线观看 | 欧美一级夜夜爽视频 | 欧美高清性色生活片免费观 | 国产区免费视频 | 精品影院 | 一区二区三区高清视频国产女人 | 精品国产香蕉伊思人 | 国产精品色内内在线播放 | 亚洲精品欧美日韩一区二区 | 欧美亚洲国产另类在线观看 | 又粗又黄又猛又爽大片a | 国产男女高清视频m免费 | 成人国产亚欧视频在线 | 97国产婷婷综合在线视 | 国产午夜福利精品在线观看不卡 | 国产乱子伦一区二区三区 | 色一情一乱一交一二三区 | 成人全黄三级视频在线 | 欧美日韩第三页 | 欧美日本道 | 国产精品综合色 | 国产极品视频 | 亚洲人成电影在线播放 | 国产日韩欧美精品区性色 | 成人熟女日韩欧美综合 | 国色一卡2卡二卡4卡乱码 | 黑人巨茎| 欧美日韩国产精品自在自线 | 国产玖玖玖九九精品视频靠爱 | 国产亚洲精品aa在线观看 | 亚洲老妈激情一区二区三区 | 国产又粗又黄又爽的免费视频 | 三三影视 | 国产偷国产偷亚洲高清人 | 国产欧美精品一区二区三区pp | 8888四色奇米在线观看 | 国精产品一区二区三区有限公司 | 男人下身进女人阳道视频视频在 | 婷婷六月综合缴情在线小蛇 | a在线视频v视频 | 国产综合精品一区二 | 国产sm重味一区二区三区 | 国产视频这里只有精品 | 三级全黄的视频在线观看 | 日本精品一区二区三区高清 | 国产男生午夜福利免费网站 | 国产悠资源视频在线观看 | 在线观看中文字幕 | 亚洲熟伦熟女新五十路熟 | 另类激情文学一 | 国产欧美日韩综合精品二区 | 欧美日韩国产一区二区三区区 | 最新全网影视大全电影电视剧 | 韩国日本亚洲欧洲一区二区三区 | 小雪被老| 另类尿喷潮videofree | 在线美剧天堂 | 欧美精品免费 | 日韩一级一区二区不 | 蜜桃精品一区二区三区在线观看 | 第一页浮力影院草草 | 国产午夜福利在线网站 | 国产精品成aⅴ人片在线观看 | 老熟女网站 | 国产日韩对 | 国产精品高清一区二区三区人妖 | 精品国产免费人成电影在线观 | 91情国产l精品国产亚洲区 | 亚洲国产的精品太乱码一区二区 | 视频在线一区二区三区 | 欧美精品黄页在线观看2区 日韩美中文字幕一二三区 国产精品nv在线观看 | 国产精品自在线拍国产手机版 | 野花社区| 成人碰碰视频公开老师 | 国产日产韩国精品视频 | 成人大黄全免费网站 | 国产亚洲欧美日韩综合一区二区 | 卡通动漫精品一 | 中文字幕精品一区二区日本大胸 | 岛国a香蕉片不卡在线观看 99日韩a及免费视频 | 国产午夜伦伦午夜伦 | 果冻传媒视频在线 | 国产大秀视频一 | 欧洲乱码伦视频免费国产 | 精品a在线观看 | 亚洲色一色噜一噜噜噜人与 | 亚洲香蕉| 99久免费精品视频在线观看 | 国产电影手机在线观看黄 | 在线观看国 | 牛牛影视在线精品一区二区 | 精品国内外视 | 国产欧美日韩精 | 91精品啪aⅴ在线观看国产 | 制服丝袜中文字幕在线 | 亚洲欧美日本另类 | 在线日本高清不卡免费v | 欧美一区二区三区视频在线 | 一区二区日韩视频九一蜜桃 | 日韩欧美在线网址 | 在线日韩欧美视频一区二区 | 欧美人成国产91视频 | 国产精品99精品一区二区浪潮 | 午夜影院网站野外大战 | 国产午夜福利小视频喷水挤奶 | 精品国产自 | 国产视频网站在线 | 老司机导航 | 成人不卡| 精品国产又大又长又爽 | 日本欧美一区二区三区免费不卡 | 欧美专区三级在线观看 | 成人国产精品一区二区免费 | 国产欧美日韩一级 | 日韩大片高清播放器大全 | 国产精品无需播放器在线观看 | 午夜韩国理论片在线观看 | 日韩欧美国产一 | 日本国产欧美日韩三区四区 | 欧美mv亚洲mv在线天堂 | 免费高清欧美亚洲视频 | 日本高清www在线观看视频 | 国产高清日韩一区二区四季 | 日韩一区二精品服务 | 国产制服丝袜亚洲高清 | 国产一级a毛一级a毛视频 | 文中字幕一区二区 | 中文一区二区 | 亚洲的一区二区精品 | 日韩精品亚 | 日本中文一区二 | 国产精品自在线拍国产电影 | 国产香蕉国产精品偷在线 | 欧美激情国产日韩 | 国产网红主播 | 日韩一级欧美一级视频 | 日本在线一区二区三区免费视频 | 亚洲aⅴ男人的天堂在线观看 | 日本三级a∨在线 | 韩国理论福| 亚洲一区精品中文字幕 | 99re在线这| 国产一区曰韩二区欧美三区 | 欧美精品在线免费一区 | 亚洲不卡一卡2 | 字幕一区二区三区四区 | 日本理论片和搜子同居的日子电 | 忘忧草影院在线www韩国日本 | 国产精品自产拍在线观看一 | 日本免费一区二区三区 | 欧美人成网站观看www | 男插女下| 国产高清免费在线观看 | 亚洲欧美精品福利一区二区 | 国产精品一区二区精品视频导航 | 日韩精品天堂系列 | 日韩在线观看一区二区不卡视频 | 精品入口 | 韩国日本在线电影 | 91国语精品福利自产拍 | 日本一区二 | 日韩中文字幕 | 欧美自拍另类综合专区 | 国产精品免费一区二区在线观看 | 欧美日韩亚洲精品成人 | 亚洲人成欧美中文字幕 | 日本一区二区三区成人免费观 | 日本影片一区二区 | 99久热只有精品视频免费看 | 亚洲免费青草视频在线 | 免费精品视频一二区 | 欧州一级婬 | 亚洲一区日本一区 | 欧美在线精品亚洲综合网 | 精品免费播放视频 | aa级国产| 欧美一区二区三区免费观看视频 | 九九线精品视频在线观看视频 | 精品自拍偷拍日韩欧美 | 欧美一区福利 | 欧美人与日本人xx在线视频 | 日本成本人片免费网站 | 欧洲影院网 | 国际b站免费视频入 | 字幕在线 | 精品国产一区二区三区免费91 | 欧美一区自拍一区偷拍一区 | 日韩草莓视频一区二区在线 | 欧美性xxxxx极| 国产在线国偷精品免费看 | 国产未成女 | 玖玖免费视频在线观看 | 国产对白刺激真实精品91 | 激情福利社 | 亚洲电影| 日韩综合精品一区二区 | 欧美va天堂va视频va在线 | 高清影院 | 岛国精品 | 日本不卡高清免费v日本 | 羞羞色院91蜜桃在线观看 | 九九九九九热 | 日本99成人免费 | 国产精品日本一区二区在线 | 日韩精品一区二区三区四区蜜桃 | 国产iga| 亚洲xxxx在线播放 | 成人激情在线视频观看 | 色色色欧美 | 国产色爽女免费视频 | 日本在线观看免费中文字幕 | 银杏视频在线官网 | 日韩综合精品一区二区 | 97久视| 国内成人免费视 | 国产日韩一区二区三区 | 一区二区三区免费在线视频 | 国产亚洲一区二区手机在线观 | 日日爽天天 | 美女午夜视频福利 | 午夜男女爽爽羞羞影院在线观看 | 国产区日韩精品一区二区三区 | 成年美女黄 | 亚洲激情视频图片 | 欧美制服丝袜在线 | 国产精品v欧美性爱v | 女同性另类一区二区三区视频 | 国产激情免费在线观看片 | 区在线播放 | 中文字幕一区二区三区四区五区 | 国产高清免费在 | 欧美一区二区三区三级在线 | 亚洲日韩中文在线精品第一 | 小说区综合区 | 国产亚洲播放在线 | 伊伊人成亚洲综合人网香 | 欧美在线成人怡红院 | 国产精品自在线观看剧情 | 国产精品自拍视频 | 国产免费一区二区视频 | 国产欧美亚洲专区在线 | igao激情视频 | 免费无毒a网站在线观看 | 色偷偷2025免费视频观看 | 国产精品老熟女视频一区二区 | 精品美女 | 国产黑色丝袜在线观看下 | 欧美激情一区二区亚洲专区 | 日韩精品一区二区三区vr | 欧洲在线观看一区二 | 福利一区二区在线 | 欧美日韩永久免费看看视频 | 娇小teen乱子 | 日本在线一区二区 | 亚洲男人夜夜精品电影 | 日本大胆欧美人术艺术 | 日韩一级欧美动漫国产在线观看 | 欧洲+亚洲+日本+国产 | 欧美国产亚洲日韩 | 91精品欧美综合在线观看 | 国产女人喷潮视频在线观看免费 | 免费国产a国产片高清 | 88国产精品视频一区二区三区 | 欧美乱子伦一区二区三区电影 | 午夜不卡影院 | hs网站在线观看 | 国产精品国语自产拍在线观看 | 18欧美?日韩?国产?中文 | 午夜综合网 | 国产午夜福利在线观看1000集 | 国产亚洲人成在线v网站 | 日韩激情精品一区二区三区 | 日韩专区视频国产在线视频 | 91桃色下载| 国产偷v | 日韩欧美三级理论在线观看 | 伦理片午夜视频在线观看免费 | 国产蜜桃臀好大在线观看 | 日韩一区二区三区免费播放 | 成人免费黄 | 韩国午夜理伦 | 日韩欧美亚洲精品中文字幕 | 91老司机精品福利在线 | 精品乱子伦一区二区三区 | 欧美性色 | 精品国产免费一区二区三区 | 国产在线高清网址导航 | 国产精品不卡免费视频 | 三级视频网站在线观看 | 日本欧美大码a在线观看 | 国产午夜男女爽爽 | 区在线播放 | 亚洲欧洲精品一二三区 | 国产精品国语对白露脸在线播 | 国产亚洲视频中文字幕97精品 | 日韩免费一区二区三区高清 | 成人污污国产在线观看 | 日韩中文字幕六区 | 两性午夜刺激性视频2345 | 亚洲熟女综合一区二区三区 | 日本伦理电影网免费播放 | 国偷自产一区二区三区蜜臀 | 国产a∨精品一区二区蜜臀 成年在线网站免费观看无广告 | 亚洲欧美在线精品一区二区 | 欧美午夜理伦三级在 | 一个人在线视频免费观看www | 日韩一区二区三区免费体验 | 亚洲欧美日韩中文高清一 | 一区②区三区电影网 | 日韩一级在线观看 | 国产精彩视频一区二区在线观看 | 日本三级在 | 草草线禁成18年在线视频 | 日本最新伦中文字幕 | 国产在线观看入口网站 | 欧美国产成 | 日本三级免费网站 | 尤物网红麻酥酥 | 一个人看的高清www视频免费 | 国产99视频精品免费观看6 | 精油按摩2| 欧美乱妇日本无乱码特黄大片 | 欧美精品中文字幕亚洲专区 | 国产日韩精品欧美一区视频 | heyzo高清在线播放 | 日韩专区第一页 | 国产激情精品一区二区三区 | 国产高清乱 | 无吗一区二区三区 | 国产一区二区三区四区五区加勒比 | 成人欧美一区二区三区黑人 | 亚洲二三区 | 亚洲视频国产精品 | 欧美.日韩.日本中亚网站 | 免费精品国偷自产在线在线 | 亚洲国产欧美日韩 | 亚洲欧美日韩国产综合久 | 精品亚洲一区二区三区 | 尤物视频官网 | 欧美日精品一区二区在线观看 | 国产精品日本一区二区在线 | 国产视频一区二区三区四区在线 | 成品网站w灬 | 在线久色 | 国产小呦泬泬99 | 国产免费无遮 | 久+久+亚洲+少+妇+无+码 | 久热视频在线观看精品 | 欧洲精品aaaaaa在线观看 | 国产精品欧美中文 | 国产短视频精品区第一页 | 日韩美精品成人一区二区 | 欧美日韩一区二区精美视频 | 欧美特a级片网站全免费 | 国产啪精品视频网站免费 | 成人3d动漫在线观看 | 欧美激情国产精品视频一区二区 | 国产精品成人观看视频 | 天美传媒在线观看果 | 免费高清影院 | 精品国精品国产自在久国产应用 | 亚洲日韩中文在线精品第一 | 不卡一区二区三区在线 | 99ri国产一区在线观看 | 中文字幕在线观看亚洲 | 最近日本免费观看mv免费版 | 永久精品免费影院在线观看网 | 韩国三级hd中文字幕不卡偷看 | 人人香蕉 | 国产亚洲精品午夜理论片日本 | 影视最全更新最快 | 大色佬视频在线 | 91风韵犹存沙发69国产 | 亚洲免费观看视频 | 果冻传媒视频一二在线观看 | 国产高清在线a免费视频观看 | 日本强伦| 欧美日韩深夜视频在线观看 | 日本阿v视频高清在线中文 银杏影视 | 亚洲欧美日韩国产综合在线看片 | 激情欧美经典日韩 | 国产日本欧美亚洲日韩 | 亚洲理伦片精 | 九一影视| 日本免费在线观看视频 | 香蕉一区二区三区中文字幕 | 男女午夜视频在线观 | 欧美精品免费一区二区三区在线 | 粗大的内捧猛烈进出在线视频 | 成人免费网站污污在线观看 | 国产无限子好频自在线拍 | 成人国产一区二区三区精品一 | 国产二代与美女酒店在线播放 | 综合精品欧美日韩国产在线 | 精品二区三区特黄 | 成人国产精品一区二区网站 | 欧美人体一区二区视频 | 好吊妞在线新免费视频 | 国产偷亚洲偷 | 日韩午夜剧场免费网站观看 | 国产欧美精品 | 美女撒尿一区二 | 性猛交ⅹxxx富婆视频 | 蜜桃臀v福日本福利一区 | 老司机在线精品视频播放 | 区水蜜桃在线观看 | 成全视频观看免费高清第6季 | 日韩视频在线播放一区二区三区 | 国产又粗又大又黄的视频 | 国产不卡一区二区电影网 | 国产中文字幕视频在线播放 | 日韩乱码在线观看免费视频网站 | 一区二区三区视频免费 | 国产午夜福利小视频合集 | 日本免费一区二区在线观看 | 国产精品亚洲综合—区在线观看 | 欧美日韩视频在线观看第一区 | 国产热门视频在线观看日韩 | a级国产精品理论片在线观看 | 欧美aaaaaa级午夜福利视 | 欧洲自拍拍偷综合 | 字幕mv免费高清 | 午夜拍拍拍 | 韩国三级高清手机在线版 | 欧美日韩在线视频制服 | 精品国产亚洲一区二区三区 | 网站91| 日韩精品福利资源网站在线 | 嫖妓国产在线观看 | 欧美日韩午夜视频在线观看 | 亚洲一区二区三区和欧美四区 | 国产激情在线不卡 | 国产精品一区二区中文字 | 日韩专区精品中文字幕 | gogogo高清在线观看免费 | 日韩欧美精品成人免费高清 | 国产一级免费在线观看 | 国产一二三在线观看 | 国产免费福利影院 | 欧美一级精品视频一区 | 亚洲国产2025精品无 | 中美日韩亚洲中文专区小说 | 99这里有精品视频视频 | 中文一区二区三 | 亚洲成亚洲成网 | 今日吃瓜 | 日韩一二三区 | 九九热国| 国产一区二区三区高清在线观看 | 精品女同同性视频在线网 | 日本中文字幕在线播放第1页 | 精品熟女视频一区二区三区 | 91免费视 | 污污污视频在线免费观看 | 免费国精产品自偷自偷免费看 | 亚洲小说欧美 | 国产男女免费完整视频 | 最近中文字幕完整视频高清 | 国产精品伦一区二区三级视频 | 一二三四在线观看免费视频 | 菠萝菠萝蜜视频在线观看时 | 不卡能搜索的 | 91中文字日产乱幕 | 区国产二区| 玖草在线中文字幕 | 国产精品一区二区亚 | 国产一区二区三区猎奇视频 | 99久视频只有精品2025 | 国产未满岁18在线 | 18勿禁免费网站大全 | 国产超薄肉丝袜在线 | 免费永久在线观看污污的网站 | 日本三级带黄在线观看 | 中字幕视 | 国产精品推荐制服丝袜页 | 国产日韩一区二区免费在线观看 | 国产熟女露脸对白硬了精品 | 欧美性受xxxx狂喷水 | 动漫成人精品一区二区 | 日本哺乳期xxxx | 青草青草久热精品视频在线播放 | 国产福利在线观看精品 | 综合另类小说欧美另类图片 | 成人性欧美 | 国拍在线精品 | 综合亚洲桃色第一影院 | 精品视频| 97亚洲自拍另类欧美综合 | 欧洲一卡2卡三卡四卡高清 国产舌乚八伦偷 | 日韩综合视频威尼斯在线 | 在线观看国产亚洲视频免费 | 日韩欧美一区二区3d视频 | 国产一区二区在线不卡 | 日韩一区二区免费视频 | 色偷偷亚洲女人天堂观看欧 | 日本一区二区三区四区在线 | 天天综合网日韩欧美影视导航 | 日本免码va在线看免费最新 | 一区二区区别是什么 | 精品在线一区二区三区 | 国产亚洲欧美日韩精品不卡 | 国产精品成人一区视频网站 | a级国产精品理论片在线观看 | 欧美精品免费专区在线观看 | 国内视频在线观看直播 | 日本三级中文电影 | 图片区乱小说区电影区 | 专区中文字幕视频专区 | 欧美亚洲日本国产黑白插 | 久热综合在| 欧美精品视频免费看 | 美女自卫慰出水免费视频 | 综合乱伦自拍影视 | 亚洲高清在线观 | 日日摸夜夜 | 中国一级大黄 | 日韩激情精品一区二区三区 | 午夜视频在线免费 | 国产自产精 | 日韩视频在线观看二区 | 日韩另类 | 精品免费观在线国产 | 日本三级香港三级人妇99 | 国产精品成人免费福 | 国产a级特 | 国产精品福利小 | 欧美日韩亚洲精品成人 | 一区二区精品视频日本 | 国产精品亚洲精品一区二区三区 | 国产精品视频二区在 | 欧美精品69 | 亚洲午夜成人精品电影在线观看 | 99精品95国产在线 | 成人国内| 精品国产乱伦一区 | 欧洲亚洲精品免费 | 浪货叫的再浪一点张开 | 欧美性爱视频手机在线免费播放 | 最近中文字幕免费高清mv视频6 | 亚洲国产精品第一区二区 | 亚洲性色精品一区二区在线 | 日本三级做a全过程在线观看 | 国产群p视频在线观看 | 日韩欧美乱国产日 | 精品国产免费人成在线观看 | 成人午夜试看120 | 国产精品视频网国产 | 国产拍偷亚 | 国产欧美日韩精品福利98 | 欧美又粗又大一区二区 | 国际b站免费视频入 | 国产草莓视频无a在线观看 国产传媒果冻天美传媒 | 国产欧美日产中文一区 | 午夜福利在线播放欧美 | 中文字字幕 | 成人精品妖精视频在 | 欧美精品亚洲精品日韩传电影 | 韩国理伦片一区二区三区在线播 | 免费观看亚洲国内精品自在自线 | 日本亚洲国产一区二区三区 | 国产精华液和欧美的精华液 | 国产亚洲精品无 | 一区二区三区日本精品 | 又黄又免费的视 | 99热国产这里只有精品6 | 久爱精品亚洲电影午夜 | 日本一本二本三区免费免费高清 | 92在线精品 | 女人夜夜春 | 国产亚洲午夜影视在线观看 | 白拍国产永久免费视频 | 日本三级中文字版电影 | 亚洲日产乱码一二三区别 | 亚洲第一区日韩欧美精品 | 国产亚洲精品一区二区在线 | 91po国产在线精品免费观看 | 日韩视频在线免费观看 | 国产日韩欧美制服一区二区 | 欧美一区二区视频在线 | 国产日韩精品欧美激情在线 | 日本在线观看 | 91日本在线精品高清观看 | 国产精品专区第一页在线观 | 福利100合集在线播放 | 日本护士视频欧美无砖专区 | 天天射天天爱天天射干 | 日韩激情中文字幕一区二区 | 欧美日韩另类在线 | 亚洲国产剧情一 | 果冻传媒一区二区天美传媒 | 91视频这里只有精品 | 国产999热这里只有精品 | 国产区精品自拍 | 欧美日韩精品伊人影院在线 | 国产91成人超清在线 | 成人精品亚洲欧美日韩 | 国产强伦姧在线观看 | 亚洲欧美中文字幕国产 | 国产一区二区三区精品视 | 偷窥xxxx | 亚洲国产欧美精品一区二区三区 | 日本免费 | 宅男色影视亚洲人在线 | 国内精品视频一区二区在线观看 | 国产喷水在线观看 | 韩国三级高清手机在线版 | 亚洲国产日韩a在线观看 | 国产欧美日韩综合二区三区 | 浮生影院大全免费 | 丝袜美腿一区二区三区 | 91精品国自产拍老熟女露脸 | 好硬好大| 亚洲人亚洲精品 | 桃色一区二区三区 | 成年轻人视频免费视频 | 欧美精品一区在线观看 | 国产美女视频免费观看的网站 | 国产卡二卡三卡四卡 | 亚洲日本中文字幕一区二区三 | 国产午夜高清高清在线观看 | 97色伦欧美日韩视频 | 99精品国产99久 | 羞羞视频免费网 | 91乱伦 | 成人午夜天 | 又大又粗又硬又爽 |