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

請問一下該怎麼做垂直投影量和水平投影量....

尚未結案
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 17:30:29 IP:61.221.xxx.xxx 未訂閱
各位前輩.....我想請問一下 現在有一張640*480的圖 圖已經二質化完了    該怎麼做垂直投影量...和水平投影量呢... 圖檔如下:    正在努力學習中的小弟......
skybow
一般會員


發表:10
回覆:10
積分:4
註冊:2004-04-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-21 12:00:02 IP:163.28.xxx.xxx 未訂閱
不太了解您的意思 是指做水平或垂直方向的edge detection嗎?
arisaka_matsuri
高階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-21 18:17:35 IP:140.113.xxx.xxx 未訂閱
dear 小慶: 依你的例子,可以寫成
// 統計水平與垂直方向的投影量
long ProjectV[640] = {0};
long ProjectH[480] = {0};
Byte *ptr;    for(int row = 0; row < 480; row  )
{
  ptr = (Byte *)Image1->Picture->Bitmap->ScanLine[row];
  for(int col = 0; col < 640; col  )
  {
    if(ptr[col] == 255) // 白點
    {
      ProjectV[col]  ; // 垂直方向投影的數量 1
      ProjectH[row]  ; // 水平方向投影的數量 1
    }
  }
}
依你實際的情況稍做調整就好了~最後ProjectV[index]中所存放的就是在index位置該column所有白點的數量(也就是垂直投影量)
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-26 10:53:50 IP:61.221.xxx.xxx 未訂閱
各位前輩...不好意思....前幾天小弟忙於其他事情 所以沒辦法回信....請前輩們見諒! 我把我想要的感覺用圖示....表示好了 我在書本看到的樣子......我把它剪下來 如下:一張二質化完的圖作垂直的投影 垂直的投影 但我的圖是 我想做垂直和水平的投影量(直方圖).............謝謝各位前輩的指導 正在努裡學習中的小弟....
arisaka_matsuri
高階會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-26 13:59:34 IP:140.113.xxx.xxx 未訂閱
dear 小慶: 結果如下~ 程式碼:
//---------------------------------------------------------------------------
#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::FormCreate(TObject *Sender)
{
  Image2->Canvas->Brush->Color = clBlack;
  Image2->Canvas->FillRect(TRect(0,0,Image2->Width,Image2->Height));
  Image3->Canvas->Brush->Color = clBlack;
  Image3->Canvas->FillRect(TRect(0,0,Image3->Width,Image3->Height));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  // 統計水平與垂直方向的投影量
  long ProjectV[640] = {0};
  long ProjectH[480] = {0};
  long Vmax = 0, Hmax = 0;
  Byte *ptr;      for(int row = 0; row < 480; row++)
  {
    ptr = (Byte *)Image1->Picture->Bitmap->ScanLine[row];
    for(int col = 0; col < 640; col++)
    {
      if(ptr[col*3] == 255) // 白點
      {
        ProjectV[col]++; // 垂直方向投影的數量+1
        ProjectH[row]++; // 水平方向投影的數量+1
        if(ProjectV[col] > Vmax) Vmax = ProjectV[col]; // 統計垂直投影最大值
        if(ProjectH[row] > Hmax) Hmax = ProjectH[row]; // 統計水平投影最大值
      }
    }
  }      // 畫出水平方向投影
  Image2->Canvas->Pen->Color = clWhite;
  for(int row = 0; row < 480; row++)
  {
    Image2->Canvas->MoveTo(Image2->Width, row);
    Image2->Canvas->LineTo(Image2->Width * (1.0 - (double)ProjectH[row] / (double)Hmax), row);
  }      // 畫出垂直方向投影
  Image3->Canvas->Pen->Color = clWhite;
  for(int col = 0; col < 640; col++)
  {
    Image3->Canvas->MoveTo(col, Image3->Height);
    Image3->Canvas->LineTo(col, Image3->Height * (1.0 - (double)ProjectV[col] / (double)Vmax));
  }
}
//---------------------------------------------------------------------------
參考看看囉~
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-26 14:30:25 IP:61.221.xxx.xxx 未訂閱
非常謝謝前輩們的指導.... 本人正式此意........ 讓我終於弄懂它... 正在努力學習中的小弟....
肉肉初心者
一般會員


發表:0
回覆:1
積分:0
註冊:2004-10-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-30 18:07:39 IP:61.221.xxx.xxx 未訂閱
請問一下 你那數字的圖是在哪本書看到的,有教畫出投影量的 跟我說一下 我翻了幾乎所以的書就是沒看到
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-30 19:35:11 IP:218.171.xxx.xxx 未訂閱
......這位.....肉肉初心者..... 我是在一家柏克萊出版社所看到的 .........所以....... 另外......哈哈...被你發現我在這邊討論問題 該怎麼說呢......遠在天邊近在眼前.... 妳應該知道我在說神麼..... 好吧....就藉著平台....讓我把話說清楚吧 其實我並沒有在意那件事....和平相處不是很好嗎.... 不知道你的想法.....(我一直以為你還在意那件事).... 你準備的怎樣.....希望順利.....
程式初心者
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-09-23 16:43:25 IP:218.165.xxx.xxx 未訂閱
首先向各位先輩 問個好 我的問題是 目前已經把影像給二元化了 但是遇到水平投影跟垂值投影切割的問題 也爬了不少文 但是 看到的都是程式碼 我想要的是數學原理 請問有先輩能po 文 或者是給與鏈結網址嘛 謝謝 感激不盡
系統時間:2024-05-04 11:38:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!