全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1906
推到 Plurk!
推到 Facebook!

請問有關讀取圖檔像素值的問題

答題得分者是:taishyang
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-08 20:47:38 IP:163.28.xxx.xxx 未訂閱
想請問一下 在對某張影像做完處理之後 可以順便讀出影像的像素值,並另外存成一個.txt檔嘛..?? 這樣子可行嘛...??
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-08 21:34:45 IP:140.135.xxx.xxx 未訂閱
chuckjr您好:    
引言: 讀出影像的像素值,並另外存成一個.txt檔嘛
您可以試試下面的code
 
for (int y=0;yHeight;y  )
 {
   for (int x=0;xWidth;x  )
   {
     Memo1->Text=Memo1->Text IntToStr(Image1->Canvas->Pixels[x][y]) "\r\n";
   }
 }
     Memo1->Lines->SaveToFile("123.txt");
  
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-08 22:09:02 IP:163.28.xxx.xxx 未訂閱
taishyang版主您好: 我試著執行您提供的code 可是只要一執行,程式就會當住 不知道是哪邊出了問題.. 我試過直接新增一個功能鍵或是在我其中一項功能的後面執行 請問是我的方法錯了嗎... 謝謝您的幫忙~不好意思麻煩您了
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-08 22:14:11 IP:140.135.xxx.xxx 未訂閱
chuckjr您好:   我想應該是圖檔大小太大的關係...   可以改用   
Memo1->Lines->Add(Image1->Canvas->Pixels[x][y]); 
或者在之前程式當中的迴圈中加入(RaynorPao大哥提供)
Application->ProcessMessages();
我試過兩個都可行 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-08 22:31:25 IP:163.28.xxx.xxx 未訂閱
taishyang版主您好: 其實我的目的是要利用PVM對影像作分散式處理 因為我想不到如果讀一張圖 所以才想到讀像素值,之後再作處理 Memo1->Lines->Add(Image1->Canvas->Pixels[x][y]); 這一行CODE我試了一下 會有像素值不斷的跑出來(好像是變成一個迴圈了) 不過程式還是會當住....>"< 我所用的圖是256*256的點陣圖 不知道是哪邊出錯~ 不好意思麻煩您了~
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-08 22:36:52 IP:163.28.xxx.xxx 未訂閱
taishyang版主您好: 不好意思是我沒弄清楚...~"~ 程式可以跑... 只是久了一點~~~ 有把像素值讀出來...我太急了... 我再run一下程式..有問題再請教您. 謝謝您的幫忙
taishyang
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-08 22:39:25 IP:140.135.xxx.xxx 未訂閱
chuckjr您好:   在我的電腦兩種方式都可行耶,影像大小為320*240   CPU P4 2G    RAM 512M   OS  WinXP    順心
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-08 22:50:53 IP:163.28.xxx.xxx 未訂閱
taishyang版主您好: 謝謝您的幫忙~ 我第一種方法可以執行了.. 不過請教一下值的型態是什麼意思..?? 跟我之前所知道的值的型態好像不太一樣... 另外.想請教的是 第二種方法我不是很清楚, 例如我對影像作的處理是對一張影像下灰階的指令   Byte *pScanLine;   Image->Picture->Bitmap->PixelFormat = pf24bit;   for (Cardinal y=0; yPicture->Bitmap->ScanLine[y]; for (Cardinal x=0; xRefresh(); 那指令是要下在哪邊..?? 不好意思麻煩您了~
taishyang
站務副站長


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-08 22:56:36 IP:140.135.xxx.xxx 未訂閱
chuckjr您好:      1. 用
Image1->Canvas->Pixels[x][y]
所得到的是R*G*B的值... 2. 第二種方法
 
for (int y=0;yHeight;y  )
 {
   for (int x=0;xWidth;x  )
   {
     Memo1->Text=Memo1->Text IntToStr(Image1->Canvas->Pixels[x][y]) "\r\n";
     Application->ProcessMessages();
   }
 }
     Memo1->Lines->SaveToFile("123.txt");
  
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
chuckjr
一般會員


發表:11
回覆:20
積分:6
註冊:2002-12-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-08 23:09:37 IP:163.28.xxx.xxx 未訂閱
taishyang版主您好: 非常謝謝您的指教~ 不好意思一直麻煩您囉~ 謝謝
系統時間:2024-04-26 5:39:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!