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

水平投影的問題

缺席
vincentpai10
一般會員


發表:5
回覆:0
積分:1
註冊:2011-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-11-10 13:02:29 IP:140.126.xxx.xxx 訂閱
如題
以下code也是從網上抓來的
我想將圖形直接轉成二值化值方圖


void __fastcall TForm1::Buttforbidden(TObject *Sender)
{
// ??水平与垂直方向的投影量


long ProjectV[2000] = {0};
long ProjectH[2000] = {0};
long Vmax = 0, Hmax = 0;
Byte *ptr;
for(int row = 0; row < 1279; row )
{
ptr = (Byte *)Image1->Picture->Bitmap->ScanLine[row];
for(int col = 0; col < 1023; col )
{
if(ptr[col*3] > 125) // 白?
{
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 < 1279; 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 < 1023; col )
{
Image3->Canvas->MoveTo(col, Image3->Height);
Image3->Canvas->LineTo(col, Image3->Height * (1.0 - (double)ProjectV[col] / (double)Vmax));
}

}






為何出現以下問題:
編輯記錄
vincentpai10 重新編輯於 2011-11-09 22:04:15, 註解 無‧
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-14 16:57:42 IP:61.66.xxx.xxx 訂閱
 可以先設定中斷點看看錯在哪一條
在google下或PO上來研究研究
------
======================
昏睡~
不昏睡~
不由昏睡~
yulong375
一般會員


發表:2
回覆:22
積分:19
註冊:2007-03-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-12-28 16:57:25 IP:59.125.xxx.xxx 訂閱
應該是你的Image 2 跟 Image 3 沒有圖資
所以他才會出現這樣的錯誤
可以用小畫家先畫出跟Image 2 與Image 3 一樣大小的圖
然後Load進去你的程式,執行時應該就不會有錯了
------
我還是很新的新手,如果回答的太笨拙還請各位多多包含!!
系統時間:2024-11-21 23:47:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!