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

如何處理二值圖中點 (一點變成四點)

答題得分者是:taishyang
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-29 19:32:26 IP:211.21.xxx.xxx 未訂閱
各位前輩好:     小弟有一個小問題,就是要如何將一張二值化的圖(Image1)中的每一點(X,Y)白色點,都變成圖(Image2)四點與(X,Y)點一樣是白色點,(Image1)一點==>(Image2)四點,則原圖(Image1)會是新圖的1/4大小,形成放大的二值圖~~在下面的程式部分是小弟用的方式~~不過不懂要怎樣去顯示另外放大過後二值圖~~
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Byte *ptr
 Bmp->Assign(Image1->Picture->Bitmap);
 for(j=0;jHeight;j  )
 {
  ptr = (Byte *)Bmp->ScanLine[j];
  for(i=0;iWidth;i  )
  {
   b=ptr[i*3];
   g=ptr[i*3 1];
   r=ptr[i*3 2];       if(r==255 && g==255 && b==255 )
   {
      Bmp->Canvas->Pixels[j][i] == clWhite;
      Bmp->Canvas->Pixels[j 1][i] == clWhite;
      Bmp->Canvas->Pixels[j][i 1] == clWhite;
      Bmp->Canvas->Pixels[j 1][i 1] == clWhite;
   }
  else
   {
      Bmp->Canvas->Pixels[j][i] == clBlack;
      Bmp->Canvas->Pixels[j 1][i] == clBlack;
      Bmp->Canvas->Pixels[j][i 1] == clBlack;
      Bmp->Canvas->Pixels[j 1][i 1] == clBlack;
    }
  }
 }
 Image2->Picture->Assign(Bmp1);
 Image2->Show();
delete Bmp;
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-29 23:37:23 IP:218.168.xxx.xxx 未訂閱
不知是不是您的筆誤  
 Image2->Picture->Assign(Bmp1);
改成
Image2->Picture->Assign(Bmp);
順心
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-30 10:01:30 IP:218.169.xxx.xxx 未訂閱
引言: 不知是不是您的筆誤
 Image2->Picture->Assign(Bmp1);
改成
Image2->Picture->Assign(Bmp);
順心 < face="Verdana, Arial, Helvetica"> taishyang前輩你好: 那是筆誤因為呈現圖像都與原圖一樣大小,沒有變成(一點變成四點),小弟不懂要怎樣去顯示圖樣,請大大指教,前輩謝謝~~
taishyang
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-30 10:41:32 IP:210.68.xxx.xxx 未訂閱
筆誤似乎不只一個 < class="code"> if(r==255 && g==255 && b==255 ) { Bmp->Canvas->Pixels[j][i] = clWhite; Bmp->Canvas->Pixels[j 1][i] = clWhite; Bmp->Canvas->Pixels[j][i 1] = clWhite; Bmp->Canvas->Pixels[j 1][i 1] = clWhite; } else { Bmp->Canvas->Pixels[j][i] = clBlack; Bmp->Canvas->Pixels[j 1][i] = clBlack; Bmp->Canvas->Pixels[j][i 1] = clBlack; Bmp->Canvas->Pixels[j 1][i 1] = clBlack; } 順心
keikojason
初階會員


發表:37
回覆:63
積分:45
註冊:2004-05-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-30 10:48:46 IP:218.169.xxx.xxx 未訂閱
^.^筆誤~~好像都修改好囉!!圖有變化~~不過好像有部分有處理過,呈現圖像SIZE與原圖一樣大小請大大指教,前輩謝謝~~ 發表人 - keikojason 於 2005/06/30 11:03:50
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-30 11:02:25 IP:210.68.xxx.xxx 未訂閱
引言:圖有變化~~呈現圖像SIZE與原圖一樣大小
這是因為您的程式本來就是讓他呈現與原圖一樣的大小 您可以利用搜尋功能找尋[內插][放大]等關鍵字
系統時間:2024-05-05 21:50:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!