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

圖片切割計算Edge

答題得分者是:istillloving
dimay0922
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-07 22:09:46 IP:114.44.xxx.xxx 訂閱
請問這位大大

我想將一張sobel之後的圖片! 切割成四等分

並計算每等分裡頭Edge出現的機率

我是假設白色像素的位置為Edge

但是我在操作的時候.....

第一.二張圖片,作完之後.... 在做一次第一張,結果數值竟然改變了!

但第二張的數值,仍然是正確的

真不知道怎麼辦? 請各位幫幫我



------
老師給我PASS吧!
編輯記錄
dimay0922 重新編輯於 2010-01-08 23:52:36, 註解 無‧
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-08 14:58:58 IP:61.223.xxx.xxx 訂閱
您好:

因為你現在已經知道要切成4等分

所以你現在需要知道原始圖案的 寬 和 高

使用最基本的方法 設4組雙層for迴圈去計算4個區塊

然後裡面加一個 if 的判斷式 判斷是否為黑點 然後做一個累加的動作
------
恩...
dimay0922
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-08 23:54:39 IP:114.44.xxx.xxx 訂閱
嗯嗯!! 謝謝大大!! 

我已經會作了!! 但是有新的問題.... 請大大們幫幫我

以下我的程式碼

void __fastcall TForm1::Button4Click(TObject *Sender)
{
int R,G,B,w,h;
int white1=0,white2=0,white3=0,white4=0;//計數器
float Edge1=0,Edge2=0,Edge3=0,Edge4=0;
float A1=0,A2=0,A3=0,A4=0;
float rite1=0,rite2=0,rite3=0,rite4=0;
w=h=0;
w= Image1->Picture->Bitmap->Width;
h= Image1->Picture->Bitmap->Height;
rite1=rite2=rite3=rite4=0;
A1=A2=A3=A4=0;
Edge1=Edge2=Edge3=Edge4=0;
white1=0;
//-----------------------------------------------------------------------左上
for(int i=0;i {
for(int j=0;j {
R=GetRValue(Image3->Canvas->Pixels[i][j]);//讀取Image3的R值
G=GetGValue(Image3->Canvas->Pixels[i][j]);//讀取Image3的G值
B=GetBValue(Image3->Canvas->Pixels[i][j]);//讀取Image3的B值 if(R==255 && G==255 && B==255)
{white1 ;} //白色等於Edge
}
}
Edge1=white1;
A1=(w/2)*(h/2);
rite1=Edge1/A1;
Label1->Caption= IntToStr(w/2);
Label2->Caption= IntToStr(h/2);
Edit1->Text=Edge1;
Edit2->Text=A1;
Edit3->Text=rite1;
//-----------------------------------------------------------------------右上
white2=0;
for(int x=w/2;x {
for(int y=0;y {
R=GetRValue(Image3->Canvas->Pixels[x][y]);//讀取Image3的R值
G=GetGValue(Image3->Canvas->Pixels[x][y]);//讀取Image3的G值
B=GetBValue(Image3->Canvas->Pixels[x][y]);//讀取Image3的B值
if(R==255 && G==255 && B==255)
{white2 ;} //白色等於Edge
}
}
Edge2=white2;
A2=(w/2)*(h/2);
rite2=Edge2/A2;
Label8->Caption= IntToStr(w/2);
Label9->Caption= IntToStr(h/2);
Edit4->Text=Edge2;
Edit5->Text=A2;
Edit6->Text=rite2;
//-----------------------------------------------------------------------左下
white3=0;
for(int k=0;k {
for(int l=h/2;l {
R=GetRValue(Image3->Canvas->Pixels[k][l]);//讀取Image3的R值
G=GetGValue(Image3->Canvas->Pixels[k][l]);//讀取Image3的G值
B=GetBValue(Image3->Canvas->Pixels[k][l]);//讀取Image3的B值
if(R==255 && G==255 && B==255)
{white3 ;} //白色等於Edge
}
}
Edge3=white3;
A3=(w/2)*(h/2);
rite3=Edge3/A3;
Label5->Caption= IntToStr(w/2);
Label6->Caption= IntToStr(h/2);
Edit7->Text=Edge3;
Edit8->Text=A3;
Edit9->Text=rite3;
//-----------------------------------------------------------------------右下
white4=0;
for(int p=w/2;p {
for(int q=h/2;q {
R=GetRValue(Image3->Canvas->Pixels[p][q]);//讀取Image3的R值
G=GetGValue(Image3->Canvas->Pixels[p][q]);//讀取Image3的G值
B=GetBValue(Image3->Canvas->Pixels[p][q]);//讀取Image3的B值
if(R==255 && G==255 && B==255)
{white4 ;} //白色等於Edge
}
}
Edge4=white4;
A4=(w/2)*(h/2);
rite4=Edge4/A4;
Label22->Caption= IntToStr(w/2);
Label23->Caption= IntToStr(h/2);
Edit10->Text=Edge4;
Edit11->Text=A4;
Edit12->Text=rite4;
}


------
老師給我PASS吧!
編輯記錄
dimay0922 重新編輯於 2010-01-08 23:59:03, 註解 無‧
dimay0922 重新編輯於 2010-01-09 00:00:18, 註解 無‧
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-01-09 00:02:07 IP:122.123.xxx.xxx 訂閱
能不能一次把話說完...

有什麼新的問題??
------
恩...
dimay0922
一般會員


發表:1
回覆:2
積分:0
註冊:2010-01-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-01-09 00:05:53 IP:114.44.xxx.xxx 訂閱
第一.二張圖片,作完之後....   在做一次第一張,結果數值竟然改變了!

但第二張的數值,仍然是正確的

真不知道怎麼辦? 請各位幫幫我
------
老師給我PASS吧!
istillloving
高階會員


發表:33
回覆:182
積分:183
註冊:2008-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-01-09 00:10:22 IP:122.123.xxx.xxx 訂閱
所謂的質被改了

以程式的觀點下去看的話很簡單阿

就是你一定有改到 所以才會變

不可能你沒有改到他的質 解果他自己變了

檢查一下 哪裡有改到吧

而且我在想 會不會是你的label有殘留影像

運算完加個 Form1->Refresh(); 進去吧

養成一個好習慣
Label23->Caption

改成
Form1->Label23->Caption

也許以後你會使用很多個Form 指定個類別給他吧

------
恩...
編輯記錄
istillloving 重新編輯於 2010-01-09 00:15:52, 註解 無‧
istillloving 重新編輯於 2010-01-09 00:17:38, 註解 無‧
istillloving 重新編輯於 2010-01-09 00:18:38, 註解 無‧
系統時間:2024-04-27 3:58:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!