Nodes/opencv-comfyui/OpenCV findFundamentalMat_3
ComfyUI Node

OpenCV findFundamentalMat_3

FindFundamentalMat_2's twin — the no-frills fundamental matrix

By geroldmeisinger·Created about a year ago·Updated about a year ago· 35
OpenCV findFundamentalMat_3
  • points1
  • points2
  • mask
  • nparray_0
  • nparray_1
method
ransacReprojThreshold
confidence

OpenCV findFundamentalMat_3 is findFundamentalMat_2 with the serial number filed off. Same five inputs (points1, points2, method, ransacReprojThreshold, confidence), same optional mask, same call into cv2.findFundamentalMat, same outputs: nparray_0 is the 3x3 fundamental matrix F and nparray_1 the RANSAC inlier mask. The duplicate exists purely because OpenCV's type stubs declare each function for both MatLike and UMat, and this pack's generator emits a node for every overload it finds. There's no behavioral difference to discover, so don't go hunting for one.

If you need the full picture, the _2 and _0 articles cover it: this is the uncalibrated way to relate two views, working on raw pixel correspondences with no camera intrinsics. Set method to 8 (RANSAC), ransacReprojThreshold around 3.0, feed it matched points, and the outputs are geometry - matrices and masks, not images.

Why these duplicates keep showing up

Once you've seen two or three of these, the pattern becomes useful rather than annoying. This pack wraps hundreds of OpenCV functions, and the author's README is upfront that the nodes are auto-generated, "ugly and complex to use," with dragons expected. _0/_1, _2/_3 pairs are the norm. So when a node number looks like it's "missing" or you find two nodes with identical inputs, you're almost certainly looking at a MatLike/UMat twin, and either one works.

The one thing that will actually bite you

Not the twin thing - the data types. NPARRAY is a pack-internal type, so every socket in this node only connects to this pack's own nparray-producing nodes (Image2Nparray, other OpenCV wrappers). You can't drop a ComfyUI IMAGE straight in. And the outputs here are not frames: trying to preview the fundamental matrix through Nparrays2Image triggers the pack's classic 'NoneType' object has no attribute 'shape' error, which is your cue to read the OpenCV docs about what the function actually returns.

Install

Same pack, same steps. ComfyUI Manager → search opencv-comfyui → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/geroldmeisinger/opencv-comfyui

requirements.txt installs opencv-contrib-python, numpy, torch. The pack imports cv2 at load time - if that import fails (usually from conflicting OpenCV installs, with the guidedFilter error as the tell), none of its nodes register and ComfyUI complains at startup.

Reach for _2/_3 when you want the simpler API without maxIters; reach for _0/_1 when you want the extra RANSAC knob. Everything else about the math is identical.

Categoryimage/OpenCV

Inputs (6)

NameTypeDefaultDescription
points1NPARRAY
points2NPARRAY
methodINT
ransacReprojThresholdFLOAT
confidenceFLOAT
maskoptNPARRAY

Outputs (2)

NameTypeDescription
nparray_0NPARRAY
nparray_1NPARRAY