Undistort

Hi,

I’m trying to use Undistort. I’ve tried the “Undistort (Dshow9 OpenCV) help.v4p” file to learn how to use it, but all I get is a black video as output. I’ve read in a post that I would need a starting calibration file to use it, but I don’t know where to find this file.

Thanks for the help.

Edit: in fact, I get the error below as soon as I insert the Undistort block and open the Inspektor, even in an empty graph.

Ok, this is the error I get from the ExceptionDialog:


Exception log with detailed tech info. Generated on 2/12/2012 16:37:37.
You may send it to the application vendor, helping him to understand what had happened.
Application title: ]]]]
Application file: C:\Program Files\VVVV\vvvv.exe

Exception class: EAccessViolation
Exception message: Access violation at address 00741F0A in module ‘vvvv.exe’. Read of address 00000000.
Exception address: 00741F0A

Main thread ID = 17152
Exception thread ID = 17152

Exception stack
Stack list, generated 2/12/2012 16:37:37
00741F0A{vvvv.exe } DS9TransformNodes.TMCalibFilterNode.Evaluate (Line 449, “DS9TransformNodes.pas” + 10)
0065251C{vvvv.exe } DirectShowNodes9.TMDirectShowNode9.EvaluateCB (Line 1056, “DirectShowNodes9.pas” + 4)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00692D5F{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2456, “Graph.pas” + 17)
00690A4C{vvvv.exe } Graph.TMBasicNode.ValidateAllInputs (Line 1206, “Graph.pas” + 2)
00652508{vvvv.exe } DirectShowNodes9.TMDirectShowNode9.EvaluateCB (Line 1053, “DirectShowNodes9.pas” + 1)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00692D5F{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2456, “Graph.pas” + 17)
00690A4C{vvvv.exe } Graph.TMBasicNode.ValidateAllInputs (Line 1206, “Graph.pas” + 2)
00652508{vvvv.exe } DirectShowNodes9.TMDirectShowNode9.EvaluateCB (Line 1053, “DirectShowNodes9.pas” + 1)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00692D5F{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2456, “Graph.pas” + 17)
00690A4C{vvvv.exe } Graph.TMBasicNode.ValidateAllInputs (Line 1206, “Graph.pas” + 2)
006FA085{vvvv.exe } ex9ParticleNodes.TMex9ParticleNode.EvaluateCB (Line 529, “ex9ParticleNodes.pas” + 4)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00692D5F{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2456, “Graph.pas” + 17)
00690A4C{vvvv.exe } Graph.TMBasicNode.ValidateAllInputs (Line 1206, “Graph.pas” + 2)
006F6AE6{vvvv.exe } GroupNodes.TMGroupNode.EvaluateCB (Line 204, “GroupNodes.pas” + 5)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00692D5F{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2456, “Graph.pas” + 17)
00620F2B{vvvv.exe } RendererNodes.TMRendererNode.ValidateLayers (Line 559, “RendererNodes.pas” + 1)
006F0022{vvvv.exe } ex9RendererNode.TMex9RendererNode.ValidateLayers (Line 961, “ex9RendererNode.pas” + 7)
00620AA1{vvvv.exe } RendererNodes.TMRendererNode.EvaluateCB (Line 420, “RendererNodes.pas” + 30)
00620E46{vvvv.exe } RendererNodes.TMRendererNode.EvaluateIndependantOutputs (Line 525, “RendererNodes.pas” + 9)
00692C1E{vvvv.exe } Graph.TMPin.Evaluate (Line 2427, “Graph.pas” + 3)
00692D7A{vvvv.exe } Graph.TMPin._ValidateAllSlices (Line 2461, “Graph.pas” + 22)
00690A84{vvvv.exe } Graph.TMBasicNode.ValidateAllOutputs (Line 1228, “Graph.pas” + 2)
0062046D{vvvv.exe } RendererNodes.TMRendererNode.PrepareGraph (Line 190, “RendererNodes.pas” + 1)
00690EA7{vvvv.exe } Graph.TMBasicNode.PrepareGraphCB (Line 1377, “Graph.pas” + 2)
006A5BA1{vvvv.exe } Events.TMEvent.Call (Line 403, “Events.pas” + 11)
006A2FD7{vvvv.exe } MainLoop.TMMainLoop.DoTimer (Line 209, “MainLoop.pas” + 28)
00509236{vvvv.exe } IdleTimer.TMIdleTimer.AppIdle (Line 165, “IdleTimer.pas” + 46)
00481191{vvvv.exe } Forms.TApplication.Idle
00480603{vvvv.exe } Forms.TApplication.HandleMessage
004808EB{vvvv.exe } Forms.TApplication.Run
0088C305{vvvv.exe } vvvv.vvvv (Line 24, “” + 7)

Call stack for main thread
Stack list, generated 2/12/2012 16:37:37
7C90E514{ntdll.dll } KiFastSystemCallRet

System : Windows XP Professional, Version: 5.1, Build: A28, “Service Pack 3”
Processor: Intel, Intel® Core™2 CPU 6300 @ 1.86GHz, 1860 MHz MMX SSE SSE2 SSE3 SSSE3 64 bits DEP
Memory: 2047; free 1384
Display : 1600x1200 pixels, 32 bpp

List of loaded modules:
00340000 C:\Program Files\VVVV\lib\thirdparty\DELMID32.DLL
<00400000> (no module version info)
00400000 C:\Program Files\VVVV\vvvv.exe
4.5.28.1 - 4.5.28.1
vvvv - a multipurpose toolkit
Unit versioning information:
JCL\source\common JclUnitVersioning.pas 2969 2009-08-25 20:22:46 +0200 (mar., 25 août 2009)
JCL\source\common JclUnitVersioningProviders.pas 2892 2009-07-30 12:08:05 +0200 (jeu., 30 juil. 2009)
00A80000 C:\WINDOWS\system32\d3dx9_38.dll
<00400000> 9.23.949.2378 - 9.23.949.2378
01670000 C:\Program Files\VVVV\lib\thirdparty\dxerr9ab.dll
<10000000> 9.10.455.0 - 9.10.455.0
DirectX 9.0 December 2005 DXerr9 DLL for JEDI projects
044D0000 C:\WINDOWS\system32\xpsp2res.dll
<00010000> 5.1.2600.5512 - 5.1.2600.5512 (xpsp.080413-2113)
Service Pack 2 Messages
04C10000 C:\Program Files\VVVV\lib\core\SlimDX.dll
<10000000> (no module version info)
07130000 C:\Program Files\VVVV\lib\thirdparty\DSFreeFrameWrapper.ax
<00400000> (no module version info)
07310000 C:\PROGRA~1\VVVV\lib\THIRDP~1\AddFlow3.ocx
<10000000> 3.0.41.0 - 3.00.040
AddFlow ActiveX Control version 3.0
07EA0000 C:\Program Files\ffdshow\ffdshow.ax
<10000000> 1.2.4422.0 - 1.2.4422.0
DirectShow and VFW video and audio decoding/encoding/processing filter
083C0000 C:\Program Files\DirectVobSub\VSFilter.dll
<10000000> 1.0.1.5 - 1, 0, 1, 5
VobSub & TextSub filter for DirectShow/VirtualDub/Avisynth
084C0000 C:\WINDOWS\system32\Normaliz.dll
<00400000> 6.0.5441.0 - 6.0.5441.0 (winmain(wmbla).060628-1735)
Unicode Normalization DLL
08500000 C:\Program Files\Common Files\Ahead\DSFilter\NeResize.ax

hei Ren0,

sorry for the late answer. thanks for pointing that out. our Undistort (DShow9 OpenCV) is using the CalibFilter.ax file from opencv 1.0 which still requires the 1.0 opencv dlls of course. but they are no longer shiped with vvvv.

so until we update that you could try installing opencv_1.0. that could do for you…

Thanks, will try this next week

Hi joreg,

I’ve installed opencv 1.0 from the link you’ve posted, and opened Undistort help.
The undistort node have disappeard. Instead, a 3D Window popped out.

The patch now looks like this:

Thanks for your help.

sorry for the wrong opencv1 pointer.

had a quick look at recompiling the code with latest opencv and am afraid it won’t happen. so i hereby declare Undistort (Dshow9 OpenCV) dead. note though that you can still use Undistort (EX9.Effect) as shown in the patch if you get the needed camera-parameters from somewhere else.

and!
have you checked @elliotwoods))'s ((contribution:opencv-plugin-(alpha)? it comes with a node called CalibrateCamera (OpenCV) that probably does the same. please start a new thread to bug elliot if you have any questions on the usage of his plugins.