二直化後的圖片,怎麼算中/重心。 |
答題得分者是:taishyang
|
阿鬼就是我
一般會員 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
前輩好,
我有一個想法,我把一張圖二直化之後,我想要算出他的中心 圖是一張不規則的多邊形,我想應該是 先算出他的左方、上方,求出他的左上角, 在算出他的右方、下方,求出他的右下角, 兩條對角線交叉,這個應該就是他的中心/重心, 這樣的想法用使用在我測試圖片能不能適用? 有這樣的想法,不過沒能力寫出code。 附檔是,原圖以及二直化後的圖 我在其他文章有看到 "水平與垂直投影法" 裡面有用到一個" Series1 " ,這個是物件還是做什麼用途? 能不能試用於我做的多邊形
------
嫩的我,需要多多曬太陽 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
前輩好, 我有一個想法,我把一張圖二直化之後,我想要算出他的中心 圖是一張不規則的多邊形,我想應該是 先算出他的左方、上方,求出他的左上角, 在算出他的右方、下方,求出他的右下角, 兩條對角線交叉,這個應該就是他的中心/重心, 這樣的想法用使用在我測試圖片能不能適用? 同樣的問題 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=92611 有這樣的想法,不過沒能力寫出code。 所以? 我在其他文章有看到 "水平與垂直投影法" 裡面有用到一個" Series1 " ,這個是物件還是做什麼用途? 能不能試用於我做的多邊形 http://delphi.ktop.com.tw/board.php?cid=169&fid=936&tid=18760 心得分享 : 如何使用TChart? |
阿鬼就是我
一般會員 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
前輩, 我在你回覆的某篇文章,發現重直投影 程式碼 Series1->Clear(); int DistributionX[160]={0}; Graphics::TBitmap*Bmp1=new Graphics::TBitmap(); Bmp1->LoadFromFile("test.bmp"); Image1->Picture->Assign(Bmp1); byte* ptr1; for (int y=0;yHeight;y ) { ptr1=(byte*)Bmp1->ScanLine[y]; for (int x=0;xWidth;x ) { if (ptr1[x*3]==255) { DistributionX[x] =1; } } } Image1->Canvas->Pen->Color=clYellow; for (int x=0;xWidth;x ) { Series1->Add(DistributionX[x],x,TColor(clBlue)); if (DistributionX[x]>0&&DistributionX[x]<60&&DistributionX[x-1]==0 ||DistributionX[x]>0&&DistributionX[x]<60&&DistributionX[x 1]==0 ) { Image1->Canvas->MoveTo(x,0); Image1->Canvas->LineTo(x,Image1->Height); } } delete Bmp1;
------
嫩的我,需要多多曬太陽 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
1.你的case假如要求出每個白色區域的重心,投影法是不適用的
2.TChart元件裡面你新增一個曲線圖就會看到Series1 ===================引 用 阿鬼就是我 文 章=================== 前輩, 我在你回覆的某篇文章,發現重直投影 程式碼 Series1->Clear(); int DistributionX[160]={0}; Graphics::TBitmap*Bmp1=new Graphics::TBitmap(); Bmp1->LoadFromFile("test.bmp"); Image1->Picture->Assign(Bmp1); byte* ptr1; for (int y=0;yHeight;y ) { ptr1=(byte*)Bmp1->ScanLine[y]; for (int x=0;xWidth;x ) { if (ptr1[x*3]==255) { DistributionX[x] =1; } } } Image1->Canvas->Pen->Color=clYellow; for (int x=0;xWidth;x ) { Series1->Add(DistributionX[x],x,TColor(clBlue)); if (DistributionX[x]>0&&DistributionX[x]<60&&DistributionX[x-1]==0 ||DistributionX[x]>0&&DistributionX[x]<60&&DistributionX[x 1]==0 ) { Image1->Canvas->MoveTo(x,0); Image1->Canvas->LineTo(x,Image1->Height); } } delete Bmp1; |
阿鬼就是我
一般會員 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
感謝,前輩提供的資訊 站務副站長dllee 所提供的code 假設您的物體是方形所作尋找物件左上/右下座標的方式 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=90326 我會試試看 ------------------------------------------ 前輩, 今天到學校問老師,他告訴我一各方向, 在二直化的圖,黑色部分是腫瘤,白色部分是空白背景, 然後去掃這張圖, 掃到白色部份就沒東西, 掃到黑色部份,就會有座標, 例如: 假設XY 最大是(20,20) 最上方(0,20) 最下方(-20,0) 最左方(-20,0) 最右方(20,0) 掃出來一推座標,以上的最上方、下方、左方、右方 連成一各矩形, 左上方、右下方連成一線, 右上方、左下方連成一線, 交叉點可以求出大概的中/重心。 那.....程式方面要怎麼掃? 有什麼類似的方法可以使用? ===================引 用 taishyang 文 章=================== 1.你的case假如要求出每個白色區域的重心,投影法是不適用的 2.TChart元件裡面你新增一個曲線圖就會看到Series1
------
嫩的我,需要多多曬太陽 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
阿鬼就是我
一般會員 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
物體是方形所作尋找物件左上/右下座標的方式
[C Error] Unit2.cpp(202): E2268 Call to undefined function 'R' [C Error] Unit2.cpp(202): E2268 Call to undefined function 'G' [C Error] Unit2.cpp(202): E2268 Call to undefined function 'B' 如果不想 function call , 可以直接在Button 底下定義嗎? 該怎麼定義呢 code 轉載於 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=90326 [code c#] void __fastcall TForm1::Button5Click(TObject *Sender) { //2直化,腫瘤部份為黑色 int i,j,w,h; int oLeft,oTop,oRight,oBottom; int centerX,centerY; bool ObjectFound=false; for(i=0;i<256;i ) { for(j=0;j<256;j ) { if (R(i,j)==0 && G(i,j)==0 && B(i,j)==0) //RGB代表色彩色模型 { // 找到左上角(起點) ObjectFound=true; oLeft=i; oTop=j; for(w=i 1;w<256;w ) // 向右找 { if(R(w,j)==0 && G(w,j)==0 && B(w,j)==0) //RGB代表色彩色模型 continue; // 還是物件點, 繼續找 else break; // 不再是物件點, 結束尋找 } oRight=w-1; for(h=j 1;h<256;h ) // 向下找 { if(R(i,h)==0 && G(i,h)==0 && B(i,h)==0) //RGB代表色彩色模型 continue; // 還是物件點, 繼續找 else break; // 不再是物件點, 結束尋找 } oBottom=h-1; break; // 只找一個物件, 己找到, 可以結束尋找了 } } } if(ObjectFound) // 有找到才能算中心 { [/code] } }
------
嫩的我,需要多多曬太陽
編輯記錄
阿鬼就是我 重新編輯於 2008-03-08 23:00:25, 註解 無‧
|
dicky9055
一般會員 發表:20 回覆:48 積分:18 註冊:2006-08-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |