OpenCV findEssentialMat_3
FindEssentialMat_2's identical twin — just pick one
- points1
- points2
- mask
- nparray_0
- nparray_1
OpenCV findEssentialMat_3 is findEssentialMat_2 with different numbers on the sticker. The inputs are identical - points1, points2, focal, pp, method, prob, threshold, maxIters, optional mask - and it calls the exact same cv2.findEssentialMat with the same arguments. There is no behavioral difference. If you've already read the _2 article, you know everything this node does: estimate the essential matrix between two camera views using only the focal length and principal point instead of a full intrinsic matrix.
Why does it exist?
OpenCV's Python type stubs declare every function in two flavors, one taking MatLike and one taking UMat, and this pack auto-generates a node for each overloaded signature it finds. Both variants compile down to the same C++ code, so you get duplicate nodes. findEssentialMat_3 is the UMat twin of _2 - same signature, same output, zero reason to prefer it.
That's the pattern across the entire pack, and it's worth internalizing before you go hunting for a node you can't find: look for the _0/_1 pair, the _2/_3 pair, and so on. If a number feels like it's missing, it's because the signature pair exists but the brief you're looking at landed on the other member.
The useful bits, quickly
focalis a float;ppis a string literal you type as(320, 240)- the pack parses composite types withliteral_eval, and anything else throwsinvalid syntax.method=8(RANSAC) for correspondence data with outliers, which is all real data.- Outputs:
nparray_0is the 3x3 essential matrix,nparray_1the inlier mask. Neither is an image - don't feed them toNparrays2Image.
Install
Same pack, same steps as every other node in it. ComfyUI Manager → search opencv-comfyui → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/geroldmeisinger/opencv-comfyui
requirements.txt brings in opencv-contrib-python, numpy, torch. If the pack won't load at startup, it's almost always a broken cv2 import - the pack needs OpenCV present before it can register its hundreds of nodes, and conflicting OpenCV installs are the classic culprit (look for the guidedFilter import error if you suspect it).
One last thing: since _2 and _3 are interchangeable, don't stress about which one a downloaded workflow uses. If one is missing, the other is a drop-in replacement on the canvas.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| points1 | NPARRAY | — | |
| points2 | NPARRAY | — | |
| focal | FLOAT | — | |
| pp | STRING | — | |
| method | INT | — | |
| prob | FLOAT | — | |
| threshold | FLOAT | — | |
| maxIters | INT | — | |
| maskopt | NPARRAY | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| nparray_0 | NPARRAY | — |
| nparray_1 | NPARRAY | — |