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

魚眼校正內插法如何運用

尚未結案
sjh
一般會員


發表:8
回覆:10
積分:3
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-04 16:18:25 IP:140.135.xxx.xxx 未訂閱
請問一下有經驗的各位: 目前我已經可以把一張失真扭曲影像座(整數)標轉換到一個校正過後座標(浮點數) 但是目前與上的困難就是不知道如何去內插出校正影像的像素值  請問一下我的程式該如何把bilinear內插的程式加進去? 謝謝!!     原理: step1:失真影像座標(dis_x,dis_y) ps:dis=distortion step2:失真影像極座標(dis_r,sita角) step3:數學模型dis_r=8.608+0.74*r+0.00391*r*r  step4:校正影像極座標(r,sita) ps:藉由失真半徑dis_r經由數學模型求出一個校正半徑r step5:校正座標(x,y) double x,y; (假設校正後sita角度不變)    以下是我的程式碼  
 double dis_r=0;//失真影像半徑
    double r=0;  //校正影像半徑        int dis_x,dis_y; int dis_x0=131.0,dis_y0=117.0;//失真影像座標、失真中心點
    double x,y;         double x0=206,y0=206;//校正過後影像座標        int sita; //角度
    double dis_dx,dis_dy;        for (dis_x=0;dis_xWidth;dis_dx  )
    {
      for (dis_y=0;dis_yHeight;dis_y  )
      {
       dis_dx=(dis_x-dis_x0);  
       dis_dy=(dis_y-dis_y0);         if (dis_dx==0 && dis_dy==0)
     {
     dis_r=0;
     }
     else if (dis_dx!=0 && dis_dy!=0)
     {
     dis_r=(pow((pow(dis_dx, 2) pow(dis_dy,2)),0.5)); //求出失真半徑dis_r
     }        float h;
   h=(0.13463-0.01564*dis_r);   //  dis_r=8.608 0.74*r 0.00391*r*r
                         /
    if (h<0)
    h=-h;
    r=((-0.74) pow(h,0.5)/(0.00782)); //求解r        if (dis_x!=dis_x0 && dis_y0>dis_y && dis_x>dis_x0 )//第一象限 電腦座標左上角為00
    {
      sita=-1*atan((dis_y-dis_y0)/(dis_x-dis_x0))*180/M_PI;
      x=x0 r*cos(sita*M_PI/180);
      y=y0-r*sin(sita*M_PI/180); //影像左上角為0         }
     else if (dis_x!=dis_x0 && dis_y0>dis_y && dis_xdis_x0 ) //第四象限
    {
       sita=360-atan((dis_y-dis_y0)/(dis_x-dis_x0))*180/M_PI;
       x=x0 r*cos(sita*M_PI/180);
       y=y0-r*sin(sita*M_PI/180);         }
     else if (dis_x==dis_x0 && dis_y0>dis_y)
     {
       sita=90;
       x=x0 r*cos(sita*M_PI/180);
       y=y0-r*sin(sita*M_PI/180);
     }
     else if (dis_x==dis_x0 && dis_y0         
        
Brian77
中階會員


發表:8
回覆:114
積分:94
註冊:2002-05-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-26 11:02:52 IP:61.221.xxx.xxx 未訂閱
因為校正前或校正後的影像圖資都是離散的資料, 只在固定點上有值(即整數座標上有值) 所以也許換個方向思考 依照校正後的每個座標去計算出它在校正前的座標應是在哪, 再求這個座標的鄰近整數座標是哪些 (取四點或八點) 依這幾個整數點座標的值及其與實際想要的座標的距離去內插出這個實際想要的點的值 比如 由校正後的座標 (x,y) 計算出未校正的座標 (r,t) 由 (r,t) 找到鄰近的整數座標 (r1,t1) (r2,t2) (r3,t3) (r4,t4) 而各點與 (r,t) 的距離為 d1,d2,d3,d4 距離越近的影響越大 由此計算出 (r,t) 的值, 也就是 (x,y) 的值
系統時間:2024-05-21 0:25:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!