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

請問直方圖要怎樣處理

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


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-21 08:17:15 IP:218.169.xxx.xxx 未訂閱
各位前輩你們好,小弟有一個問題:『"如果要在一個Edit1~4中輸入個2個座標值(X1,Y1)(X2,Y2)畫出任一個方形(長方形),在這方形中對圖(Image1)做直方圖"』請問前輩這要怎樣去做處理,請指教...還是有什麼範例可以更快的進入狀況..謝謝各位前輩教導~~~
keikojason
初階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-22 10:25:18 IP:218.169.xxx.xxx 未訂閱
Sorry!忘了在問在做如果處理直方圖有什麼要注意ㄉ嗎...謝謝..
keikojason
初階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-26 17:14:08 IP:163.28.xxx.xxx 未訂閱
請問各位前輩直方圖要怎樣處理,可以在一個二值化的圖像在某兩個座標區間做直方圖..可以給小第一些指教...謝謝
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-27 10:08:06 IP:140.113.xxx.xxx 未訂閱
dear keikojason: 建議你將這類文章發問在 影音多媒體程式設計討論區~    執行畫面 程式碼
//---------------------------------------------------------------------------
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  // 取得統計直方圖的範圍
  TRect ARect = TRect(Edit1->Text.ToInt(),
                      Edit2->Text.ToInt(),
                      Edit3->Text.ToInt(),
                      Edit4->Text.ToInt());      // 以ARect為範圍統計直方圖
  Byte *ptr;
  long GrayCount[256] = {0}, MaxGrayCount = 0;
  for(int row = ARect.top; row < ARect.Bottom; row++)
  {
    ptr = (Byte *)Image1->Picture->Bitmap->ScanLine[row];
    for(int col = ARect.left; col < ARect.right; col++)
    {
      // 以8bit灰階圖為例
      GrayCount[ptr[col]]++;
      if(GrayCount[ptr[col]] > MaxGrayCount) MaxGrayCount = GrayCount[ptr[col]];
    }
  }      // 初始直方圖畫面
  Image2->Canvas->Brush->Color = clWhite;
  Image2->Canvas->FillRect(TRect(0, 0, Image1->Width, Image1->Height));      // 畫出直方圖
  for(int index = 0; index < 256; index++)
  {
    Image2->Canvas->MoveTo(index, Image2->Height);
    Image2->Canvas->LineTo(index, Image2->Height * (1.0 - (double)GrayCount[index] / (double)MaxGrayCount));
  }      // 標出ARect統計直方圖的範圍
  Image1->Canvas->Brush->Color = clWhite;
  Image1->Canvas->FrameRect(ARect);
}
//---------------------------------------------------------------------------
提供參考~
keikojason
初階會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-28 10:51:17 IP:163.28.xxx.xxx 未訂閱
謝謝arisaka_matsuri你的幫忙也讓我多學一點,你的建議我知道囉!!發問在 影音多媒體程式設計討論區..謝謝你的大公無私教學..
系統時間:2024-06-28 2:20:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!