線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1587
推到 Plurk!
推到 Facebook!

如何利用.txt檔案中(x,y)數值,讀取相對位置灰階256色圖的值

答題得分者是:RaynorPao
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-02 17:08:02 IP:211.74.xxx.xxx 未訂閱
各位先進好    小弟用以下的程式寫入了座標到檔案 1.txt中    Tr_Data=fopen("Data.txt","a+"); fprintf(Tr_Data,"%d %d ", Tr_X, Tr_Y); PS. 如果變成fprintf(Tr_Data,"%d %d\", Tr_X, Tr_Y);會不會讀取比較便利呢? 內容格式如下(依照XY排放) 123 234 90 73......... 〇X〇Y〇X〇Y 想請教各位: 一、如何讀出一對XY值,並於相對座標值讀取該點之灰階值 影像格式為Grayscale256色的圖 二、如何得知.txt中有多少對XY座標(即用來判定該讀寫幾次) 三、因為座標點不連續,這樣子是不是不可以用ScanLine? 新手上路,請多指教 如果此文章違反版規 還請版主告知並刪除 Just do it
------
JUST DO IT
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-02 18:11:02 IP:61.221.xxx.xxx 未訂閱
引言: 各位先進好 小弟用以下的程式寫入了座標到檔案 1.txt中 Tr_Data=fopen("Data.txt","a "); fprintf(Tr_Data,"%d %d ", Tr_X, Tr_Y); PS. 如果變成fprintf(Tr_Data,"%d %d\", Tr_X, Tr_Y);會不會讀取比較便利呢? 內容格式如下(依照XY排放) 123 234 90 73......... 〇X〇Y〇X〇Y 想請教各位: 一、如何讀出一對XY值,並於相對座標值讀取該點之灰階值 影像格式為Grayscale256色的圖 二、如何得知.txt中有多少對XY座標(即用來判定該讀寫幾次) 三、因為座標點不連續,這樣子是不是不可以用ScanLine? 新手上路,請多指教 如果此文章違反版規 還請版主告知並刪除 Just do it
clarkkent 你好:
(1)可以用 TStringList class 及 StringReplace function 達成目的
   假設你的 1.txt 檔案內容如下:
   1 2 3 4 5 6 7 8 9 10
   配合以下範例程式碼即可讀出:
   TStringList *sl1=new TStringList;
   TStringList *sl3=new TStringList;
   sl1->LoadFromFile("1.txt");
   for(int i=0; iCount; i  )
   {
      TStringList *sl2=new TStringList;
      AnsiString sz=sl1->Strings[i];
      sz=StringReplace(sz, " ", ",", TReplaceFlags()<CommaText=sz;          for(int j=0; jCount; j  )
      {
         sl3->Add(sl2->Strings[j]);
      }
      delete sl2;
   }       // 此段程式碼用來做驗證
   Memo1->Clear();
   for(int k=0; kCount; k  )
   {
      Memo1->Lines->Add(sl3->Strings[k]);
   }
   delete sl3;
   delete sl1;
   // 以上已經能夠讀出 X,Y 值了,你再用 Pixels[X][Y] 自己取灰階值吧
(2)如何得知有多少對 X,Y 座標呢?? 其實答案就在上面的程式碼中
   sl3->Count/2;
(3)以你的例子而言,如果要取的點數只佔原圖很少的比例的話,用 Pixels 應
   該就可以了
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-02 19:00:51 IP:211.74.xxx.xxx 未訂閱
謝謝您的回應    再次請教您 sz=StringReplace(sz, " ", ",", TReplaceFlags()<
------
JUST DO IT
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-02 19:12:17 IP:61.221.xxx.xxx 未訂閱
引言: 謝謝您的回應 再次請教您 sz=StringReplace(sz, " ", ",", TReplaceFlags()<
clarkkent 你好:
(1)TReplaceFlags 是使用 StringReplace function 的時候,要設定的參數,
   如果設定為 rfReplaceAll 的話,會把所有 "空格" 用 "逗號" 取代,如果
   沒有設定的話,預設值只會把找到的第一個 "空格" 用 "逗號" 取代,在
   BCB Help 裡面都有說明,建議你自己查詢看看
(2)CommaText 是 TStringList class 特有的功能,他可以 "逗號" 做分隔,
   把字串切割,有幾個 "逗號" 就會被切割成多少個字串,這個在 BCB Help
   裡面也有說明,同樣建議你自己查詢看看
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-03 16:32:21 IP:61.59.xxx.xxx 未訂閱
各位大大好    在取灰階值上 int gray_value; gray_value = Image1-> Canvas->Pixels[10][10]; Memo1->Lines->Add(gray_value&0x000000ff); 結果出來的數值是15461355 Image1是一張256色的灰階圖 可否告訴小弟錯誤在哪 自問自答,加了紅色部分就可以了 謝謝您的幫忙 如果此文章違反版規 還請版主告知並刪除 Just do it 發表人 - clarkkent 於 2003/04/03 16:50:43
------
JUST DO IT
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-04 19:11:30 IP:140.135.xxx.xxx 未訂閱
clarkkent您好:  
引言: 在取灰階值上 int gray_value; gray_value = Image1-> Canvas->Pixels[10][10]; Memo1->Lines->Add(gray_value&0x000000ff);
感謝您的補充,我補充另外一種方式 您可以將>>>> >
系統時間:2024-11-25 11:25:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!