バレル/ピンクッション歪みの画像(x、y)のオリジナル(x、y)を取得する方法を理解できません。バレル/ピンクッション歪みの式
13
A
答えて
18
0
シンプルなバレル\ OpenCVのCでのピンクッション歪み++
IplImage* barrel_pincusion_dist(IplImage* img, double Cx,double Cy,double kx,double ky)
{
IplImage* mapx = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
IplImage* mapy = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
int w= img->width;
int h= img->height;
float* pbuf = (float*)mapx->imageData;
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
float u= Cx+(x-Cx)*(1+kx*((x-Cx)*(x-Cx)+(y-Cy)*(y-Cy)));
*pbuf = u;
++pbuf;
}
}
pbuf = (float*)mapy->imageData;
for (int y = 0;y < h; y++)
{
for (int x = 0; x < w; x++)
{
*pbuf = Cy+(y-Cy)*(1+ky*((x-Cx)*(x-Cx)+(y-Cy)*(y-Cy)));
++pbuf;
}
}
/*float* pbuf = (float*)mapx->imageData;
for (int y = 0; y < h; y++)
{
int ty= y-Cy;
for (int x = 0; x < w; x++)
{
int tx= x-Cx;
int rt= tx*tx+ty*ty;
*pbuf = (float)(tx*(1+kx*rt)+Cx);
++pbuf;
}
}
pbuf = (float*)mapy->imageData;
for (int y = 0;y < h; y++)
{
int ty= y-Cy;
for (int x = 0; x < w; x++)
{
int tx= x-Cx;
int rt= tx*tx+ty*ty;
*pbuf = (float)(ty*(1+ky*rt)+Cy);
++pbuf;
}
}*/
IplImage* temp = cvCloneImage(img);
cvRemap(temp, img, mapx, mapy);
cvReleaseImage(&temp);
cvReleaseImage(&mapx);
cvReleaseImage(&mapy);
return img;
}
より複雑な形 http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html
1
あなたはFitzgibbon, 2001
で見つけることができる多項式の半径歪みモデルの近似値は、RD及びRUは、歪みの中心からの距離です
です。これは、コンピュータビジョンおよび画像処理の目的で、広角カメラ画像からの歪みをフィルタリングするためにも使用されます。
あなたがここに歪み補正フィルタリング(とも順変換)を実装するための原則とシェーダコードのより詳細な説明を見つけることができます:http://marcodiiga.github.io/radial-lens-undistortion-filtering
私はまた、あなたが見てみる必要があるの論文を掲載しています投稿したメソッドの数学的な詳細を知りたい場合は
- Zhang Z(1999)です。未知の方向から平面を見ることによる柔軟なカメラ較正
- Andrew W. Fitzgibbon(2001)。多視点ジオメトリとレンズひずみの同時線形推定
関連する問題
- 1. OpenGLパースペクティブ歪み
- 2. 輪郭の歪み
- 3. OpenGLのカメラレンズ歪み
- 4. 魚眼の歪み
- 5. 歪みとのテンプレートマッチング
- 6. Pythonのフレーム歪み
- 7. 画像の歪みJava
- 8. shaderlabの頂点歪み
- 9. Android:ベクター資産の歪み
- 10. ゴムバンドアルゴリズムの1次元歪み
- 11. ImageMagick SRTコマンドのテキスト歪み
- 12. F#の歪度の再帰式
- 13. イメージの歪みや歪みのための.NETツールはありますか?
- 14. imagemagick画像の歪みやゆがみ
- 15. 歪みのない画像を歪ませる
- 16. Java:回転と3D歪み
- 17. iOS画像操作(歪み)
- 18. 画像を歪ませると画像が歪みます
- 19. 風景モードに変更すると歪みが歪みます[Ionic]
- 20. MATLABの色付き画像の歪み
- 21. 右からのMousemoveイベントの歪み
- 22. ウェブオーディオAPIのグリッチ/歪みの問題
- 23. Progammatically ImageViewによる歪みの設定
- 24. Google Maps API V3のカスタムオーバーレイ歪み
- 25. 歪みのない魚眼画像エラー
- 26. ios 11 - アイコンの整列歪み
- 27. 画像歪みの高速アルゴリズム
- 28. 出力からの歪みオーディオユニット
- 29. リーフレットgeojsonを見たときの歪み
- 30. カラーコンバータでの再生DMO歪みスキップ
このコードを(最初の2枚の写真と同じように)トリミングせずにOpenGLで再現すると、画像がばらばらに見えます。私はこのアルゴリズムを使ってより多くの成功を収めました。http://www.geeks3d.com/20140213/glsl-shader-library-fish-eye-and-dome-and-barrel-distortion-post-processing-filters/2/ – user819640
あなたのトランスフォーム直線画像を歪んだ画像に変換する場合にのみ有効です。その歪みを逆にするには、 'p1 = cbrt(2 /(3 * a))の逆関数が必要です。 (27 * a * x * x + 4) - 9 * a * x); c2 = cbrt(sqrt(3 * a)* sqrt \t p3 = cbrt(2)* pow(3 * a、2/3); \t return p1/p2-p2/p3; ' –