none
List裡面的資料該如何列印出來? RRS feed

  • 問題

  • 各位先進 大家好

    我這邊有一個Accord.Net 得範例程式  我想把其中的 points 這個值列印出來

    嘗試使用 這個寫法

     for (int i = 0; i < points.Count; i++)
                    {
                        console.WriteLine(points[i]);
                    }

    在主控應用那邊 卻只跳出 N行的
    Accord.Imaging.SpeededUpRobustFeaturePoint

    Accord.Imaging.SpeededUpRobustFeaturePoint

    Accord.Imaging.SpeededUpRobustFeaturePoint

    以下附上 源代碼  

    namespace Surf
    {
        public partial class MainForm : Form
        {
            public MainForm()
            {
                InitializeComponent();
            }
    
    
            private void button1_Click(object sender, EventArgs e)
            {
                // Open a image
                Bitmap lenna = Surf.Properties.Resources.lena512;
    
                float threshold = (float)numThreshold.Value;
                int octaves = (int)numOctaves.Value;
                int initial = (int)numInitial.Value;
    
                // Create a new SURF Features Detector using the given parameters
                SpeededUpRobustFeaturesDetector surf =
                    new SpeededUpRobustFeaturesDetector(threshold, octaves, initial);
    
                List<SpeededUpRobustFeaturePoint> points = surf.ProcessImage(lenna);
    
                // Create a new AForge's Corner Marker Filter
                FeaturesMarker features = new FeaturesMarker(points);
    
                // Apply the filter and display it on a picturebox
                pictureBox1.Image = features.Apply(lenna);
            }
        }
    }

    小弟覺得 其中 points 應該就是 特徵點的xy 座標吧

    希望可以列印出來檢視QAQ

    試了了兩三種寫法 都只會跳出

    Accord.Imaging.SpeededUpRobustFeaturePoint

    讓我很困惑QQ

    2013年6月26日 下午 01:22

解答

  • 類似:

    foreach(var point in points)
    {
        Console.WriteLine(String.Format("X:{0};Y:{1}",point.X,point.Y)); 
    }


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已提議為解答 KKBruceMVP 2013年6月26日 下午 11:24
    • 已標示為解答 finaltemplar 2013年6月27日 上午 05:12
    2013年6月26日 下午 06:03

所有回覆

  • 查查看SpeededUpRobustFeaturePoint有什麼屬性或方法

    然後類似:

    foreach(var point in points)

    {

      Console.Write(point.xxx);

    }


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年6月26日 下午 02:29
  • 你好 謝謝你的回覆

    我在Accord.Net查到 他的方法和屬性  但是我不知道指令該怎麼下@@

    Methods
    --------------------------------------------------------------------------------

    Name    Description 
    Equals Determines whether the specified OnlineObject is equal to the current OnlineObject.

    Finalize Allows an OnlineObject to attempt to free resources and perform other cleanup operations before the OnlineObject is reclaimed by garbage collection.
     
    GetHashCode Serves as a hash function for a particular type. 

    GetType Gets the OnlineType of the current instance.

    MemberwiseClone Creates a shallow copy of the current OnlineObject.

    ToString Returns a OnlineString that represents the current OnlineObject.


    Properties
    --------------------------------------------------------------------------------

     Name        Description 
     Descriptor Gets or sets the descriptor vector associated with this point.  
     Laplacian Gets or sets the sign of laplacian for this point (which may be useful for fast matching purposes).  
     Orientation Gets or sets the orientation of this point measured anti-clockwise from +ve x-axis.  
     Response Gets or sets the response of the detected feature (strength).  
     Scale Gets or sets the scale of the point.  
     X Gets or sets the x-coordinate of this point.  
     Y Gets or sets the y-coordinate of this point.  

    我想 X,Y可能是我想要的値 應該會是個很大的矩陣

    所以 我想請問 要怎麼下指令 印出 X,Y 的矩陣呢@@?

    感謝

    2013年6月26日 下午 03:05
  • 類似:

    foreach(var point in points)
    {
        Console.WriteLine(String.Format("X:{0};Y:{1}",point.X,point.Y)); 
    }


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    • 已提議為解答 KKBruceMVP 2013年6月26日 下午 11:24
    • 已標示為解答 finaltemplar 2013年6月27日 上午 05:12
    2013年6月26日 下午 06:03
  • 謝謝 Alex_Lee 大大

    問題確實解決!

    感激不盡

    原來WriteLine裡面 還需使用 String.Format() 才有結果

    來去查看看!

    感恩!

    2013年6月27日 上午 05:15
  • 不是這樣的

    1. Console.Write(Object)Console.WriteLine(Object) 會呼叫物件的ToString方法 , 在預設情況下就是物件的型別名稱

    2. String.Format 是格式化輸出文字

    你原本程式的 points[i] 是一個 Accord.Imaging.SpeededUpRobustFeaturePoint 物件

    所以Console.WriteLine(points[i]);  當然只會看到一堆的 Accord.Imaging.SpeededUpRobustFeaturePoint

    我後來的程式 只是把 Accord.Imaging.SpeededUpRobustFeaturePoint.X (X坐標值) 及 Accord.Imaging.SpeededUpRobustFeaturePoint.Y (Y坐標值) 透過 String.Format 產生對應的字串
    然後輸出到Console而已


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年6月27日 上午 08:10
  • 喔喔 

    小弟我後來測試

    foreach(var point in points)
    {
        Console.WriteLine("X:{0};Y:{1}",point.X,point.Y); 
    }

    也同樣可以列印出來@@

    所以String.Format 只是特別把輸出格式標明出來而已

    了解了

    感謝!

    2013年6月27日 下午 12:07