台灣最大程式設計社群網站
線上人數
971
 
會員總數:246713
討論主題:190131
歡迎您免費加入會員
討論區列表 >> C# >> 座標值排序
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
座標值排序
價值 : 50 QP  點閱數:1333 回應數:2
樓主

ChienWei Kao
門外漢
0 9
106 9
發送站內信

各位好,小弟目前在做影像的運算 主要會讀出在影像中的X,Y值
但是發現到一個問題,
我把X值排列順序後,會發現如果有相同的X值它的Y就自動由大到小接替
但是我需要有小到大

(1,2)
(1,3)
(1,4)
它會排成
(1,4)
(1,3)
(1,2)

我需要從小到大
提供我的code
CircleF[] circles = twoimage.HoughCircles(new Gray(60), new Gray(40), 2, twoimage.Height / 10, 35, 50)[0];
for (int i = 0; i < circles.Length; i++)
{

var circlex = circles.OrderBy(c => c.Center.X).ToArray();//將X值排列
// var circley = circles.OrderBy(c => c.Center.Y).ToArray();
if (i == 0)
{
Image<Bgr, byte> circleImage = new Image<Bgr, byte>(imageBox1.Image.Bitmap);
foreach (CircleF circle in circlex)
{
CvInvoke.cvCircle(circleImage, new Point((int)circle.Center.X, (int)circle.Center.Y), 3, new MCvScalar(149, 50, 26), -1, LINE_TYPE.CV_AA, 0);
//畫圓心點

circleImage.Draw(circle, new Bgr(Color.Red), 2);


if (textBox1.Text != "") textBox1.AppendText(Environment.NewLine);
textBox1.AppendText("position=X" + circle.Center.X.ToString().PadLeft(4) + ",Y" + circle.Center.Y.ToString().PadLeft(4) + ",Raduis=" + circle.Radius.ToString("###,000").PadLeft(7));
textBox1.ScrollToCaret();

//顯示座標值在textbox上

string trans;
trans = circle.Center.X.ToString() + "," + circle.Center.Y.ToString();
listBox2.Items.Add(trans).ToString();

//顯示在listbox上




搜尋相關Tags的文章: [ 排序 C# ] ,
本篇文章發表於2017-06-08 19:03
1樓
最有價值解答

春天
檢舉此回應
這樣試試行不行

本篇文章回覆於2017-06-09 11:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

ChienWei Kao
檢舉此回應
謝謝您,每次都有您的幫忙,太感謝了
本篇文章回覆於2017-06-09 17:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.