カメラからの画像を、以下のプログラムで補正を試みています。
Cv.Undistort2の??の部分で、CvMat形式の内部パラメータ行列と歪みパラメータ行列を入れたいのですが、どのように定義すればよいかわかりません。ちなみに、内部パラメータの値(焦点距離と画像中心)と歪みパラメータは既知です。
よろしくお願いいたします。
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using OpenCvSharp; 7 8 9namespace webcam 10{ 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 using (var cap = Cv.CreateCameraCapture(0)) 16 { 17 18 19 // カメラ画像格納用の変数 20 IplImage im = new IplImage(); 21 22 // 任意のキーが入力されるまでカメラ映像を表示 23 while (Cv.WaitKey(1) == -1) 24 { 25 // 画素数設定 26 cap.SetCaptureProperty(CaptureProperty.FrameWidth, 1024); 27 cap.SetCaptureProperty(CaptureProperty.FrameHeight, 576); 28 29 // カメラからフレーム(画像)を取得 30 im = Cv.QueryFrame(cap); 31 32 // 内部パラメータと歪み係数より、補正 33 Cv.Undistort2(im,im,??,??); 34 35 // 画素数表示 36 Console.WriteLine("({0},{1})", im.Height, im.Width); 37 38 // 画像表示 39 Cv.ShowImage("capture", im); 40 } 41 // 保存 42 im.SaveImage("test41.jpg"); 43 // 使い終わったWindow「Capture」を破棄 44 Cv.DestroyWindow("capture"); 45 } 46 } 47 } 48}
あなたの回答
tips
プレビュー