推 KSJ:感謝V大 受教了<(_ _)> 真是好人一個!!!(回擊) 06/15 23:37
扯了這麼多, 試著改一個比較完整的好了=.="
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int x,y,nB=0,nW=0;
/* 多宣告幾個變數用來算質心吧 */
for(y=1;y<=Image1->Picture->Height;y++)
{
for(x=1;x<=Image1->Picture->Width;x++)
{
TCColor c=Image1->Canvas->Pixels[x][y];
if((int)c.Green < 128)
{
Image1->Canvas->Pixels[x][y]=TCColor(0, 0, 0).Color;
nB++; // 這一行跟下一行是學姊教我的
LabeledEdit_Black->Text = IntToStr(nB);
/* 加入黑色pixel的座標累加程式碼 */
}
else
{
Image1->Canvas->Pixels[x][y]=TCColor(255, 255, 255).Color;
nW++; // 這一行跟下一行是我照學姊練的
/* 你必須自己在Form上拖一個LabeledEdit並改取變數名
為LabeledEdit_White才能用, 不然compile都不會過 */
LabeledEdit_White->Text = IntToStr(nW);
/* 加上白色pixel的座標累加程式碼 */
}
}
}
/* 在上你已經累加出來黑色與白色pixel各別的總數,
也成功的加入了座標累加的程式碼的話,
現在這裡各別除一除就可以算出各別質心的所在位置了;
只是要注意除以0的case, 另外自己放元件來顯示質心的結果. */
}
==
最後, 因為只是片段, 所以我也不敢確定有沒有錯漏的東西....
還有因為小弟想閃了所以直接貼答案, 未必對您是一種阻礙....
就算程式work了, 邏輯上您還是需要了解學姐或我們給您的程式在做什麼....
也可能需要了解一下BCB6給您的這些元件, TImage, Picture, 其他您用到的....
包含裡面的element/member像Pixels[][], Canvas, TCColor等等....
那就更不用提基本C/C++程式設計了, 因為顯示您的研究所之路離不開這些XD
以上, 像K大一樣祝您程式撰寫順利, 以及找指導教授順利:)
※ 編輯: VictorTom 來自: 58.41.17.189 (06/16 00:14)
※ 編輯: VictorTom 來自: 58.41.17.189 (06/16 00:19)
→ VictorTom:慘了, 中文越來越差了, 個別都寫成了各別(羞奔Q_Q~) 06/16 00:20
推 KSJ:V大是壞人...(筆記ing) 揪甘心推一個~Q_Q 06/16 00:56
推 syntex:話說,我一直以為要求的質心是每個封閉區塊的質心。想說現 06/16 10:24
→ syntex:在的課程這麼進步了 Orz 06/16 10:24
→ VictorTom:因為小弟我懶得解釋怎麼找連續的pixels區塊呀XD 06/16 10:44
推 luandrew:V大.我做成功了.謝謝你的指導與教導..T__T 06/16 23:26
→ VictorTom:科科~~恭喜你啦; 不過, 後面還更長的一段路呢, 加油囉:) 06/16 23:42
→ VictorTom:有時間/精力的話, 下一步還可以想想怎樣找出黑/白相鄰的 06/16 23:43
→ VictorTom:一整區pixels, 也就是找connected components, 像上面s 06/16 23:44
→ VictorTom:大說的, 看有沒有辦法找出所有封閉區塊; 至於每個封閉區 06/16 23:44
→ VictorTom:塊的質心就還好了, 會分區了, 想必個別小質心也ok的^^ 06/16 23:45