座標換算 |
尚未結案
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
arisaka_matsuri
高階會員 發表:25 回覆:205 積分:231 註冊:2003-10-19 發送簡訊給我 |
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
都是要重畫回image1何不直接在image1上處理..??
由於image2有做過濾,可能使image2的邊界會有一到二個pixel的誤差..
此時再縮小貼回恐怕跟image1的位置會有一點差距.. 如果image2處理之後邊界沒有產生誤差時
就直接縮小1/2,四點變一點
縮小時得根據放大時的座標(如以滑鼠點的位置為中心放大)
就必需先找到在image2中對應到image1滑鼠點的位置(應該是image2的中心點)
再向外擴展縮小,如此才會使image2縮小之後還能依對應到image1的中心點縮小 加油!
------
加油! |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
引言: 4.您提出的「直接縮小1/2,四點變一點,縮小時得根據放大時的座標再向外擴展縮小,如此才會使image2縮小之後還能依對應到image1的中心點縮小」這也正是小弟目前瓶頸所在 >>< face="Verdana, Arial, Helvetica"> 由於是將image1放大2倍到image2,所以當抓取到滑鼠點時(x1,y1) 應該是將image1中(x1-40,y1-30)到(x1 40,y1 30)的範圍擷取並放大2倍到image2 此時(x1-40,y1-30)正代表image2的(0,0),(0,1),(1,0),(1,1) 而(x1-39,y1-30)代表image2的(2,0),(2,1),(3,0),(3,1) 若要還原則可用 for(int i=0;i<80;i ){ for(int j=0;j<60;j ){ image1[x1-40 i][y1-30 j]=(image2[i*2][j*2] image2[i*2][j*2 1] image2[i*2 1][j*2] image2[i*2 1][j*2 1])/4; } } 不知道這樣能不能對你有所幫助 加油!
------
加油! |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
To sew:
//-----------------------------------------------------------------//
若要還原則可用
for(int i=0;i<80;i ){
for(int j=0;j<60;j ){
image1[x1-40 i][y1-30 j]=(image2[i*2][j*2] image2[i*2][j*2 1]
image2[i*2 1][j*2] image2[i*2 1][j*2 1])/4;
}
}
//-----------------------------------------------------------------// 這樣好像會將Image2整個縮小1/2並貼回Image1,因為我的Image2影像品質已經和Image1不同,所以這樣行不通
不過還是謝謝您!
|
arisaka_matsuri
高階會員 發表:25 回覆:205 積分:231 註冊:2003-10-19 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
引言: To sew: //-----------------------------------------------------------------// 若要還原則可用 for(int i=0;i<80;i ){ for(int j=0;j<60;j ){ image1[x1-40 i][y1-30 j]=(image2[i*2][j*2] image2[i*2][j*2 1] image2[i*2 1][j*2] image2[i*2 1][j*2 1])/4; } } //-----------------------------------------------------------------// 這樣好像會將Image2整個縮小1/2並貼回Image1,因為我的Image2影像品質已經和Image1不同,所以這樣行不通 不過還是謝謝您! >>< face="Verdana, Arial, Helvetica">你可以加上你自己的判斷式來決定在image2上的點是不是邊界,再決定是否要寫回image1 上面的二個for只是點出座標的對應.. 加油!
------
加油! |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |