線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1234
推到 Plurk!
推到 Facebook!

座標換算

尚未結案
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-04 21:32:29 IP:163.28.xxx.xxx 未訂閱
請問各位高手: 1. 我有一個320*240的Image1和160*120的Image2,將Image1的部分區域擷取至Image2並將物體放大2倍找邊界(藍線),請問在Image2找到的邊界如何縮小1/2並且重繪在Image1,如下圖            2.假如一張影像上的200個pixel在實際上對應為4cm,就是一個pixel等於4/200cm,若一塊區域的面積佔20個pixel,是不是面積就等於(4/200)*20=0.4cm^2呢?請各位高手解惑,謝謝!
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-05 17:17:33 IP:140.113.xxx.xxx 未訂閱
dear williams8807: 提供一個想法~ 1. 將Image2的影像縮小後(可以用TCanvas::StretchDraw),在Image1的對應位置做AND運算即可,或是直接貼上去(不過可能會把原圖蓋掉)。 2. 假設像素是正方形,則每個像素的面積應該是 (4/200) * (4/200) = 1/2500,所以20個相素的面積應該是 20 * 1/2500 = 1/125 = 0.008 cm^2
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-05 21:02:59 IP:163.28.xxx.xxx 未訂閱
//----------------------------------// 在Image1的對應位置做AND運算即可 //-----------------------------------// 可是我在Image2的影像已經過濾波等處理,和Image1的影像品質已經不一樣了,請問還有其它方法嗎?謝謝!
sew
一般會員


發表:2
回覆:54
積分:21
註冊:2003-08-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-06 11:36:06 IP:203.160.xxx.xxx 未訂閱
都是要重畫回image1何不直接在image1上處理..?? 由於image2有做過濾,可能使image2的邊界會有一到二個pixel的誤差.. 此時再縮小貼回恐怕跟image1的位置會有一點差距.. 如果image2處理之後邊界沒有產生誤差時 就直接縮小1/2,四點變一點 縮小時得根據放大時的座標(如以滑鼠點的位置為中心放大) 就必需先找到在image2中對應到image1滑鼠點的位置(應該是image2的中心點) 再向外擴展縮小,如此才會使image2縮小之後還能依對應到image1的中心點縮小 加油!
------
加油!
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-06 21:16:33 IP:163.28.xxx.xxx 未訂閱
dear sew:  1.不直接在Image1上處理是考慮到時間的花費,而且原始影像若不先經過濾波 等處理是找不出邊界  >
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-06 23:18:52 IP:211.76.xxx.xxx 未訂閱
williams8807 您好: 不好意思!插個花! 我有一點不太明白,為什麼您不直接將該點選區域等面積的複製至image2,處理完之後再設法放回image1?放大後再處理的原因是什麼? RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
sew
一般會員


發表:2
回覆:54
積分:21
註冊:2003-08-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-07 00:50:22 IP:61.230.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-07 16:37:32 IP:163.28.xxx.xxx 未訂閱
dear richtop: 將 >
williams8807
一般會員


發表:40
回覆:37
積分:15
註冊:2003-11-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-11 11:35:13 IP:163.28.xxx.xxx 未訂閱
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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-11 12:31:54 IP:140.113.xxx.xxx 未訂閱
dear williams8807: 方便看你實際處理的圖與邊緣化的結果嗎?影像處理的問題很多都是case by case,如果有實際的圖應該會更有幫助。譬如說處理過後品質已經不太一樣,但到底是怎麼樣的狀況,我很感興趣。
sew
一般會員


發表:2
回覆:54
積分:21
註冊:2003-08-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-10-11 18:12:26 IP:140.124.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-10-12 14:42:06 IP:163.28.xxx.xxx 未訂閱
To arisaka_matsuri:     上面那張是原始影像 下面是部份選取後經過中值濾波及對比增強後的結果,黑線是找到的邊界 發表人 -
系統時間:2024-05-21 4:01:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!